The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск СУБД Tarantool 2.8

07.09.2021 17:38

Доступна новая версия СУБД Tarantool 2.8, обеспечивающей постоянное хранения данных с отдачей информации из оперативной памяти (in-memory database). СУБД сочетает высокую скорость обработки запросов, характерную для NoSQL-систем (например, Memcached и Redis), c надежностью традиционных СУБД (Oracle, MySQL и PostgreSQL). Tarantool написан на языке C и позволяет создавать хранимые процедуры на языке Lua. Код распространяется под лицензией BSD.

СУБД позволяет эффективно работать с большими объёмами данных под высокими нагрузками. Из особенностей Tarantool отмечается возможность создавать обработчики на языке Lua (встроен LuaJIT), применение формата MessagePack при обмене данными с клиентом, наличие двух встроенных движков (хранение в ОЗУ со сбросом на постоянный накопитель и двухуровневое дисковое хранилище на базе LSM-tree), поддержка вторичных ключей, четыре типа индексов (HASH, TREE, RTREE, BITSET), средства для синхронной и асинхронной репликации в режиме master-master, поддержка аутентификации подключений и контроля доступа, возможность обработки SQL-запросов.

Главные изменения:

  • Стабилизация MVCC (Многоверсионное управление конкурентным доступом) в in-memory движке memtx.
  • Поддержка транзакционности в бинарном протоколе IPROTO. Раньше для транзакции необходимо было написать хранимую процедуру на языке Lua.
  • Поддержка синхронной репликации, которая работает в привязке к отдельным таблицам.
  • Механизм автоматического переключения на запасной узел (failover) на базе протокола RAFT. В Tarantool давно была реализована асинхронная WAL-based репликация, теперь можно не следить за мастер-узлом вручную.
  • Автоматическое переключение мастер-узла также доступно в случае топологии с сегментированием (шардингом) данных (используется библиотека vshard, которая распределяет данные по серверам с помощью виртуальных корзин (bucket)).
  • Улучшение фреймворка для построения кластерных приложений Tarantool Cartridge при работе в виртуальных средах. Tarantool Cartridge теперь лучше держит нагрузку.
  • Ускорена работа Ansible-роли для развертывания кластера до 15-20 раз. Таким образом работа с большими кластерами стала проще.
  • Появился инструмент для упрощённой миграции со старых версий >1.6 и < 1.10, который доступен с помощью дополнительной опции при старте. Раньше миграцию необходимо было делать через разворачивание промежуточной версии 1.10.
  • Проведена оптимизация хранения кортежей небольшого размера.
  • В SQL реализована поддержка UUID и улучшено преобразование типов.

