Как стать автором
Обновить

Комментарии 11

Было бы интересно что-то услышать о F1, который построен поверх Spanner (http://www.systemswemake.com/paper/f1)
Вот две официальные публикации о F1 от Google: раз и два
Т.е. получается, что не успели люди начать пользоваться NoSQL, уже появилась новая тенденция — попытка совместить быстроту и масштабируемость NoSQL и привычный всем SQL. Мне кажется такими темпами скоро программисты будут ходить к отдельному человеку, который разбирается во всех этих типах баз данных, API, встроенных языках и т.п. Раньше вот как хорошо было: MySQL, PostgreSQL, MSSQL, Firebird, Oracle, SQLite более менее знаешь и этого достаточно, чтобы написать любое приложение. А теперь кроме этих наиболее известных SQL движков еще штук 30 новых. ДУмаю лет через 10 две трети умрет и будет нам опять нирвана.
<кэп модэ>
Если «тогда» «программист» было более-менее определенное понятие и должность, то сейчас всё уходит в узкую специализацию по зоопаркам технологий и подходов
</кэп модэ>
Это как совсем давно. Мужик? — Вот тебе дубина, вон там стоИт мамонт. Пойди убей его и съешь.
Ну, понятно, надеюсь.
Дык, каждой задаче — свое решение. Polyglot Persistence и все такое. У нас уже есть люди, которые специализируются либо только на реляционных базах, либо только на NoSql. Дяди разные нужны, дяди разные важны :) Вот, кстати, дяденька Фаулер еще давно завещал www.martinfowler.com/bliki/PolyglotPersistence.html
автоматическая обработка отказов как вычислительных узлов, так и ДЦ;
автоматическая миграция данных как между вычислительными узлами, так и между ДЦ.

Мне казалось это как раз таки чаще свойства NoSQL, чем традиционных СУБД.

В самом же Spanner согласованность данных при проведении транзакций обеспечивается протоколом двухфазной фиксации транзакции (2-Phase Commit Protocol), реализованным с помощью алгоритма Paxos.

Это неверно. Paxos и 2PC используются независимо и для разного. Вообще вопрос организации tablets в группы вы как-то опустили. Paxos используется для репликации внутри группы (реплицируются одни и те же данные, в том числе между ДЦ), двухфазный коммит и двухфазные блокировки используются для организации транзакций, оперирующих с данными из нескольких tablet. Кроме этого рискну предположить, что всевозможные мастера используют Chubby и, как следствие, тоже Paxos.

Ещё хотел бы добавить, что ваш цикл совсем обходит стороной Megastore и Chubby, хотя второй послужил прототипом Zookeeper.
Рискуя комментарием на грани фола, замечу что Megastore это немного тупиковая другая ветвь эволюции, и в инфраструктуре CFS/Spanner/F1 он вообще не участвует. Chubby здесь конечно же используется, в том же ключе как он используется и в любом другом продукте Google — distributed lock service.
Да, про chubby интересно было бы почитать.
www.cs.utexas.edu/users/lorenzo/corsi/cs380d/papers/paper2-1.pdf

К сожалению на самом интересном месте:

While group membership with the core Paxos algorithm is straightforward, the exact details are non-trivial when we introduce Multi-Paxos, disk corruptions, etc. Unfortunately the literature does not spell this out, nor does it contain a proof of correctness for algorithms related to group membership changes using Paxos. We had to fill in these gaps to make group membership work in our system. The details – though relatively minor – are subtle and beyond the scope of this paper.
So trololo :(
Кольцо Всевластия :)
В отличии от Bigtable, Spanner добавляет к структуре хранимых данных метку времени добавления этих данных, что является важным введением для реализации поддержки мульти-версионности данных.
Эмнэээ… Но ведь Bigtable тоже поддерживает метку времени. Bigtable
A NoSQL massively parallel table
.
Each column family cell can contain multiple versions of content. For example, in the earlier example, we may have several timestamped versions of page contents associated with a URL. Each version is identified by a 64-bit timestamp that either represents real time or is a value assigned by the client. Reading column data retrieves the most recent version if no timestamp is specified or the latest version that is earlier than a specified timestamp. timestamp.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории