- PVSM.RU - https://www.pvsm.ru -

Новая новая вещь (The new new thing)

Оригинал статьи [1] 13.12.2014. Джон Эванс, Колумнист TechCrunch.

История из силиконовой долины

Базы данных — это хребет ИТ индустрии: невоспеты, невидимы, но критичны. И крайне пагубны когда они ломаются или деформируются. Это делает специалистов по БД осторожными. Годами только лишь Большая Троица — Oracle, IBM DB2, и может быть SQL Server — были единственными серьёзными опциями. Потом open source альтернативы — MySQL, ProstgreSQL — стали жизнеспособным. А потом, в течение последних пяти лет, всё стало очень интересно…

Немного истории.

На рубеже тысячелетия больше и больше людей стали понимать, что формальные, структуризированные, нормализлванные [2] базы данных, запрашиваемые посредством подмножества языка SQL [3], чаще затрудняют чем упрощают разработку. В течение последних 10-ти лет появилось множество новых баз данных, особенно в недрах Google, у которых была особенная нужда в распределённых хранилищах данных, — как резльтат BigTable [4], Megastore и Spanner [5].

Тем временем Apache принесла нам Cassandra [6], HBase [7], и CouchDB [8]; Citrix предложил plug-and-play распределённую замену MySQL [9]; Redis стал фундаментальной частью множества Ruby on Rail (и подобных) приложений; и особенно MongoDB [10] стал очень популярным среди стартапов не смотря на шумную критику [11] — в частности write lock, который не давал параллельно записывать всему кластеру. Это, к счастью, скоро будет исправлено [12], что приведёт к немалому ликованию. (Для справки: я разработчик, и делал кое-какую работу с MongoDB, и я не фанат.)

Интересно, что эти новые разработки — так называемые NoSQL «базы данных» — были передовыми стартапами, и совсем мало подобных мечтателей воспринимало их работу серьёзно. Базы данных слишком критичны, в конце то концов. Если ваша БД деформирована, то вы в большой заднице. Если ваша БД не гарантирует целостность ваших данных и ваших транзакций (например, если она не поддерживает то, что называют "ACID транзакции [13]"), то настоящие инженеры баз данных не воспримут её серьёзно.

ACID

MongoDB не ACID совместима [16]. Аналогично Cassandra, Riak, Redis, и т.д. Кстати говоря, иногда даже утверждали, что NoSQL базы данных фундаментально ACID не совместимы. Это не правда. Google Megastore фактически ACID совместима [17], а их Spanner даже лучше [18]. Но вы не можете воспользоваться Megastore вне Google, если, конечно, вы не собираетесь создать ваше приложение полностью на их своеобразной платформе App Engine.

Вот почему я был сильно заинтригован пару лет назад, когда наткнулся на будку в TechCrunch Disrupt, чей слоган был «NoSQL, YesACID». Её занимала компания под названием FoundationDB [19], которая создала великолепное ACID совместимое [20]1 хранилище ключей-значений, поверх которого предоставляется доступ через т.н. SQL слой [21]. Неделю назад они анонсировали релиз [22] FoundationDB 3.0, которая в 25 раз быстрее чем предыдущая версия благодаря тому, что они называют «пересадка сердца и лёгких» двигателю (engine).

Это серьёзный подвиг в инженерии [22]. Цитируя их пост в блоге, это не просто 14 миллионов записей в секунду, это 14 миллионов записей в «полностью упорядоченной, полностью транзакционной базе данных со 100%-ными мульти-ключевыми (multi-key) много-нодовыми (multi-node) транзакциями [...] в облаке [...]. Другими словами, FoundationDB может делать 3,6 миллионов записей за 1 цент.»

Впечатляет. Достаточно впечатляет, чтобы привлечь внимание индеженеров баз данных из Enterprise сферы. И, естественно, идеально подходит для приближающегося Internet of Things, и огромного количества количества данных, которые будут постоянно геренироваться различными девайсами.

Но, что самое важное, — это подстегнёт их конкурентов к бОльшим достижениями, которые, в свою очередь, подтолкнут огромное количество предприятий, застывших в Бронзовом Веке, использующих Oracle и DB2, к, может быть, медленному, аккуратному переезду на современные день. День, в котором разработчики избалованы простыми хранилищами ключ-значение, мощными запросами классического SQL, и распределёнными ACID транзакциями одновременно.А В далёкой перспективе это сделает жизнь лучше. А пока что снимаю шляпу перед невоспетыми инженерами баз данных, которые где-то там толкают двигатель прогресса [23]. Вы себе этого не представляете, но они делают нам огромную услугу.


1
Если вы походите по ссылкам, то они намерено упускают описание буквы «С» в аббревиатуре ACID. Но для точности скажу, что они имеют в виду strong consistency, а не eventual consistency.


(От переводчика)
А
Где-то я видел твит, что ребята работают над Document Layer. Надеюсь, что он будет MongoDB совместимым.

Это первая статья из приближающего цикла статей про FoundationDB. Держите руку на пульсе.

Автор: koresar

Источник [24]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/bazy-danny-h/78369

Ссылки в тексте:

[1] Оригинал статьи: http://techcrunch.com/2014/12/13/foundationdb-and-the-new-nosql/

[2] нормализлванные: https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0

[3] SQL: https://ru.wikipedia.org/wiki/SQL

[4] BigTable: https://ru.wikipedia.org/wiki/BigTable

[5] Megastore и Spanner: http://blog.mikiobraun.de/2013/03/more-google-papers-megastore-spanner-voted-commits.html

[6] Cassandra: https://ru.wikipedia.org/wiki/Apache_Cassandra

[7] HBase: https://ru.wikipedia.org/wiki/HBase

[8] CouchDB: https://ru.wikipedia.org/wiki/CouchDB

[9] plug-and-play распределённую замену MySQL: http://en.wikipedia.org/wiki/Clustrix

[10] MongoDB: http://www.mongodb.org/

[11] критику: http://en.wikipedia.org/wiki/MongoDB#Criticisms

[12] будет исправлено: https://blog.compose.io/the-coming-of-the-mongodb-document-locks/

[13] ACID транзакции: https://ru.wikipedia.org/wiki/ACID

[14] 11 декабря 2014: https://twitter.com/kellabyte/status/543143800227766272

[15] 11 декабря 2014: https://twitter.com/kellabyte/status/543144267410321408

[16] не ACID совместима: http://docs.mongodb.org/manual/faq/fundamentals/

[17] фактически ACID совместима: http://www.umbrant.com/blog/2011/megastore_review.html

[18] даже лучше: http://www.methodsandtools.com/archive/acidnosqldatabase.php

[19] FoundationDB: https://foundationdb.com

[20] ACID совместимое: https://foundationdb.com/acid-claims

[21] слой: https://foundationdb.com/layers

[22] анонсировали релиз: http://blog.foundationdb.com/databases-at-14.4mhz

[23] толкают двигатель прогресса: http://blogs.the451group.com/information_management/

[24] Источник: http://habrahabr.ru/post/246997/