215 похожих чатов

Tarantool 2.6 — Синхронная репликация, Raft и MVCC! Эти новые возможности

Tarantool уже доступны в версии 2.6. Мы подробно расскажем про каждую тему на следующей неделе на нашем Youtube-канале.

2, 3 и 5 ноября в 18:00 МСК подключайтесь сюда https://www.youtube.com/c/Tarantool, в следующем сообщении прикладываю .ics файлы для календаря.

Читайте подробнее про изменения https://github.com/tarantool/tarantool/releases/tag/2.6.1

---

Транзакционный менеджер в in-memory движке, наконец-то полноценный MVCC!

Многие в курсе, что Tarantool реализует кооперативную многозадачность при помощи примитива файбер, который является одной из реализаций легковесных потоков.

В старых версиях Tarantool, когда файбер с открытой транзакцией передавал управление, транзакция автоматически откатывалась. Теперь транзакция не откатывается, а остается открытой и может быть закончена при следующей передаче управления файберу! Чтобы это работало, мы добавили новый менеджер транзакций.

Чем так полезен новый транзакционный менеджер?

 Основная цель нового транзакционного менеджера — избавиться от давней проблемы "грязных чтений" транзакций, которые впоследствии не удалось записать на диск из-за отказа. Это повышает уровень изоляции до истинного Serializable при любом исходе. Также это позволяет использовать Tarantool в более привычном для баз данных сценарии, растягивая транзакцию во времени и исполняя транзакции параллельно.

Сейчас новый менеджер работает только под опцией. Следующий шаг — включить его по умолчанию. Мы всерьез думаем о добавлении так называемых cross-engine транзакций. Это когда в одной транзакции можно манипулировать данными из двух движков. Например, когда из холодного хранилища (vinyl) нужно перенести данные в горячее хранилище (memtx).

---

Синхронная репликация (c Raft-ом)

Синхронная репликация на протяжении существования Tarantool была одной из самых (если не самой-самой) востребованных возможностей. Все дело в том, что асинхронная репликация не дает 100% гарантий сохранности данных при работе в кластере, когда происходит смена лидера.

5 лет назад началось проектирование и разработка синхрона на базе популярного алгоритма Raft. За эти пять лет буквально каждый пункт плана пошел под откос. В Tarantool за это время сделали SQL, дисковый движок, шардинг, и многое другое. Состав команды успел смениться почти полностью, включая CTO.

В этом году сам метод разработки был пересмотрен с нуля. Мы сосредоточились на синхроне и его рабочем прототипе, который можно было бы сразу использовать и улучшать. Как результат, теперь в Tarantool представлена синхронная репликация с автоматическими выборами лидера на базе Raft.

С синхронной репликацией хранение данных в кластере получает новый уровень гарантий сохранности. В прошлом отказа одного узла было уже достаточно, чтобы получить риск потери. С синхронной репликацией данные гарантированно выживут, пока больше половины кластера функционирует.

Также пользователям больше не требуется заниматься конфигурацией лидера кластера вручную — надо только следить, кого Tarantool выбирает сам.

На этом путь синхронной репликации еще не окончен. В следующих релизах будут проводиться работы по различным оптимизациям, создание специальных вспомогательных узлов для выборов лидера, и следующая большая разработка — синхронная мастер-мастер репликация без выделенного лидера.

---

А что еще?

- Добавили поддержку tarantool-1.10+ в модуль миграции данных из tarantool-1.5 (migrate). Теперь можно мигрировать на свежие версии Tarantool со старых.
- В queue исправили проблему с автовозвратом задач на старте, добавили возможность запускать очередь на read-only узлах, прояснили сообщения об ошибках.
- Исправили много проблем в коннекторах и модулях.
- Наконец-то добавили форматированный вывод в селектах!

https://github.com/tarantool/tarantool/releases/tag/2.6.1

10 ответов

25 просмотров

А сколько матрас выдержит?... До того как "пружины не начнут вылазить"

сколько версий пока он треснет?

Ну скажем при каком характере нагрузки, похоже ли это на другие базы с mvcc , Он же в первую очередь как крутая снапшотилка задумывался чего небыло у редиски

ну вот да, интересно, при сколких не закрытых транзакциях будет деградация

Так не факт же что количество открытых влияет... вопрос же о чём, что именно влияет, количество открытых или количество прочитанных туплов, или какая нибудь другая формула

А запись будет?

Pavel-Lapaev Автор вопроса

Да

Pavel-Lapaev Автор вопроса

Запись вчерашнего эфира про менеджер транзакций https://www.youtube.com/watch?v=BiF7L2id-TU --- Сегодня в 18:00 МСК говорим про Raft https://youtu.be/xeiMt_guKUY

Привет! Напоминаю, что через час расскажем про RAFT в Тарантуле.

Привет! Через полчаса начинаем рассказ про синхронную репликацию в Тарантуле!

Похожие вопросы

Обсуждают сегодня

#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
У меня вопрос попроще, почти нубский: нужно заставить сайт эво 1.4.34 перевести с PHP 7.4 на 8.2. Понятное дело, что дополнения обновить-проверить, а с основной системой как ...
Вячеслав Кузьменко
5
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
Карта сайта