Доступна новая версия СУБД Tarantool 2.8, обеспечивающей постоянное хранения данных с отдачей информации из оперативной памяти (in-memory database). СУБД сочетает высокую скорость обработки запросов, характерную для NoSQL-систем (например, Memcached и Redis), c надежностью традиционных СУБД (Oracle, MySQL и PostgreSQL). Tarantool написан на языке C и позволяет создавать хранимые процедуры на языке Lua. Код распространяется под лицензией BSD...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=55754
> написан на языке CКонец 2021-го года.
Жалкая попытка осмеять и опорочить божественную сишку. Попытайся ещё.
В Rust долбишься?
Толсто
Покажи, что ты написал в конце 2021-го года. Хоть на бейсике.
10 PRINT CHR$(205.5+RND(1));: GOTO 10
> Конец 2021-го года.ага. надо срочно переписать на javascript...
совсем шизанулись со своими смузи-языками..
>> стала проще.
>> лучше держит
>> теперь можно не следить
>> давно была
>> Раньше ... необходимо былоfunny
И чем оно лучше LMDB?
Можно ли считать этот вопрос корректным, если LMDB - это либа, а тарантул - это полноценный сервер?
> Можно ли считать этот вопрос корректным, если LMDB - это либа, а
> тарантул - это полноценный сервер?Решаемые задачи лежат в одной плоскости, а выбор ЛИБЫ или полноценной СУБД - удел выбора в области применения..
Дурачек тот кто в embedded систему, с малым количеством памяти пихает СУБД вместо библиотеки.
"in-memory database" - "в embedded систему, с малым количеством памяти"???
> "in-memory database" - "в embedded систему, с малым количеством памяти"???256-512MB это малое количество памяти? Для Библиотеки вполне, да и inmemory DB вполне, а вот тащить на нее СУБД это глупость.
И по нашим временам памяти МАЛО.
> "in-memory database" - "в embedded систему, с малым количеством памяти"???Да и для знатоков хочу напомнить, большинство таких систем вообще с накопителем ReadOnly работают, то есть в памяти. Стоит туда тащить СУБД?
А вообще я конечно понимал что знатоки, ставящие минусы, на диване с 8 гигами памяти сидят. Но не знал что у них не хватит мозгов подумать о роутерах и т.п.
Не угадал, у меня 16
> в embedded систему, с малым количеством памятиХммм... Не знал, что у в хозяйстве старика Винера используются embedded системы с малым количеством памяти.
Ну, т.е., как и говорил предыдущий оратор, области применения не пересекаются, т.е. сравнение в лоб бессмысленно?
Название сложное, непроизносимое...
Тарантул (шёпотом повторил про себя несколько раз).
Ударение на втором слоге. :)
У них траблы в прошлом серьезно все были - уже все разрешили?
В реальности, один из самых (если не самый) продвинутых open-source in-memory движков, и точно самый продвинутый из написанных не на Java.
А в чем соль этого in_memory?
Можно же ram-disk запилить и туда БД закинуть(и прокакать её при сбое по питанию).
Типа оно само а так - ручками?
Тарантул при сбое питания не прокакивается, а вполне себе потом восстанавливается. А с появлением RAFT репликации ещё и отказоустойчивость появилась.Более эффективно используются ресурсы, т.к. движок по большей части однопоточный. Да, пиковая производительность одного процесса ограничена (в случае Тарантула, обычно сотнями тысяч коротких транзакций). Но если пошардировать, можно на одном сервере запустить несколько инстансев.
Ограничение тоже есть: Tarantool не для OLAP. Хорошо работает только с OLTP нагрузкой.
Дисковый движок в нем, кстати, тоже есть. Кастомный дизайн LSM. Не RocksDB потому, что нужно дружить с однопоточным исполнителем транзакций, а RocksDB хорошо интегрируется только в многопоточных приложения. Ну и, у дизайна есть свои плюсы даже в сравнении с RocksDB. (Из минусов - FaceBook не помогает :-)
Долгое время дисковый был отдельно от in-memory в том смысле, что их транзакции не знали друг о друге и практически не могли быть смешаны. Но вроде сейчас их объединяют.
>а RocksDB хорошо интегрируется только в многопоточных приложенияRocksDB не панацея. как раз закончил мучить арангоДБ... столько пафоса, по факту намного хуже по скорости и монги и нео4ж.
тарантул чем-то похож, описание пафосное... по факту, чем оно лучше hazelcast? эмбеднутый hazelcast будет в сотни раз быстрее...
Не могу сравнить с hazelcast. Но зная о нём и об Apache Ignite, я и писал "один из самых продвинутых, и точно самый продвинутый из написанных не на Java".Эмбеднутый hazelcast - это по сути тоже самое + встроенный кэш из коробки. Конечно, удобно иметь кэш, о котором не нужно думать, это круто. Но не всегда нужно и правильно.
Кроме того, не всегда приложение на Java, а с эмбеддингом куда-то ещё придётся помучаться (целую JavaVM, по сути, встраивать).
Но для pure-Java инфраструктуры наверное Hazelcast/Apache Ignite всё же будут предпочтительнее.
Эмбеддинг распределенного кеша внутрь приложения вообще имеет кучу минусов, кроме некоторых плюсов - для раскатки новой версии приложения или просто рестарта тебе надо внимательно следить, чтобы это было достаточно постепенно и новые инстансы успевали втянуть в себя достаточно состояния с соседних нод. Если у тебя выросла нагрузка на какие-то чисто логические части в приложении и тебе надо поднять дополнительных инстансов, то ты автоматически поднимешь еще и встроенных шардов/реплик этого хранилища, которые могут в твоем случае быть лишними и просто простаивать.Ну и hazelcast/ignite не то, чтобы панацея - есть и негативные отзывы на них.
А как он "лёжа в ОЗУ" не прокакивается? ОЗУ же энергозависимая память.
Люто-бешено сношает диск при каждой транзакции разве что.Я верно понимаю что по сути это "мы засунули всю БД в ОЗУ что-бы быстрее читать из неё" и оно скорее для раздачи данных которые не изменяются особо?
Легко: данные сохраняются на диск в виде снапшота и логов. Когда процесс стартует, он вычитывает последний снапшот данных и логи начиная синего. При ответе клиенту с диска чтения не происходит.
Как раз-таки Тарантул очень подходит для интенсивного OLTP. Но, конечно, если данные (после шардирования (если таковое возможно)) все-таки влезают в память.На удивление, однопоточный сервер настолько эффективнее на ядро, что один процесс (тарантула) может выдержать нагрузку, которую обычно на восемь ядер шлют. И я имею в виду именно короткие транзакции с записью, а не только чтение.
Конечно, всё упирается в возможность шардирования в вашей предметной области. Если порезать на независимые куски не получается, и единый многотредовый/многопроцессный (привет Постгресс) не избежен, то рано или поздно он обгонит однопоточный тарантул.
Ну ок, на самом деле есть один хак, который делает сравнение не 100 честным: у тарантула по умолчанию транзакция не дожидается fsync, и fsync делается 10 раз в секунду. Т.е. есть вероятность потерять 100мс последних транзакций.Можно повернуть ручку, и дожидаться каждый раз. Тогда каждой транзакции добавится латенси. Но общая производительность тарантула (т.е. пиковый tps) при этом просядет не сильно.
Доя сравнения:
- MongoDB делает fsync по умолчанию таким же образом.
- Redis делает fsync ещё реже.
- Cassandra, емнип, ещё реже редиса.
И только true SQL (MySQL, PostgreSQL) по умолчанию всегда дожидаются fsync, прежде чем ответить ok на COMMIT.
> А в чем соль этого in_memory?В том, что когда у тебя кэш набирается под 100 гигов, вместо постоянной инвалидации кэша дешевле и проще держать всё в памяти.
Классная бд, но писать к ней код гемор)
Вот поэтому с использованием LSN я выбираю встраиваемую БД goLevelDB (ну, понятно по префиксу, что для го). Вжух штука, индексы, горячий кеш, батчинг, сжатие значений в памяти -- всё как мы любим. И кстати, в новости указан формат MessagePack -- я бы выбрал FlatBuffer. Может не так экономично, зато потери процессорного времени на сериализацию/десеарилезацию -- практически близки к нулю.
Разрабы из Facebook говорят, что leveldb не годится для серверного использования и именно поэтому они создали rocksdb. Только вот биндингов окромя официально поддерживаемого Java там нет.
> Разрабы из Facebook говорят, что leveldb не годится для серверного использования и
> именно поэтому они создали rocksdb. Только вот биндингов окромя официально поддерживаемого
> Java там нет.Сложно мне судить, почему разрабы из книгоморды такое говорят, если учитывать тот маленький факт, что LevelDB специально гугловцами разрабатывался для использования на своих серверах)) Не просто для использования, а для очень энергичного использования. Если ещё вспомнить про тарантул (который тоже LSN) -- у меня сомнения закрадываются...
Костя свою поделку бросил и из Мейлру ушёл, Мейлру изо всех сил старается это всё монетизировать. И как результат?
Есть конторки с торгующие на рынке BigData с этим тарантулом
Вполне себе зарабатывают на хлеб с икоркой выше средне рыночной
в 1.5 - 2 раза зарплатой
А чего не в 5 раз? Врать так уже врать.
Название конечно прикольное.