Pull to refresh

Google Platform. 10+ лет

Reading time 5 min
Views 17K
Хранение и обработка данных – задача, которую человечество с переменным успехом решает ни одну тысячу лет. Проблемы, связанные с решением этой задачи, связаны не только с физическим объемом данных (volume), но и со скоростью изменчивости этих данных (velocity) и многообразием (variety) источников данных – то, что аналитики Gartner в своих статьях [11, 12] обозначили как «3V».

Computer Science не так давно столкнулась с проблемой Больших Данных, решения которой от ИТ ждут частные компании, правительства, научное сообщество.

И в мире уже появилась компания, которая, с переменным успехом, справляется с проблемой Big Data вот уже 10 лет. По моему ощущению (т.к. чтобы заявить достоверно нужны открытые данные, которых в свободном доступе нет) ни одна коммерческая или некоммерческая организация не оперирует большим объемом данных, чем компания, о которой идет речь.

Именно эта компания являлась основным контрибьютором идей платформы Hadoop, а также многих компонентов экосистемы Hadoop, таких как HBase, Apache Giraph, Apache Drill.

Как Вы догадались, речь идет о Google.



Хронология Big Data в Google


Условно историю развития «Big Data»-решений в Google можно поделить на 2 периода:
  • 1-ый период (2003-2008): в этот период были описаны набор принципов и концепций, которые сейчас де-факто являются стандартом в мире обработки больших объемов данных (на commodity-оборудовании).
  • 2-ой период (с 2009 по настоящий момент): были описаны технологии обработки данных, которые, с большой долей вероятности, будут использоваться для решения «Big Data»-задач уже в недалеком будущем.

2003-2008


В этот период инженерами Google были описаны и опубликованы в свободном доступе research papers о 3-ех системах, которые в Google используют для решения своих задач:
  • Google File System (GFS) – распределенная файловая система [1];
  • Bigtable [3] – высокопроизводительная база данных, ориентированная на хранение петабайт данных;
  • MapReduce [2] – программная модель, предназначенная для распределенной обработки больших объемов данных.

Влияние работ, опубликованных Google, на первые шаги становления отрасли Big Data сложно переоценить.
Наиболее известным примером реализации концепций, описанных Google, является платформа Hadoop. Так прототипом файловой системы HDFS является GFS; идеи, положенные в основу архитектуры HBase, взяты из BigTable; а фреймворк вычислений Hadoop MapReduce (без YARN) является реализацией принципов, заложенных в аналогичном фреймворке Google MapReduce.

Сама платформа Hadoop, начиная с 2008 года, в течение нескольких лет будет набирать популярность и к 2010-2011 году де-факто станет стандартом для работы с Большими Данными.

Сейчас Hadoop уже «локомотив» в мире Big Data и оказывает огромное влияние на этот сегмент ИТ. Но когда-то такое же огромное влияние на Hadoop оказали описанные в Google архитектурные подходы к построению «Big Data»-платформы.

Сама же платформа Google все это время развивалась, адаптировалась под все новые и новые требования, у поисковика появлялись новые сервисы, в том числе те, чья природа соответствовала скорее интерактивному режиму обработки, чем пакетному; размеры chunk’ов (кластеров в GFS) подходили для эффективного хранения не всех типов данных; появлялись требования, связанные с геораспределеностью и поддержкой распределенных транзакций.

К 2009-2010 годам как в самой компании Google, так и в академической среде достаточно подробно исследовали достоинства и ограничения комплекса подходов для построения Big Data платформы, описанного инженерами Google в период с 2003 по 2008 год. Да и сама платформа Google за период до 2009 года развивалась и эволюционировала.

2009-2013


Итак, в (условно) 2-ой этап развития Big Data платформы в Google – 2009-2013 – исследователями компании с разной степенью детализации были описаны следующие программные системы:
  • Colossus (GFS2) – распределенная файловая система, являющаяся развитием GFS [10].
  • Spanner – масштабируемое геораспределенное хранилище с поддержкой версионности данных, являющийся развитием BigTable [8].
  • Dremel – масштабируемая система обработки запросов в режиме близком к режиму реального времени (near-real-time), предназначенная для анализа связанных read-only данных [4].
  • Percolator – платформа для инкрементальной обработки данных, которая используется для обновления поисковых индексов Google [9].
  • Caffeine – инфраструктура поисковых сервисов Google, использующая GFS2, next-generation (итеративный) MapReduce и next-generation BigTable [6].
  • Pregel – масштабируемая, отказоустойчивая и распределенная система обработки графов [7].
  • Photon – масштабируемая, отказоустойчивая и геораспределенная система обработки потоковых данных [5].

В последующих статьях цикла, посвященного платформе Google, будут рассмотрены большинство из вышеперечисленных внутренних программных продуктов Google, с помощью которых Google успешно решает задачи хранения, структурирования и поиска по данным, детектирования спама, повышения эффективности показов рекламных объявлений в сервисах контекстной рекламы, поддержания консистентности данных в социальной сети Google+, etc.

Вместо заключения


Вместо заключения приведу цитату человека, который уже доказал свою способность успешно предсказывать будущего отрасли Big Data, CEO Cloudera Майка Олсона:
If you want to know what the large-scale, high-performance data processing
infrastructure future looks like, my advice would be to read the Google research papers that are coming out right now.
— Mike Olson, Cloudera CEO

Список источников, используемый для подготовки цикла


Основные источники


  • [1] Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung. The Google File System. ACM SIGOPS Operating Systems Review, 2003.
  • [2] Jeffrey Dean, Sanjay Ghemawat. MapReduce: simplified data processing on large clusters. Proceedings of OSDI, 2004.
  • [3] Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A.Wallach, et al. Bigtable: A Distributed Storage System for Structured Data. Proceedings of OSDI, 2006.
  • [4] Sergey Melnik, Andrey Gubarev, Jing Jing Long, Geoffrey Romer, et al. Dremel: Interactive Analysis of Web-Scale Datasets. Proceedings of the VLDB Endowment, 2010.
  • [5] Rajagopal Ananthanarayanan, Venkatesh Basker, Sumit Das, Ashish Gupta, Haifeng Jiang, Tianhao Qiu, et al. Photon: Fault-tolerant and Scalable Joining of Continuous Data Streams, 2013.
  • [6] Our new search index: Caffeine. Google Official blog.
  • [7] Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, et al. Pregel: A System for Large-Scale Graph Processing. Proceedings of the 2010 international conference on Management of data, 2010.
  • [8] James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, et al. Spanner: Google’s Globally-Distributed Database. Proceedings of OSDI, 2012.
  • [9] Daniel Peng, Frank Dabek. Large-scale Incremental Processing Using Distributed Transactions and Notifications. Proceedings of the 9th USENIX Symposium on Operating Systems Design and Implementation, 2010.
  • [10] Andrew Fikes. Storage Architecture and Challenges. Google Faculty Summit, 2010.

Дополнительные источники



История изменений поста
Commit 01 [23.12.2013]. Изменил заголовок статьи.
— Google Platform. 2003-2013
+ Google Platform. 10+ лет
Commit 02 [24.12.2013].
+ ссылка на пост с описанием Colossus.
Commit 03 [25.12.2013].
+ ссылка на пост с описанием Spanner.
Commit 04 [26.12.2013].
+ ссылка на пост с описанием Dremel.
Commit 05 [27.12.2013].
+ ссылка на пост с описанием Photon.


Дмитрий Петухов,
MCP, PhD Student, IT-зомби,
человек с кофеином вместо эритроцитов.
Tags:
Hubs:
+22
Comments 12
Comments Comments 12

Articles