Нова нова річ (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"), то справжні інженери баз даних не сприймуть її серйозно.

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

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


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. Тримайте руку на пульсі.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.