Est-il Oracle ou MySQL ou quelque chose qu'ils ont construit eux-mêmes?
Réponses
Trop de publicités?Bigtable
Un Système de Stockage Distribué pour les Données Structurées
Bigtable est un stockage distribué système (construit par Google) pour la gestion des données structurées qui est conçu pour s'adapter à un très grande taille: pétaoctets de données à travers des milliers de produits de base des serveurs.
De nombreux projets à Google de stocker des données dans Bigtable, y compris l'indexation web, Google Earth et Google Finance. Ces applications endroit très des exigences différentes sur Bigtable, à la fois dans termes de taille des données (à partir d'Url web les pages à l'imagerie satellite) et la latence (à partir du backend traitement de masse de données en temps réel de servir).
Malgré la diversité de ces demandes, Bigtable a réussi à pourvu d'un flexible, de haute performance la solution pour l'ensemble de ces Google produits.
Certaines fonctionnalités
- rapide et à très grande échelle SGBD
- un clairsemée, distribué multi-dimensionnelle, triées de la carte, en partageant des caractéristiques de la ligne et orientée vers la colonne de bases de données orientées.
- conçu pour s'adapter dans le pétaoctet gamme
- il fonctionne sur des centaines ou des milliers de machines
- il est facile d'ajouter plus de machines pour le système automatiquement et de commencer à profiter de ces ressources sans aucune reconfiguration
- chaque table comporte plusieurs dimensions (dont l'un est un champ de temps, permettant la gestion des versions)
- les tables sont optimisés pour GFS (Système de Fichiers de Google) en étant divisé en plusieurs tablettes - segments de la table split le long d'une ligne choisie de telle sorte que la tablette sera de ~200 mo.
L'Architecture
BigTable n'est pas une base de données relationnelle. Il ne prend pas en charge les jointures, ni ne prend en charge les riches des requêtes de type SQL. Chaque tableau est une multidimensionnelle éparses carte. Les tableaux sont constitués de lignes et de colonnes, et chaque cellule a un timbre de temps. Il peut y avoir plusieurs versions d'une cellule avec des temps différents timbres. L'horodatage permet pour des opérations telles que "sélectionner" n "versions de cette page Web" ou "supprimer les cellules qui sont les plus anciens/les temps".
Afin de gérer l'énorme tables, Bigtable partage les tables à la ligne limites et les enregistre sous forme de comprimés. Une tablette est autour de 200 MO, et chaque machine permet d'économiser environ 100 comprimés. Cette configuration permet d'comprimés à partir d'un seul tableau pour être répartie entre de nombreux serveurs. Il permet également de fines équilibrage de la charge. Si une table est de recevoir de nombreuses requêtes, il peut jeter d'autres comprimés ou de déplacer la table occupée à une autre machine qui n'est pas tellement occupé. Aussi, si une machine tombe en panne, une tablette peut être répartie dans de nombreux autres serveurs, de sorte que l'impact de la performance sur n'importe quelle machine est minime.
Les Tables sont stockées comme immuable SSTables et une queue de journaux (un journal par machine). Lorsqu'un ordinateur à court de mémoire système, il compresse certains comprimés à l'aide de Google propriétaires des techniques de compression (BMDiff et Zippy). Mineur compactions impliquer seulement quelques comprimés, tandis que les compactions impliquer l'ensemble de la table système et de récupérer de l'espace disque dur.
Les emplacements de Bigtable comprimés sont stockées dans les cellules. La recherche d'une tablette est gérée par un système à trois niveaux. Les clients obtiennent un point à un META0 table, de qui il est un seul. Le META0 tableau permet de suivre de nombreux META1 comprimés qui contiennent les emplacements des comprimés d'être regardé. Les deux META0 et META1 de faire un usage intensif de pré-extraction et mise en cache pour réduire les goulets d'étranglement dans le système.
La mise en œuvre
BigTable est construit sur Google File System (GFS), qui est utilisé comme un magasin de sauvegarde pour les fichiers journaux et de données. GFS prévoit de stockage fiable pour SSTables, un Google-format de fichier propriétaire utilisé pour sauvegarder les données de la table.
Un autre service que BigTable fait un usage intensif de est Joufflu, hautement disponible, fiable distribué verrou de service. Chubby permet aux clients de prendre un verrou, éventuellement en association avec un certain nombre de métadonnées, ce qui peut renouveler par l'envoi de garder vivante messages Joufflu. Les serrures sont stockés dans un système de fichiers comme de nommage hiérarchique de la structure.
Il existe trois principaux types de serveur d'intérêt dans le Bigtable système:
- Les serveurs maîtres: attribuer des comprimés de la tablette de serveurs, conserve la trace de l'endroit où les comprimés sont situés et redistribue des tâches en tant que de besoin.
- Tablette serveurs: gérer les demandes de lecture/écriture pour les tablettes et diviser les comprimés, quand ils dépassent les limites de taille (généralement de 100 MO 200 MO). Si une tablette de panne du serveur, puis un 100 comprimé serveurs de chaque ramassage 1 nouvelle tablette et le système récupère.
- Verrouillage de serveurs: les instances de la Chubby distribué verrou de service. Beaucoup d'actions au sein de BigTable nécessitent l'acquisition de verrous, y compris l'ouverture des comprimés pour l'écriture, en s'assurant qu'il n'y a plus qu'un seul Maître à la fois, de contrôle d'accès et de vérification.
Exemple de Google document de recherche:
Une tranche d'un exemple de tableau que stocke des pages Web. La ligne est un nom de inversé URL. Le contenu de la colonne la famille contient le contenu de la page, et l'ancre famille de colonne contient le texte des ancres qui fait référence à l' page. CNN la page d'accueil est référencé par les deux Sports Illustrated et la MON look de pages d'accueil, de sorte que la ligne contient des colonnes nommées
anchor:cnnsi.com
etanchor:my.look.ca
. Chaque ancrage de la cellule a une version; le contenu de la colonne a trois versions, à horodatagest3
,t5
, ett6
.
API
Les opérations typiques de BigTable sont la création et la suppression des tables et des familles de la colonne, l'écriture de données et la suppression de colonnes à partir d'une ligne. BigTable fournit cette fonction pour les développeurs d'application d'une API. Les opérations sont prises en charge au niveau de la ligne, mais pas à travers plusieurs touches fléchées.
Voici le lien vers le PDF de l'article de recherche.
Et ici vous pouvez trouver une vidéo montrant Google Jeff Dean, dans une conférence à l'Université de Washington, de discuter de l'Bigtable de stockage de contenu, système utilisé dans Google backend.
C'est quelque chose qu'ils ont construit eux-mêmes - il est appelé Bigtable.
http://en.wikipedia.org/wiki/BigTable
Il y a un papier par Google sur la base de données:
La clé est de Google distribués à l'échelle mondiale relationnelle système de gestion de base de données (SGBD), le successeur de BigTable. Google prétend que ce n'est pas un pur système relationnel parce que chaque table doit avoir une clé primaire.
Ici est le lien de l'article.
La clé est de Google évolutive, version multi-échelle mondiale, distribué, et de façon synchrone-base de données répliquée. C'est le premier système à distribuer des données à l'échelle mondiale et de soutien à l'externe-compatible les transactions distribuées. Ce document décrit la façon dont la Clé est structuré, son ensemble de fonctionnalités, le raisonnement sous-jacent de conception différentes les décisions, et un roman de l'API du temps qui expose l'horloge de l'incertitude. Cette API et sa mise en œuvre sont essentiels au soutien externe la cohérence et une variété de fonctions puissantes: non-blocage de lit dans le passé, sans verrouillage des transactions en lecture seule, et atomique des modifications de schéma, à travers l'ensemble de Clé à molette.
Une autre base de données inventé par Google est Megastore. Voici le résumé:
Megastore est un système de stockage conçue pour répondre aux exigences de aujourd'hui interactif de services en ligne. Megastore mélanges de l'évolutivité d'une banque de données NoSQL avec la commodité d'un SGBDR traditionnels dans un nouvelle façon, et fournit à la fois une forte cohérence de garanties et de haute la disponibilité. Nous fournissons entièrement serializable ACIDE sémantique au sein de fine des partitions de données. Cette séparation nous permet de de façon synchrone répliquer chaque écriture sur un réseau étendu avec raisonnable de la latence et de l'appui d'un basculement transparent entre les centres de données. Ce document décrit Megastore de la sémantique et de l'algorithme de réplication. Il décrit également notre expérience dans le soutien d'un large éventail de Google les services de production construit avec Megastore.
Comme d'autres l'ont mentionné, Google utilise un domaine appelé solution de BigTable et ils ont publié quelques articles décrivant dans le monde réel.
L'Apache gens de mise en œuvre les idées présentées dans ces documents appelés HBase. HBase est une partie de la plus grande Hadoop projet qui, selon leur site "est une plateforme logicielle qui permet de facilement créer et exécuter des applications qui traitent de grandes quantités de données." Certains de ces indicateurs sont assez impressionnants. Leur site est à http://hadoop.apache.org.
Bien que Google utilise BigTable pour l'ensemble de leurs principales applications, elles aussi utiliser MySQL pour d'autres (peut-être mineur) des applications.