- Считаете ли вы NoSQL ересью?
- Считаете ли вы delayed durability ересью?
Я тут поигрался Cassandra на одном ноде. Хотел перейти к многим, но прочитал:
Работаю с Кассандрой полтора года. Сказать, что она сырая - не сказать ничего. Глючит все что только можно, по памяти, на последней версии:
- server crash with NullPointerException, during "nodetool repare"
- host "joining" заняло 15 дней в то время как полнaя перегрузкa данныx ~ 30 часов
- данные загружать можно только когда все хосты UP, иначе на других возникнет переполнениe system.hits table, что по дефолту приводит к уходу в даун тоже - и так весь кластер уйдет в даун.
- да даже SELECT COUNT(*) FROM TABLE; не работает на последней версии правильно (разные результаты), a SELECT * FROM TABLE; работает правильно
- иногда виснет клиентский ява-дрaйвер, приходится иметь механизм для перезапуска программы
- дефолтный режим "nodetool repare" не работает (lost notification events), приходится переходить нa incrementalЭтот только то, что я сразу могу вспомнить, за минуту.
NEVER use Cassandra!
Поучаствую
Пишет st,
Поучаствую в опросе.
NoSQL не является, конечно, никакой "ересью", единственный упрек - неудачное маркетинговое название. Понятие NoSQL объединяет реализации СУБД на основе неполно структурированных моделей данных. Соответственно, обсуждать плюсы и минусы можно лишь сравнивая модели. Фрагмент такого сравнения приведен в книжке. Понятно, что технические моменты, важные для DBA, будут всегда хуже просто из-за недостаточной зрелости реализаций. Это другое сравнение.
Если под delayed durability подразумевается асинхронное подтверждение транзакций, то, опять-таки, этот момент не является религией ACID, а диктуется практическими соображениями. Сам термин "транзакция" появился из финансов, где асинхронный commit неприемлем в принципе. Однако, в других областях, возможно, есть моменты, когда приходится пожертвовать надежностью по целостности ради выигрыша в производительности.
Мои 5 копеек
Пишет SergeyBykov,
NoSQL - это не ересь, а маркентговая чушь. Термин приобрел популярность в среде специалистов слабо владющих предметом. Похоже на волшебное заклинание. Стоит произнести "NoSQL" и можно забыть про теорию БД, а большие массивы данных сами собой начнут эффективно отвечать на запросы.
С точки зрения маркетинга термин не удачный, т.к. содержит отрицание.
Повеселили стоны, что в продукте "NoSQL" не работает SQL. :)
По неполностью структуированной базе получается не полностью детерменированный результат. ИМХО, логично.
Delayed durability для меня это "сфрический конь" в вакууме. Если кто знает реальные сценарии, где это может быть полезно без ущерба для безнес-логики приложения, поделитесь.