Google I/O 2010

21 мая 2010

Google I/O закончился, основные моменты конференции:

Web растет
  • на десктопе перестали появляться значимые приложения (за исключением игр)
  • люди проводят все больше и больше времени в интернет. Телевидение, радио и газеты сдают свои позиции
Приходит HTML5
  • к концу года будет поддерживаться всеми современными (= новыми) браузерами
  • открыли WebM (web media) – видео кодек vp8, его поддержали opera и mozilla.
  • я не специалист, и зрение у меня не очень, поэтому не заметил особых проблем по сравнению с h264, но некоторые утверждают что качество хуже.
  • Adobe встроит VP8 в Flash Player -> он появится и в устаревших браузерах -> получается единый кодек для видео в инете
Chrome Web Store
  • продажа web приложений как «коробок»
  • Еще один шаг к Google OS
Google Wave
  • открыт для всех
  • ускорен, расширен API и т.д.
  • использовался для обсуждения на всех секциях Google IO, получилось очень удобно
Сотрудничество с VMWare
  • Spring Roo научился генерить GWT интерфейс
  • за несколько минут, на наших глазах, было написано полноценное приложение на Spring Roo для GAE + GWT

Читать далее »»

Google: Designs, Lessons and Advice from Building Large Distributed Systems:

И еще видео (которое фиг просмотришь нормально) примерно на ту же тему от Facebook:
High Performance at Massive Scale – Lessons learned at Facebook (может кто-то сможет перезалить его на YouTube или Google Video?)

В 2004 году Google рассказал о модели обработки данных которую они использую. Основана она на том что данные обрабатывает пара простых функций Map и Reduce. Первая их которых выделяет множество пар Ключ/Значений из входящих данных (тоже являющихся парами Ключ/Значение), а вторая производит объединение/группировку этих пар, и, опять же, выдает наружу таки пары, чаще всего в меньшем количестве чем пришло на вход. Дополнительным элементом является распределенная файловая система GoogleFS, благодаря которой обрабатываемый файл, и вся промежуточная информация, становится легко доступной с любого компьютера в кластере.

Т.к. вся архитектура обработки состоит из небольших функций, то обработку можно легко распараллелить на кластере. К тому же облегчает разбивка на отдельные куски и восстановление после сбоя. Используя распределенную ФС мы разбиваем данные на небольшие кусочки, с каждым из которых и работает отдельный элемент кластера.

Так же эту идею можно встретить под названием Split/Aggregate. Т.е. суть в том что входные данные (неважно какого размера) разбиваются на отдельные элементы (этап split), к примеру построчно, каждая строка как отдельное значение для обработки. Эти блоки строк раcпределяются по кластеру для обработки, где для каждой строки вызывается функция обработки (map). Результат выполнения опять объединяется (reduce/aggregate) в выходной файл. Если нужно, то данные сохраняются отсортироваными в определенном порядке, к примеру по внешнему ключу.
Читать далее »»