Все, что нужно знать об абстракциях - это то, что они начинают терять товарный вид, как только на них посильнее надавишь, а иногда и этого не надо. Говорят тебе, у нас лучшая база данных, просто сделай db.set(key, value)
, чтобы записать, а потом db.get(key)
, чтобы прочитать. Вроде бы надо радоваться и спокойно пользоваться, но боевые раны уже начинают напоминать о себе, потому что даже в этом случае есть миллион разных вариантов, когда что-то может пойти не так.
- А что там с репликацией?
- А что происходит, при одновременной записи из двух мест?
- Из разных тредов?
- Какого размера может быть ключ?
- А какого размера может быть значение?
- А как делаются бекапы?
- Как решаются конфликты?
- И с авторизацией как?
- Что будет, если процесс умрет где-то в середине?
- Что если машина умрет?
- А если сеть будет лагать, пакеты теряться?
- А что там с консистентностью данных?
- А как понять, что что-то пошло не так?
И так далее. Может кажется, что ничего страшного, но на самом деле трудно измерить, насколько это круто, когда на эти вопросы уже кто-то ответил, а разработчиков MySQL хочется расцеловать, настолько надежная на практике бд получилась, хотя и здесь начинаются вопросы, как только копнуть поглубже. Как там, говорите, лочатся строки? Ой, невинный запрос начал приводить к фулл скану? А с кассандрой недавно исследовали влияние gc пауз в ней на производительность приложения. И это я еще про кубернетес не плакался.