Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
en:temoignages:moteur_orange [2011/06/27 20:07] – daamien | en:temoignages:moteur_orange [2011/07/06 23:47] – daamien | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== France Telecom | + | ====== France Telecom's Search Engine based on a 24 TB database |
+ | //In the following text, Severine Aubry and Robin POUGET, who are respectively Project Manager and Database Manager at France Telecom, demonstrate their use of PostgreSQL for a major tool of they company.// | ||
- | Séverine AUBRY and Robin POUGET témoignent de l' | ||
- | Il s'agit du moteur de recherche “Le moteur”: http:// | + | [[http:// |
- | La criticité de cette application est haute car elle conditionne la qualité des documents indexés dans le moteur de recherche. | + | This part of the search engine was build between 2001 and 2002, exclusively with PostgreSQL. At that time, the Postgres project was about to released its versionn 7.4. Nowadays the project is based on PostgreSQL 8.2. Of course, the back office has seen some improvements and fixes over the years. |
- | Ce “back office” | + | In details, the engine is composed of a crawler, whose charge is to browse the Internet through a list of URLs and thousands of key sites. It follows links automatically. This data is then processed through several scripts written in TCL. Data is stored in a schema with a few thousand tables. The partitioning is based on technology developed internally, based on hash keys. |
- | La partie “back office” de ce moteur de recherche a été réalisée entre 2001 et 2002, exclusivement avec PostgreSQL. À cette époque, le projet | + | From the start, the goals of the project were to have stable and robust solution with an easy maintenance and the ability to handle |
- | Dans le détail, le moteur est composé d'un “crawler”, dont la charge est de parcourir internet grâce à une liste d' | + | Here's some figures to describe the whole system : More than 5 billion tuples are distributed among 160 Linux servers that run 800 PostgreSQL instance. The overall data volume is 24 Terabytes. Note that PostgreSQL is not only running on these machines, there are also applications along the databases. The Linux servers are spread over three separate datacenters, |
- | La charge du “crawler” est donc de récupérer des URLs et un contenu associé. | + | The entire application is extremely flexible : even if a server falls, there' |
- | Ces données sont ensuite traitées via plusieurs scripts, écrits en TCL. | ||
- | Les données sont stockées dans un schéma comportant quelques milliers de tables. Le partitionnement repose sur une technologie développée en interne, basée sur des clés de type hash. | + | There has been in the history of the project a few minor issues that were fixed by the community, whose support was effective. Among these issues, there were : |
- | Les idées-force du projet, sont depuis le début, d' | + | * Data fragmentation due to massive updates. This has been fixed with the new features of PostgreSQL over the years (remember the project has been running PostgreSQL for 10 years ! ) |
+ | * Some concern with memory management that were corrected in version 8 | ||
+ | * VACUUM FULL are now almost ancient history. At first, the system needed 3 or 4 VACUUM FULL per year. Now only 1 is enough. | ||
- | stable | + | In conclusion, PostgreSQL |
- | robuste | + | |
- | très maintenable | + | |
- | scalable, propre à encaisser une volumétrie galopante et donc, | + | |
- | affranchie des problèmes d' | + | |
- | Quelques chiffres: | ||
- | |||
- | 5 milliards de tuples sont ainsi répartis sur | ||
- | 160 machines qui abritent 800 serveurs PostgreSQL, tous sous Linux, | ||
- | pour une volumétrie totale de 24 téra-octets | ||
- | à noter qu'il n'y a pas que PostgreSQL qui fonctionne sur ces machines, on y trouve aussi des applications | ||
- | |||
- | Les machines sont réparties sur 3 sites géographiques, | ||
- | |||
- | Il existe des exports de données de cet ensemble vers d' | ||
- | |||
- | Il en résulte une extrême souplesse de l' | ||
- | |||
- | Il y a eu dans l' | ||
- | |||
- | des problèmes de fragmentation de données, liés à des UPDATE massifs. Cela a été corrigé grâce aux nouvelles fonctionalités de PostgreSQL au fil des ans (pour rappel le projet a plus de 10 ans avec PostgreSQL!); | ||
- | |||
- | la version 8 a permis de corriger des soucis au niveau de la gestion de la mémoire; | ||
- | |||
- | les VACUUM FULL sont presque de l' | ||
- | |||
- | En guise de conclusion, PostgreSQL donne ici entière satisfaction depuis plus de 10 ans. Les quelques soucis rencontrés ont tous été traités avec la plus grande efficacité de la communauté. Les nouvelles versions de PostgreSQL ont de plus apporté, soit des solutions à ces problèmes, soit des améliorations, | ||
- | |||
- | [Propos recueillis par Jean-Paul Argudo, de mars à juin 2011] | ||
+ | // |