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

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

Боже мой! Автор. Ну хоть бы открыл вики перед написанием такой ереси, как: "Но когда появился интернет, мощностей стало немножко не хватать, и как следствие – понадобились новые подходы для хранения данных. Так появились распределенные базы данных, живущие сразу на многих серверах."

База даных это связная и неделимая структура возможная ТОЛЬКО при наличии ФОРМАЛЬНЫХ связей обеспечиваюших целостность и непротиворечивость этих данных. Такое возможно ТОЛЬКО в рамках модели РЕЛЯЦИОННЫХ баз данных обеспечиваюших ЕДИНЫЙ ИНТЕРФЕЙС прикладного уровня. База данных это не набор файлов, а набор правил в соответствии и теорией. Файлы это один из уровней ФИЗИЧЕСКОЙ модели управления БАЗАМИ ДАННЫХ в рамках RDBMS. По этому физическое размещение и структура ни коим образом не относится к самим БАЗАМ данных и ими не является.

Все ваши key/value и тд массивы не являются БАЗАМИ АННЫХ. Они не обеспечивают базовые принципы ACID. Их и интерфейсов доступа к ним - зоопарк. И по этому для поддержки производительности этих "модных" систем каждый раз нужны разные костыли.

Мы сейчас вошли в период, когда на этих костылях написаны (и продолжают тиражироваться) очень чувствительные к надежности отрасли и вот вот должен выполнится второй закон Вейнберга.

Удачи

Простите, но на Википедии, на которую вы ссылаетесь, нет ничего про то, что базы данных могут быть только реляционными. Там вообще написано:

В литературе предлагается множество определений понятия «база данных», отражающих скорее субъективное мнение тех или иных авторов, однако общепризнанная единая формулировка отсутствует.

Почему вы считаете, что целостность и непротиворечивость могут быть обеспечены только в рамках РБД? Что мешает быть целостными и непротиворечивыми, например, документоориентированным... эм... БД?

Почему вы считаете, что KV-хранилища не могут обеспечивать ACID?

Почему вы считаете, что ACID - неотъемлемое свойство БД?

Что вы подразумеваете под интерфейсом доступа? Клиент СУБД, протокол взаимодействия, язык запросов?

Теоретизировать на эту тему смысла нет, у всех практические задачи. У меня такие задачи, мне ехать, а не шашечки. Мб кому-то важно шашечки.

Однакось.

Начинать аргументацию с совершеннейшей подмены терминов и тезисов,
Играть в пинг-понг вопросами, вместо фактических аргументов,
и использовать прочие старые добрые демагогические приемы
это весьма похвально.

Штош. Используем ваши же методы.

Напоминаю, что мой комментарий посвящен распределенным БД (не просто любым БД)

По поводу самого главного. Все остальное вообще не важно.

Расскажите, на основе каких таких данных (эмпирических, теоретических, гностических и т.д.)
вы пришли к выводу, что распределенные БД возникли как
реакция на появление интернета и отсутствие мистических мощностей.
Меня интересует прямо очень сильно.

по поводу вики
я понимаю, что вам лень смотреть, но вот
https://ru.wikipedia.org/wiki/Распределённая_база_данных

Обтатите внимание на раздел "Общие сведения" там освещены все основные моменты.

Единые интерфейсы это DDL и DML. Все RDBMS поддерживают данный стандарт. По этому, что называется
модным словом "из коробки" любая гетерогенная среда относительно легко может быть взаимно интегрирована.
На локальном уровне, диалекты могут отличаться, но общий стандарт остается.
Oracle, MS SQL, MySQL, Posgres, Access (из настольных) - это разные RDBMS, но любой пользовтель
знакомый с SQL сможет манипулировать данными ОДИНАКОВО.

Все перечисленные мной выше RDBMS (Oracle, MS SQL, MySQL, Posgres, Access), как я полагаю для вас олдскул. Так вот. Перечислите
какие из них по вашему не могут быть распределенными.

"Почему вы считаете, что KV-хранилища не могут обеспечивать ACID?"
А почему вы считаете что могут?
Какие, например у redis внутренние:

  • поддерживаемые атомарные типы данных

  • механизмы описания схемы данных

  • механизмы обеспечения целостности (домены типов, составные уникальные ключи, внешние ключи) про остальные страшные штуки (типа механизмов отслеживания роста экстентов и разряженности\плотности записи данных) я даже заикаться не буду.

"Почему вы считаете, что ACID - неотъемлемое свойство БД?"
Наверное потому, что речь о распределенной БД?
Вы же рассуждаете о надежных, отказоустойчивых, непротиворечивых и защищенных БД?
Или речь идет про курсовую на Paradox?

Я совершенно не против новых велосипедов. Новые инструменты это всегда хорошо. Это альтернатива.
Хотя бы для того, чтобы мозги у разработчика начали думать в других направлениях. И не костенели.
Вопрос всегда в адекватности применения.
Нужно хорошо знать текущую мат базу и разумно применять рационализаторские решения. Там, где действительно надо.
Не поддаваться юношеской неискушенности и максимализму (как сейчас в отрасли, т.к. объективно она стала более детской со всеми же
детскими "болячками")

Комментарий напомнил по стилю старый добрый форум sql.ru

"В инторнете опять кто-то неправ"

Полностью поддерживаю любой хейт-спич в отношении аффтара потому как обычно пишут какую-то дичь, но в данном случае аффтар указал что реляционность присутствует и нужна для ньюСКул и для ноСКул ситуация обратная. Согласен что оч смешная и инфантильная позиция аффтара по поводу почему появились такие бд, я то "глупый", думал что потому что нужно было распределить вычисления и удешевить работу информ систем )) Но аффтар не зря работал в Оракле 8 лет! у него другая позиция))

Не совсем понял, почему "олдскул SQL" получил оценку "нет" по критерию "Распределённые"

На рынке куча MPP RDBMS с полноценным ACID и SQL - от опенсорсных (Greenplum, Citus) до проприетарных (Teradata, Exasol, Vertica, Redshift, Snowflake...). Я уж не говорю, что даже обычный PG или Oracle можно вполне себе сделать распределённым без особых ухищрений.

За 8 лет работы в поддержке Oracle я могу сказать что ухищрения для того, чтобы сделать его распределённым, не соответствуют критерию цена/качество.

Вертика и аналогичные аналитические СУБД пригодны скорее для аналитических, а не для транзакционных нагрузок

А, ну я просто не увидел в тексте, что больше транзакционная нагрузка рассматриваются

Тогда Citus можно выделить, он как раз больше под OLTP заточен - его и on-premise можно развернуть из open-source, и Microsoft его в Azure педалирует активно
У Амазона есть Aurora PostgreSQL - облачный распределённый OLTP (в двух вариантах исполнения - на мускуле и PG)

Хотя Аврору иногда к NewSQL относят, но критерии тут вообще очень размытые. В Авроре, по сути, под капотом форки классических БД, оптимизированные под бессерверные вычисления.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий