- PVSM.RU - https://www.pvsm.ru -
Оригинал статьи [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]"), то настоящие инженеры баз данных не воспримут её серьёзно.
You may not need ACID guarantees but if a storage engine can't provide AD it's basically not a storage engine worthy of your time or data.
— Kelly Sommers (@kellabyte) 11 декабря 2014 [14]
Yet we keep benchmarking storage engines that shit themselves and corrupt their own data with ones who don't. Why even benchmark brokenness.
— Kelly Sommers (@kellabyte) 11 декабря 2014 [15]
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]. Вы себе этого не представляете, но они делают нам огромную услугу.
Это первая статья из приближающего цикла статей про 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/
Нажмите здесь для печати.