Стоит отметить, что начиная с версии 2.10 будет осуществлён переход на новую политику формирования релизов. При значительных выпусках с нарушением обратной совместимости будет меняться первая цифра версии, при промежуточных - вторая, а при корректирующих - третья (после 2.10 будет выпущен релиз 3.0.0).

  1. Главная ссылка к новости (https://www.tarantool.io/en/do...)
  2. OpenNews: Компания Mail.Ru анонсировала коммерческую поддержку для свободной СУБД Tarantool
  3. Русскоязычное комьюнити Tarantool в Телеграме
  4. OpenNews: MemSQL - претендент за звание одной из самых быстрых СУБД, удовлетворяющих требованиям ACID
  5. OpenNews: Cравнение производительности СУБД Redis, Tarantool, CouchBase и Memcached
  6. OpenNews: Компания Mail.Ru анонсировала коммерческую поддержку для свободной СУБД Tarantool
Автор новости: sergeyb
Тип: Программы
Короткая ссылка: https://opennet.ru/55754-tarantool
Ключевые слова: tarantool, lua, luajit
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:13, 07/09/2021 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –28 +/
     
     
  • 2.3, Аноним (-), 18:21, 07/09/2021 Скрыто модератором
  • +4 +/
     
  • 2.4, Аноним (4), 18:21, 07/09/2021 Скрыто модератором
  • +5 +/
     
  • 2.5, o (?), 18:22, 07/09/2021 Скрыто модератором
  • +3 +/
     
  • 2.6, Аноним (6), 18:28, 07/09/2021 Скрыто модератором
  • +/
     
     
  • 3.8, Аноним (8), 19:01, 07/09/2021 Скрыто модератором
  • +2 +/
     
  • 2.7, trdm (ok), 18:56, 07/09/2021 Скрыто модератором
  • +1 +/
     

     ....ответы скрыты модератором (6)

  • 1.2, B (?), 18:20, 07/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >> стала проще.
    >> лучше держит
    >> теперь можно не следить
    >> давно была
    >> Раньше ... необходимо было

    funny

     
  • 1.9, bOOster (ok), 19:17, 07/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    И чем оно лучше LMDB?
     
     
  • 2.12, YetAnotherOnanym (ok), 20:50, 07/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Можно ли считать этот вопрос корректным, если LMDB - это либа, а тарантул - это полноценный сервер?
     
     
  • 3.21, bOOster (ok), 07:20, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Можно ли считать этот вопрос корректным, если LMDB - это либа, а
    > тарантул - это полноценный сервер?

    Решаемые задачи лежат в одной плоскости, а выбор ЛИБЫ или полноценной СУБД - удел выбора в области применения..
    Дурачек тот кто в embedded систему, с малым количеством памяти пихает СУБД вместо библиотеки.

     
     
  • 4.22, Аноним (22), 09:13, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    "in-memory database" - "в embedded систему, с малым количеством памяти"???
     
     
  • 5.24, bOOster (ok), 10:22, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > "in-memory database" - "в embedded систему, с малым количеством памяти"???

    256-512MB это малое количество памяти? Для Библиотеки вполне, да и inmemory DB вполне, а вот тащить на нее СУБД это глупость.
    И по нашим временам памяти МАЛО.

     
  • 5.26, bOOster (ok), 10:26, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > "in-memory database" - "в embedded систему, с малым количеством памяти"???

    Да и для знатоков хочу напомнить, большинство таких систем вообще с накопителем ReadOnly работают, то есть в памяти. Стоит туда тащить СУБД?

    А вообще я конечно понимал что знатоки, ставящие минусы, на диване с 8 гигами памяти сидят. Но не знал что у них не хватит мозгов подумать о роутерах и т.п.

     
     
  • 6.37, Dnina (ok), 09:56, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не угадал, у меня 16
     
  • 4.33, YetAnotherOnanym (ok), 18:28, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > в embedded систему, с малым количеством памяти

    Хммм... Не знал, что у в хозяйстве старика Винера используются embedded системы с малым количеством памяти.

     
  • 4.36, 4erryKot (?), 09:24, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, т.е., как и говорил предыдущий оратор, области применения не пересекаются, т.е. сравнение в лоб бессмысленно?
     

  • 1.10, Аноним (-), 20:04, 07/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Название сложное, непроизносимое...
     
     
  • 2.11, Эль Анонимус (?), 20:38, 07/09/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Тарантул (шёпотом повторил про себя несколько раз).
     
     
  • 3.23, Michael Shigorin (ok), 09:54, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ударение на втором слоге. :)
     

  • 1.13, Аноним (13), 20:59, 07/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    У них траблы в прошлом серьезно все были - уже все разрешили?
     
  • 1.16, funny.falcon (?), 23:10, 07/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В реальности, один из самых (если не самый) продвинутых open-source in-memory движков, и точно самый продвинутый из написанных не на Java.
     
  • 1.17, Аноним (17), 23:18, 07/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    А в чем соль этого in_memory?
    Можно же ram-disk запилить и туда БД закинуть(и прокакать её при сбое по питанию).
    Типа оно само а так - ручками?
     
     
  • 2.19, funny.falcon (?), 02:51, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Тарантул при сбое питания не прокакивается, а вполне себе потом восстанавливается. А с появлением RAFT репликации ещё и отказоустойчивость появилась.

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

    Ограничение тоже есть: Tarantool не для OLAP. Хорошо работает только с OLTP нагрузкой.

    Дисковый движок в нем, кстати, тоже есть. Кастомный дизайн LSM. Не RocksDB потому, что нужно дружить с однопоточным исполнителем транзакций, а RocksDB хорошо интегрируется только в многопоточных приложения. Ну и, у дизайна есть свои плюсы даже в сравнении с RocksDB. (Из минусов - FaceBook не помогает :-)

    Долгое время дисковый был отдельно от in-memory в том смысле, что их транзакции не знали друг о друге и практически не могли быть смешаны. Но вроде сейчас их объединяют.

     
     
  • 3.20, лютый жабби__ (?), 07:16, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >а RocksDB хорошо интегрируется только в многопоточных приложения

    RocksDB не панацея. как раз закончил мучить арангоДБ... столько пафоса, по факту намного хуже по скорости и монги и нео4ж.

    тарантул чем-то похож, описание пафосное... по факту, чем оно лучше hazelcast? эмбеднутый hazelcast будет в сотни раз быстрее...

     
     
  • 4.27, funny.falcon (?), 10:56, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не могу сравнить с hazelcast. Но зная о нём и об Apache Ignite, я и писал "один из самых продвинутых, и точно самый продвинутый из написанных не на Java".

    Эмбеднутый hazelcast - это по сути тоже самое + встроенный кэш из коробки. Конечно, удобно иметь кэш, о котором не нужно думать, это круто. Но не всегда нужно и правильно.

    Кроме того, не всегда приложение на Java, а с эмбеддингом куда-то ещё придётся помучаться (целую JavaVM, по сути, встраивать).

    Но для pure-Java инфраструктуры наверное Hazelcast/Apache Ignite всё же будут предпочтительнее.

     
     
  • 5.32, isopov (?), 16:21, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Эмбеддинг распределенного кеша внутрь приложения вообще имеет кучу минусов, кроме некоторых плюсов - для раскатки новой версии приложения или просто рестарта тебе надо внимательно следить, чтобы это было достаточно постепенно и новые инстансы успевали втянуть в себя достаточно состояния с соседних нод. Если у тебя выросла нагрузка на какие-то чисто логические части в приложении и тебе надо поднять дополнительных инстансов, то ты автоматически поднимешь еще и встроенных шардов/реплик этого хранилища, которые могут в твоем случае быть лишними и просто простаивать.

    Ну и hazelcast/ignite не то, чтобы панацея - есть и негативные отзывы на них.

     
  • 3.35, Аноним (17), 01:49, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А как он "лёжа в ОЗУ" не прокакивается? ОЗУ же энергозависимая память.
    Люто-бешено сношает диск при каждой транзакции разве что.

    Я верно понимаю что по сути это "мы засунули всю БД в ОЗУ что-бы быстрее читать из неё" и оно скорее для раздачи данных которые не изменяются особо?

     
     
  • 4.39, funny.falcon (?), 21:46, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Легко: данные сохраняются на диск в виде снапшота и логов. Когда процесс стартует, он вычитывает последний снапшот данных и логи начиная синего. При ответе клиенту с диска чтения не происходит.
     
  • 4.40, funny.falcon (?), 21:53, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз-таки Тарантул очень подходит для интенсивного OLTP. Но, конечно, если данные (после шардирования (если таковое возможно)) все-таки влезают в память.

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

    Конечно, всё упирается в возможность шардирования в вашей предметной области. Если порезать на независимые куски не получается, и единый многотредовый/многопроцессный (привет Постгресс) не избежен, то рано или поздно он обгонит однопоточный тарантул.

     
     
  • 5.41, funny.falcon (?), 22:00, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ок, на самом деле есть один хак, который делает сравнение не 100 честным: у тарантула по умолчанию транзакция не дожидается fsync, и fsync делается 10 раз в секунду. Т.е. есть вероятность потерять 100мс последних транзакций.

    Можно повернуть ручку, и дожидаться каждый раз. Тогда каждой транзакции добавится латенси. Но общая производительность тарантула (т.е. пиковый tps) при этом просядет не сильно.

    Доя сравнения:
    - MongoDB делает fsync по умолчанию таким же образом.
    - Redis делает fsync ещё реже.
    - Cassandra, емнип, ещё реже редиса.
    И только true SQL (MySQL, PostgreSQL) по умолчанию всегда дожидаются fsync, прежде чем ответить ok на COMMIT.

     
  • 2.25, prokoudine (ok), 10:25, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > А в чем соль этого in_memory?

    В том, что когда у тебя кэш набирается под 100 гигов, вместо постоянной инвалидации кэша дешевле и проще держать всё в памяти.

     

  • 1.18, Док (?), 02:28, 08/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Классная бд, но писать к ней код гемор)
     
     
  • 2.28, Брат Анон (ok), 11:38, 08/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот поэтому с использованием LSN я выбираю встраиваемую БД goLevelDB (ну, понятно по префиксу, что для го). Вжух штука, индексы, горячий кеш, батчинг, сжатие значений в памяти -- всё как мы любим. И кстати, в новости указан формат MessagePack -- я бы выбрал FlatBuffer. Может не так экономично, зато потери процессорного времени на сериализацию/десеарилезацию -- практически близки к нулю.
     
     
  • 3.38, Аноним (38), 20:31, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Разрабы из Facebook говорят, что leveldb не годится для серверного использования и именно поэтому они создали rocksdb. Только вот биндингов окромя официально поддерживаемого Java там нет.
     
     
  • 4.42, Брат Анон (ok), 23:25, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Разрабы из Facebook говорят, что leveldb не годится для серверного использования и
    > именно поэтому они создали rocksdb. Только вот биндингов окромя официально поддерживаемого
    > Java там нет.

    Сложно мне судить, почему разрабы из книгоморды такое говорят, если учитывать тот маленький факт, что LevelDB специально гугловцами разрабатывался для использования на своих серверах)) Не просто для использования, а для очень энергичного использования. Если ещё вспомнить про тарантул (который тоже LSN) -- у меня сомнения закрадываются...

     

  • 1.29, Аноним (29), 11:44, 08/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Костя свою поделку бросил и из Мейлру ушёл, Мейлру изо всех сил старается это всё монетизировать. И как результат?
     
     
  • 2.34, Аноним (34), 01:06, 09/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Есть конторки с торгующие на рынке BigData с этим тарантулом
    Вполне себе зарабатывают на хлеб с икоркой выше средне рыночной
    в 1.5 - 2 раза зарплатой
     

  • 1.43, lor (?), 02:39, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Название конечно прикольное.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру