|
Google wird Marktführer Google ist die weltweit am meisten genutzte Suchmaschine des Internet. Die Firma Google Inc. wurde 1998 von Lawrence Page und Sergey Brin gegründet. Im Jahr 2006 verfügte Google über einen Marktanteil von über 80%, bei einer Indexgrösse von über 8 Milliarden Webseiten und ca. 60 Milliarden Dokumenten und über 1,1 Milliarden Bildern. Der Name von Google leitet sich von Googol ab, dies ist der Name der Zahl 1x 10 ^ 100 (eine 1 mit hundert Nullen), den sich Milton Sirotta, der Neffe des Mathematikers Edward Kasner ausgedacht hat. Zur Legende zählt, dass der Markenname Google durch einen Rechtschreibfehler aus Googol entstanden sei. Technologie und Logistik, Googleware Google ist verteilt auf mehrere Rechenzentren rund um die Welt, die mit handelsüblichen PCs ausgestattet sind. In jedem Rechenzentrum befinden sich Rechnercluster mit einer verteilten, redundanten und nach oben leicht skalierbaren Architektur. Die aktuelle Zahl der Server lag 2006 bei 450.000. Der Festplattenspeicher befindet sich im Petabytebereich, der Arbeitsspeicher im Terabytebereich. Das Prinzip der verteilten Datenhaltung ist bei Google ausgereift: die Googleware ermöglicht ein Verschmelzen von Hardware und OS, so dass man kurzfristig Server in ein Rack schieben kann, die das OS automatisch laden und sich integrieren. Google betreibt redundante Datenhaltung so dass der Index in 3 Kontinenten unabhängig verfügbar ist. Google erreicht in Deutschland ca. 28 Mio Nutzer, eine Suchanfrage benötigt durchschnittlich 0,2 Sekunden und beschäftigt ca. 300 - 700 Server. Google ist in 112 Sprachen verfügbar auf 158 Domains. Der PageRank Algorithmus Entscheidend für die Reihenfolge der Ergebnisausgabe bei Suchanfragen ist der Ranking Algorithmus. Google arbeitet mit dem PageRank-Algorithmus: entscheidend beim PageRank ist die Anzahl der Webseiten (und deren eigener PageRank Wert sowie die thematische Nähe zur verlinkten Seite), die auf eine Seite verlinken (= Backlinks: Rückverweise, die aus dem Betrachtungsstandpunkt einer Webseite von anderen Webseiten auf sich selber verlinken), die relevante Keyword-Dichte bezogen auf das Thema der Seite, die Aktualität und der Umfang der Webseite. Der PageRank geht von 0 bis 10 (mit 10 als höchstem Wert) und wird z. B. von der Google Toolbar im Internet Explorer oder dem Firefox Add-On "Search Status"angezeigt. Unabhängig vom PageRank sind die Ranking Positionen für Suchergebnisseiten einzelner Keywords zu bewerten. Um in die Top-10-SERP (Search Engine Result Page oder Search Engine Ranking Position) zu gelangen, sollte man SEO (Search Engine Optimization, Suchmaschinenoptimierung) betreiben. Web-Spam und TrustRank Eventuell wird der PageRank bald durch den TrustRank ersetzt. Beim TrustRank werden Webseiten nach einem bestimmten Verfahren bewertet. Es entsteht ein semantisches "Trusted Web", bei dem die qualitative Nachbarschaft von Webseiten, die miteinander verlinkt sind, bedeutend ist. Dadurch soll Web-Spam wie Doorway-Pages, Link-Farmen oder Google-Bombs bekämpft werden. Implementierung von Google, Google AdWords, Google AdSense Google wurde in C und C++ implementiert und läuft auf Linux und Solaris. Mit Google AdWords kann man auf Google Keyword-gesteuerte Anzeigen schalten. Der Werbetreibende hat volle Kontrolle über sein Budget und sein CPC (Cost per Click). Google AdSense erlaubt es dem Web-Admin, keyword- bzw. kontextgesteuerte Werbung auf seiner Webseite zu platzieren. Google-Dienste Google bietet einige Dienste, z. T. durch Akquisitionen (wie z. B. Kaltix Corp., Keyhole Corp., Urchin Software Corp., YouTube, DoubleClick, Postini) an: Produktsuche (ehemals Froogle), GMail, Google-News, Google-Base, Google Bücher, Google-Earth (Keyhole Corp.), Google Analytics (ehemals Urchin), Google Docs & Spreadsheets (Online Textverarbeitung (ehemals Writely) und Tabellenkalkulation), Google Blog Search, Google Calender, Google Reader, Google Talk, Google Finance, Google Desktop Search oder Picasa oder Google Plus (G+). Google penetriert immer mehr den Online (und Offline)-Werbemarkt und ist nach der Akquisition von Double Click seinem Ziel einer beherrschenden Stellung auf diesem Markt ein gutes Stück näher gekommen. Google Apps for Your Domain bietet eine Reihe von Hosted Communications Services: GMail Web E-Mail, G-Talk Instant Messaging und Voice Calling Services, Collaborative Calendering durch Google Calendar sowie Web-Design, Web-Publishing und Web-Hosting mit Google Page Creator. In Vorbereitung ist das Google Betriebssystem basierend auf dem Browser Chrome: Chrome-OS. Android ist das Handy-OS. Google IPO Das IPO (Initial Public Offering) von Google wurde 2004 durch Venture Capital von Sequoia Capital und Kleiner Perkins Caufield & Byers (KPCB) mitfinanziert. Konsortialführer waren Morgan Stanley und Credit Suisse First Boston. Beim Börsengang mit dabei waren 29 weitere Banken, u. a. Goldman Sachs, die Citigroup, die Deutsche Bank, Lehman Brothers oder Merrill Lynch. Google nahm durch diesen IPO ca. 2,7 Milliarden Dollar ein. Die Aktienstruktur wurde so gewählt, dass Page und Brin eine höchstmögliche Kontrolle darüber bekamen: sie kontrollieren jeweils ca. 16% davon (Page beim Börsengang 38,6 Mio Aktien, Brin 38,5 Mio Aktien, Eric Schmidt 14,8 Mio Aktien sowie Kleiner Perkins und Sequoia Capital mit jeweils 23,9 Mio Aktien). Der Umsatz von Google betrug 1999 noch 220.000 Dollar. Der Quartalsumsatz von 1/2004 lag bei 389,6 Millionen Dollar, bei einen Nettogewinn von 64 Millionen Dollar, der Jahresumsatz lag 2003 (2002) bei 961,8 (347,8) Mio $. Der Umsatz stieg pro Quartal seit dem Börsengang um jeweils ca. 50%. Die Börsenkapitalisierung betrug 2007 158 Milliarden Dollar. Der Kurs der Google Aktie bewegte sich bis auf ca. 700 $ Ende 2007 und danach in einer Range zwischen 450 und 600 Dollar. 2006 wurde Google zur einflussreichsten Marke der Welt gewählt. Frühe Investoren die ab 1999 oder später einstiegen waren neben Sequoia Capital und KPCB auch private Investoren wie Andreas von Bechtolsheim (Sun Microsystems), Arnold Schwarzenegger, Tiger Woods, Henry Kissinger oder Shaquille O'Neal. Bechtolsheim soll auf Einladung von Stanford Professor David R. Cheriton, der Brin und Page beim Google-Projekt unterstützte, eine Vorführung einer frühen PC-Version von Google bekommen haben und war gleich so begeistert und vom Erfolg von Google überzeugt, dass er angeblich gleich einen 1 Million $ Scheck gezückt haben soll, obwohl es noch gar keine Firmengründung für Google gab. Andy Bechtolsheim schlug vor, diese Firma direkt zu gründen, und war damit einer der Early Bird Investoren. |
|||||
| Siehe auch: Volltext-Suchmaschinen Suchmaschinen-Ranking PageRank-Algorithmus BackRub Google-BigTable Google-Server AdServer Search-Engine-Optimization Semantische-Suchmachine Social-Network-Dienste | |||||
| Google-BigTable | |||||
|
Google BigTable ist ein verteiltes Speichersystem welches ausgelegt ist, um grosse Mengen an strukturierten Daten zu verwalten. Es kann sich dabei um Größenordnungen bis in den Petabytebereich handeln. Diese Daten können auf tausenden Commodity Servern verteilt sein. Commodity Server sind in der Praxis leicht einsetzbar für kommerzielle Zwecke oder wichtige Datenanforderungen. Sie sind leicht ersetzbar (Plug and Play) und nachbestellbar, in einfacher Ausführung. Sie können in Blade Zentern leicht eingesetzt und ausgetauscht werden. Google Table wird sowohl für große strukturierte Daten in NoSQL Datenbanken eingesetzt als auch für Anwendungen die eine geringe Antwortzeit benötigen (von Backend Massenverarbeitung bis zu Echtzeit Datenverarbeitung). Eigenschaften von Google BigTable sind Skalierbarkeit, vielseitige Anwendbarkeit, hochleistungsfähig, und geringe Ausfallzeiten. In BigTable sind mehrere Datenbankstrategien vereint: Parallele Datenbanken, In-Memory Datenbanken und ein eigenes Interface: es werden keine Relationen Schemata implementiert sondern ein einfaches, strukturiertes Datenmodell (structured storage), welches eine dynamische Kontrolle über das Datenlayout und Datenformat ermöglicht. Google BigTable ist eine Key-Value In-Memory NoSQL Datenbank und indexiert Daten durch Row Names und Column Names die auch Strings sein können. BigTable behandelt Daten als uninterpretierte Strings, obwohl die Clients oft verschiedene Formen der strukturieren und semi-strukturieren (bei XML-Daten z.B.) Daten in diese Zeichenketten serialisieren. Google BigTable läuft auf dem Google File System (GFS) und basiert auf dem Chubby Lock Service. Big Table wird bei verschiedenen Google Diensten bereits produktiv eingesetzt: Google Maps, Google Earth, MapReduce, Youtube, Google Finance, Google Analytics oder Orkut und Google Books. MapReduce ist ein Framework für niedrig-priorisierte Berechnungen für grosse Datenbestände auf Computerclustern. Ein BigTable ist vom Datenmodell her eine einfache, verteilte, persistente multidimensionale sortierte Map. Die Map ist indexiert durch einen Row Key, einen Column Key und einen Zeitstempel. Jeder Wert in der Map ist ein uninterpretiertes Array von Bytes. Wenn man annimmt, dass man eine grosse Anzahl von Webpages und den dazugehörigen Informationen für verschiedene Anwendungen speichern und verwalten will so kann man diesen "Webtable" als Google BigTable folgendermassen ablegen: URL wäre der Wert für Row Keys, die zu den Webpages gehörigen Informationen (z.B. Typos, Farbe, Hyperlinks, Schriftarten usw) die Column Names. Der Inhalt der Webseiten wird in einem Dokumentennamen CONTENT gespeichert. Diese Einträge werden je nach Zugang mit Zeitstempeln versehen. BigTable speichert Daten in lexikographischer Ordnung oder sortiert durch Row Keys ab. Die Row Breite ist dynamisch partitioniert. Jede Row Range wird als Tablet bezeichnet. BigTable unterstützt Single Row Transaktionen, allgemeine Transaktionen über Row Keys werden nicht unterstützt, Zellen können als ganzzahliger Zähler verwendet werden. Clientseitige Scripts die im Adressraum der Server laufen werden unterstützt. Die Scripts werden mit Sawzall entwickelt, eine interpretierte, prozedurale und Domänenspezifische Sprache (domain specific language (dsl)) um grosse Datenmengen zu handhaben. Sawzall wurde von Google für seine Anforderungen entwickelt und verwendet die bestehende Googleware: das Google File System, MapReduce, die Workqueue und Protocol Buffers. In der jetzigen Implementierung von Google BigTable ist es den Client Scripts von der Sawzall-basierten API nicht erlaubt auf Daten in BigTable zurück zu schreiben, aber die Sawzall-API erlaubt verschiedene Formen der Daten-Transformation, das Filtern über verschiedene Ausdrücke und die Aggregation mit einigen Operanden. Die BigTable API enthält Funktionen zur Schaffung und Löschung von Tabellen und Spaltenfamilien (gruppierte Spalten), sowie um Tabellen, Spaltenfamilien und Metadaten zu verändern. Mit Hilfe des verteilten Google File Systems werden Logdateien und Daten gespeichert. BigTable läuft in einer verteilten Maschinenpoolumgebung in der verschiedene Anwendungen laufen, so dass sich BigTable Rechen-Ressourcen mit anderen Anwendungen teilen muss. BigTable benötigt ein Cluster Managementsystem um Jobs einzulasten. Das Google SSTable Dateiformat wird intern verwendet um BigTable Daten zu speichern. BigTable verwendet einen hochverfügbaren und persistent verteilten Lock Service der Chubby genannt wurde. |
|||||
| Siehe auch: NoSQL datenbank Verteilte-Datenbank Multiversion-Concurrency-Control In-Memory-Datenbanken Google Google-Server Google-BigData Green-Grid | |||||
| Google-BigData | |||||
|
Das Google BigTable Konzept setzt auf horizontale Skalierung von Daten im Gegensatz zu relationalen Datenbanken um eine bessere Anpassungsfähigkeit der Datenarchitektur an die aktuellen Erfordernisse zu erreichen. Durch eine verteilte und horizontale Datenbankarchitektur können Rechnerknoten lastabhängig und dynamisch angepasst werden. Google BigTable arbeitet also nicht im Relationenschema sondern dank dem NoSQL-Konzept schemafrei. Die Folge ist die Aufweichung des ACID-Prinzips, welches für Web-Scale Datenbanken weder notwendig noch haltbar ist und das Umschwenken auf die Philosophie des BASE (Basically Available, Soft State und Eventual Consistent) bzw. CAP-Theorems (bei verteilten Systemen werden nur 2 der 3 Bedingungen Consistency, Availability und Partition Tolerance erfüllt). MapReduce Um die grossen Datenmengen effizienter verarbeiten zu können, hat Google das MapReduce-Verfahren entwickelt. Es handelt sich hierbei um 2 unabhängige Funktionen Map und Reduce die sich aus den funktionsorientierten Computer-Hochsprachen ableiten, und jeweils in eigenen Prozessen ausgeführt werden. Das MapReduce-Framework bietet für den Anwender eine Möglichkeit der komplexen, gekapselten Datenverarbeitung: dabei werden hauptsächlich Vergleichsoperationen ausgeführt welche Datensätze nach vom Anwender vorgegebenen Kriterien durchsuchen können. Der MapReduce-Prozess läuft dabei in zwei Schritten ab: zunächst werden die Ausgangsdaten eingelastet und auf verschiedene Map-Prozesse verteilt. Mit Hilfe der vom Anwender erstellten Map-Kriterien ermittelt die Map-Funktion die Zwischenergebnisse. Diese werden in Zwischenspeicher abgelegt. Danach nimmt die Reduce-Funktion diese auf und ermittelt parallel dazu die jeweiligen Suchergebnisse. Den ersten Schritt nennt man Map-Phase und den zweiten Reduce-Phase. Google-File-System Google BigTable verwendet das Google File System (GFS). Wie Google BigTable ist das Google File System eine Google-proprietäre Softwaretechnologie. Das GFS ist Linux-basiert und dafür ausgelegt auf Clustern zu laufen welche mit einer großen Anzahl handelsüblicher Commodity-Server bestückt sind. Das GFS ist für verteilte und fehlertolerante Systeme ausgelegt, was den Anforderungen der Googleware entspricht. Diese Merkmale zeigen sich bei der Behandlung des Wegfalls eines Netzwerkknotens, ein Ereignis das im täglichen Google-Betrieb öfters stattfindet und zum Prinzip gehört um die dynamische Ein- und Anbindung von Daten bzw. Commodity-Servern zu ermöglichen: es wird nicht unterschieden zwischen dem Ausfall eines Netzwerkknotens und dem Herunterfahren eines solchen. Dadurch ist auch das Hinzuschalten neuer Commodity-Server im RZ im laufenden Betrieb (Hot-Plugging) möglich. Es finden weiterhin keine ReWrite-Vorgänge statt; stattdessen werden Daten einfach hinzugefügt so das keine Notwendigkeit ständiger Synchronisations-Prozesse besteht. GFS ist geclustert und teilt sich in viele Chunk-Server auf, die über einen Master-Server verfügen. Die Chunk-Server verwalten ihre Daten in Chunks zu 64-MB. Die Speicherstruktur verfügt über eine mindestens dreifache Redundanz. Der Master-Server verwaltet hingegen nur einen reduzierten Meta-Datensatz um Client-Anfragen effizienter verarbeiten zu können. Nach einem Client-Request an den Master-Server erhält der Client die Adresse des jeweiligen Chunk-Servers. SSTable Zur internen Repräsentation der Daten setzt Google BigTable das SSTable -Format ein. SSTable (Sorted-String-Table) ist ein On-Disk File Format welches String-to-String-Mapping einsetzt. SSTable setzt Maps ein, die, einmal geschrieben, unveränderbar sind. Es verwendet Key-Value Paare die nach Keys sortiert sind. Die Schreibvorgänge gehen sequentiell vonstatten und hängen einen Index am Ende der Datei an. SSTable ist in Blöcke zu jeweils 64-KB organisiert. Diese werden in einem Blockindex registriert. Bei einer Anfrage wird der Blockindex in das RAM geladen um es mit Hilfe der Binärsuche zu durchsuchen. Durch diesen vorbereitenden Vorgang können nachgelagerte HDD-Zugriffe effizienter gestaltet werden. Es besteht auch die Möglichkeit der In-Memory-Verarbeitung des ganzen SSTable. Chubby-Lock-Service Zur Vermeidung von Deadlocks und zur Transaktionssteuerung setzt Goolge-BigTable den Chubby-Lock-Service ein. Der Cubby-Lock-Service ist eine Distributed Lock Manager für lose gekoppelte verteilte Systeme. Er besteht aus 5 Replikationen inklusive einem Master und setzt den Paxos-Algorithmus ein. Paxos ist als eine Protokollfamilie zu verstehen, welche in verteilten Systemen versucht einen Ergebnis-Konsens herzustellen. Paxos arbeitet mit Prinzipien der Fehlertoleranz und verteilten Implementierung und unterliegen den Prinzipien der State-Machine-Replication bzw. des State-Machine-Approach nach Leslie Lemport und Fred Schneider. Paxos wird in Key-Value Umgebungen eingesetzt und ist geeignet, den Ausfall von Netwerkknoten eines Clusters zu managen. Der Chubby-Lock-Service unterstützt Google-BigTable bei der Suche nach neuen oder ausgefallenen Tablet-Servern und der Ermittlung der Schemadaten für die Spaltenfamilie eines Tablets. Neben dem Master-Server verfügt Goolge-BigTable über eine Library und einen Tablet-Server. Die Tabellen werden in einer dreifachen Struktur verwaltet: diese besteht aus einer Chubby-Datei welche die Adresse des Root-Tablets enthält. Im Root-Tablet sind Referenzierungen auf die Metadaten-Tablets enthalten. Diese besitzen Informationen für die User-Tabellen. Die Maximale Anzahl der adressierbaren Tablets beträgt 2 ^ 34. Der Chubby-Lock-Service wird Google intern heute auch als Nameserver eingesetzt. |
|||||
| Siehe auch: Google-BigTable NoSQL Google-Server Google Deadlock Apache-Cassandra ACID Konsistenz Nameserver Hot-Swapping | |||||