...

понедельник, 29 декабря 2014 г.

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

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

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




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



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



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

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


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






ACID



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

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


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


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


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






1

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




(От переводчика)

А

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

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


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий