Antworten auf deine Fragen:
Neues Thema erstellen

Performance - PHP

Hallo,

ich grüble derzeit über das Thema MySQL-Suche und die dazugehörige Performance nach. Ich nehme als Beispiel mal die Gesichtsbuch-Seite, 800Millionen Nutzer und trotzdem (wie ich finde) sehr sehr schnell.
Doch wie machen die das?
Nehmen wir mal die Suche, dort gibt man bestimmte Keywords (auch getrennt durch Leerzeichen) an und Facebook findet in kurzer Zeit die passenden Ergebnisse, gelistet nach bereits aufgerufenen Seiten, befreundeten Personen oder "vielleicht kennst du schon"-Personen.
Ich stelle mir das so vor, dass ein Cronjob alle paar Stunden alle bereits eingegebenen Suchbegriffe nach Ergebnissen in der Datenbank durchläuft und diese in eine "Suchergebnis"-Tabelle schreibt.
Bei erneuten Suchanfragen müssen dann nicht alle 800Millionen-Nutzer durchlaufen werden, sondern es wird einfach passend zum Keyword die Ergebnisse aus einer Spalte ausgelesen (Loch: dies würde nur gehen, wenn für alle Keywords allgmeine Ergebnisse generiert werden, da jedoch auf jeden Benutzer individuell andere Ergebnisse gelistet werden (z.B. auch bei Google, dort werden Seite auf die man geklickt hat weiter oben angesetzt), kann ich mir nicht vorstellen, dass jeder Benutzer einen eigenen Cronjob hat).
Ob ich damit nun richtig liege oder nicht, können wir nun nicht feststellen, da ich annehme, dass keiner das Vergnügen hatte in die Programmierung von Facebook einzublicken.
Doch vielleicht hat der eine oder andere schon einmal große Projekte realisiert und weiss, wie man performancemäßig soetwas programmieren sollte!?
Ich wäre jedenfalls über hilfreiche Antworten zu der Performancegewinnung z.B. in den Themen: "Freunde finden" oder "Suche", in denen schnell Ergebnisse da sind, dankbar.

LG
 

Duddle

Posting-Frequenz: 14µHz

AW: Performance - PHP

http://www.quora.com/What-is-Facebooks-architecture/answer/Michaël-Figuière gibt einen guten Überblick über Facebooks Architektur, inklusive Quellen.

Auszug:
# Facebook Messages' search engine is built with an inverted index stored in HBase [15]
# Facebook Search Engine's implementation details are unknown as far as I know
Ersteres ist die Technik, die auch z.B. Google zur Speicherung ihrer Suchbegriffe einsetzt. Erzeugt wurde dieser Index für Google bis vor kurzem noch mit MapReduce, dass nach Veröffentlichung recht schnell nachgebaut wurde, u.a. in Hadoop.
MapReduce als Technik wird seither für die Verarbeitung großer Datenmengen benutzt, auch z.B. für graph-förmige Informationen wie "Wer kennt wen?" und ähnliches. Wie in der Antwort erläutert benutzt auch Facebook diese Technik:
# Offline processing is done using Hadoop and Hive.
# Data such as logging, clicks and feeds transit using Scribe [7] and are aggregating and stored in HDFS using Scribe-HDFS [8], thus allowing extended analysis using MapReduce

Deine Frage umfasst ein riesiges Forschungsfeld, daher fällt es mir schwer eine zufriedenstellende Antwort zu finden. Vielleicht reicht schon "Experten + viele hochoptimierte Werkzeuge & Algorithmen + große Serverfarmen = Performance".


Duddle
 
AW: Performance - PHP

http://www.quora.com/What-is-Facebooks-architecture/answer/Michaël-Figuière gibt einen guten Überblick über Facebooks Architektur, inklusive Quellen.

Auszug:

Ersteres ist die Technik, die auch z.B. Google zur Speicherung ihrer Suchbegriffe einsetzt. Erzeugt wurde dieser Index für Google bis vor kurzem noch mit MapReduce, dass nach Veröffentlichung recht schnell nachgebaut wurde, u.a. in Hadoop.
MapReduce als Technik wird seither für die Verarbeitung großer Datenmengen benutzt, auch z.B. für graph-förmige Informationen wie "Wer kennt wen?" und ähnliches. Wie in der Antwort erläutert benutzt auch Facebook diese Technik:


Deine Frage umfasst ein riesiges Forschungsfeld, daher fällt es mir schwer eine zufriedenstellende Antwort zu finden. Vielleicht reicht schon "Experten + viele hochoptimierte Werkzeuge & Algorithmen + große Serverfarmen = Performance".


Duddle
Thanks a lot! Das habe ich gesucht, die Nachforschungen muss ich selbstverständlich selber anstellen um herauszufinden, wie in etwa diese Techniken funktionieren. Aber zumindest weiss ich die Begriffe und das hilft mir sehr weiter.
Dankeschön :)
 
F

frag_seb

Guest

AW: Performance - PHP

Hi,

also ich hoffe, dass das Thema noch aktuell ist, es gibt ein paar Dinge wie man
seine Performance verbessern kann zum ersten Apache mit Nginx kombinieren
ganz umsteigen wird sicher nicht immer gehen. Das Zweite die Datenbank abfrag
Cachen (z.B. Zend_cache) so könnte man für 100 User eine Datenbank Abfrage
benutzen.

Facebook hat es noch etwas mehr auf die Spitze getrieben die wandeln
PHP-Sourcecode in C++ um, bin mir nicht mehr sicher, aber google mal nach
"Facebook PHP HipHop" oder so.

Gruß
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben