LINUX.ORG.RU

Tarantool 2.8

 , , ,

Tarantool 2.8

1

1

Вышла новая версия персистентной in-memory NoSQL СУБД Tarantool. Проект написан на языке C и позволяет программировать хранимые процедуры на Lua (движок LuaJIT).

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

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

Стоит отметить, что с версии 2.10 будет осуществлен переход на новую политику релизов.

>>> Русскоязычное сообщество в Telegram

>>> Подробности



Проверено: hobbit ()
Последнее исправление: sudopacman (всего исправлений: 5)
Ответ на: комментарий от aist1

Может второкуру начать с кнута? Хотя бы база - вектор, ordered map (сюда же наверное деревья и списки), unordered…

Ну и алгоритмы - поиск, бинарный поиск, сортировка.

То, что бд или «бд» дальше делают - уже просто оптимизация под случаи, когда не все в память влезает.

Ну и если в sql идти, там про orm чутка почитать… Или если их по назначению использовать, то про нормальные формы.

anonymous
()
Ответ на: комментарий от aist1

Начинать лучше всего с LMDB. Несмотря на, как я сказал, отвратительный код

Я его код открыл, заплакал и закрыл. Какая-то портянка С и макросов. Но у меня не было мотивации вникать.

anonymous
()
Ответ на: комментарий от anonymous

Может второкуру начать с кнута?

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

anonymous
()
Ответ на: комментарий от anonymous

Персистентные структуры данных — лишь чуть сложнее обычных деревьев. А Кнут — это совсем не для «второкуров». Ну, точнее, начинать с Кнута второкурам можно, но смысла особого нет. Потому что это справочник для работающих инженеров, а не учебник.

Второкурам нужно учиться программировать и прокачивать умение читать чужой код, от которого плакать хочется. Это то, что они потом, в основном, и будут делать.

aist1 ★★★
()
Ответ на: комментарий от aist1

Кнут был условно. Я его не читал сам, но смысл в том, что раз почитать базу, потом уже усложнять.

Проблема «почитать код» в том, что очень тяжело видеть паттерны (по крайней мере начинающему, ИМХО). То есть ты с 15-ю годами опыта в коде можешь отличить - это для cow, это реализация B*-tree, а тут кеш, фильтр, а тут вот мы просто оптимизируем какое-то вычисление, и т.д.

Когда только начинаешь… Не знаю. Может старый стал и ленивый. После второго курса было интересно модуль для ядра поковырять. По коду разбирался. Но не могу сказать, что досконально понял, что для чего.

Сейчас гораздо интереснее начинать с публикаций (вроде той, которую ты привел). Хотя бы понятно, где теория, а где - детали реализации, или почему именно так сделано.

Но вот поэтому я бы сказал, что английский намного важнее, чем те же структуры данных. Если «ВУЗ хороший», то английским должны грузить не хуже матана (по крайней мере на физтехе так было).

Конечно, это из области фантастики, но я бы советовал почитывать тот же матан на английском. Хотя бы чтобы термины знать. Мне было очень неловко на собеседовании, когда спросили, а ответить не получилось просто потому что не знал, как это на английком (понятно, что дословный перевод совсем мимо).

anonymous
()
Ответ на: комментарий от aist1

Автор там немного политизирован

Это где «Please don’t use my work, if you are associated with Adolf Hitler, Stepan Bandera, George Soros, Michael Hodorkovsky, either support an actions of these felons.» ? 🤭

Но зато комментарии на русском. В файле на 22 тысячи строк 😒 Именно его я и пытался почитать.

А что про tkrzw (бывший kyoto cabinet) скажешь? Или почему меморию не рекомендуешь? 😉

anonymous
()
Ответ на: комментарий от anonymous

Это где «Please don’t use my work,...

Ага. Вообще, подобные заявления делают его работу эффективно неюзабельной для всех. Потому что с легальной точки зрения непонятно, что такое «associated with». Если я, например, в дальнем родстве с ними состою, это ассоциация или нет? Или Фонд Сороса когда-то финансировал институт, в котором я работал и я был в этой программе...

Но почитать сам код можно, автор именно этого не запрещает :) Он запрещает use.

А что про tkrzw (бывший kyoto cabinet) скажешь

Можно, годно. Но это классические структуры. Этакий «Кнут». Чтобы более-менее ориентироваться в современном уровне, нужны еще CoW и LSM-tree.

Или почему меморию не рекомендуешь? 😉

А Мемория еще не готова для того, чтобы её рекомендовать как учебное пособие. Там нет документации и код из мастера даже не скомпилируется из-за проблем системы сборки (нужно волшебное слово сказать).

Но таки да, я рассчитываю, что SWMRStore, который, как и LMDB, тоже CoW-btree, станет потом в том числе и учебным пособием по разработке этого класса хранилищ (баз данных и файловых систем). Однако, это всё не раньше, чем в следующем году.

Предупреждая вопросы, Меморию не стоит сравнивать с Тарантулом. Мемория ориентирована на аналитику, и поэтому там CoW-btree, который дает возможность куче потоков иметь wait-free доступ к мгновенным снимкам разделяемых данных. А Тарантул — это OLTP, для которого важен TPS.

aist1 ★★★
()
Ответ на: комментарий от anonymous

Как человек, напичканный не только всяким «матаном», но еще и смежными гуманитарными дисциплинами, я могу сказать что это всё работает не так, как ожидается.

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

И тут стоит сделать выбор сразу. Если ты хочешь быть инженером-программистом, то надо идти от конструирования артефактов и прокачивать навыки переиспользования чужого труда. Т.е. нужно идти от кода и рисерчить ту матчасть, которая нужна для понимания этого конкретного кода, с которым ты работаешь, а не «всё подряд».

«Всё подряд» нужно рисерчить только если хочешь успешно пройди интервью в Гугл (там правила такие) или в любую пальцастую российскую контору. Где на интервью смотрят, достоин ли ты с ними работать, а не способен ли ты успешно решать поставленные задачи.

Самое плохое то, что, если прокачать матчасть, то перестанут брать на работу по причине «overqualified». Матчасть — это бесполезный груз, который делает работника неудовлетворенным и депрессивным от созерцания того, как всё в принципе плохо там, где он работает. Он и сам работать не будет, и другим не даст. История с главным разработчиком Тарантула должна намекать...

Ну, и последнее. Инженер решает вопросы эффективной реализации алгоритмов и структур данных, придуманных рисерчерами. И это, как оказывается, целая отдельная вселенная. Например, как продраться сквозь абстракции линуксового IO-стека, чтобы эффективно закоммитить изменения. Спойлер — никак. И таких «никак» вокруг будет полным-полно. А начальство требует результата.

aist1 ★★★
()
Ответ на: комментарий от rsync

что за история?

https://www.cnews.ru/news/top/2019-09-09_iz_mailru_ushel_sozdatel_samogo

Подробностей не знаю. Но со стороны выглядит так, что российские менеджеры без понимания специфики области начали руководить процессом так, как они привыкли. А для них для всех мы — взаимозаменяемые винтики. В БД и ФС не так, как в том же вебе или любых других stateless приложениях. Там есть mission critical ядро, которое должно разрабатываться по принципам do the right thing, где во главу угла ставится корректность кода и безопасность данных. Вплоть до диктатуры. А вот всякую продуктовую обвязку можно уже делать по принципу worse is better. И уж точно не наоборот.

aist1 ★★★
()
Ответ на: комментарий от aist1

Для БД-строения нужна особая инженерная школа. И если тебе эту школу создать не дают, то лучше и не пытаться там что-то такое делать. True story.

aist1 ★★★
()
Ответ на: комментарий от aist1

Ну руководители периодически меняются. Вот совсем недавно снова сменился.

Но самому Тарантулу это не вредит.

rsync ★★
()
Ответ на: комментарий от rsync

Но самому Тарантулу это не вредит.

А по каким критериям ты судишь?

aist1 ★★★
()
Ответ на: комментарий от aist1

Mail.ru подчеркивает, что у Tarantool все хорошо — уже без Осипова вышло три больших релиза.

То есть фактически подтвердили его претензии🤭

anonymous
()
Ответ на: комментарий от anonymous

Я не знаю команды Тарантула, кто там остался и что у них в голове. И сколько в Тарантуле реально от Осипова, а сколько — от тех, кто остался. Но, зная как оно в жизни работает, я всё же считаю, что уход Осипова — это большая потеря для проекта. Могли бы и послушаться человека (если, конечно, в этом дело было).

aist1 ★★★
()

Тарантул интересный, но деплоить и обновлять эти хранимки очень больно, особенно если приложение в контейнерах. Ещё сообщество довольно токсичное, на моё замечание что тарантульный клиент очень сложно встраивать в шелскрипты из-за формата вывода только для людей, меня там чуть ли не послали. Ну и луа не самый удобный для промышленной разработки язык, бедноватый набор примитивов.

neumond
()
Ответ на: комментарий от neumond

Но и запутаться в Lua труднее и шустрый он весьма и весьма. Мне наоборот зашло, я на нем в в школе еще скрипты в игрушках ковырял - удобный язык.

anonymous
()
Ответ на: комментарий от aist1

Российский программист традиционно «смотрит на Запад». А «на Западе», чтобы что-то в этой нише продвигать, нужны большие рекламные бюджеты. Вот когда Tarantool будет мне мелькать в рекламе так же, как мелькает Neo4J, вот тогда её популярность начнет резко расти.

Кажется у Clickhouse получилось иначе

autonomous ★★★★★
()
Ответ на: комментарий от autonomous

Clickhouse — аналитическая БД. В этой нише нет еще насыщения, а, поэтому, есть активный интерес к новинкам.

aist1 ★★★
()
Ответ на: комментарий от Vit

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

wrkngu0
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.