Size: a a a

2021 January 25

R

R-omk in Tarantool
Sergey Petrenko
voter  точно нужно учитывать в N, как и candidate.

Там нету при выборах поиска самого максимального вклока.
Выбирается тот, у кого вклок больше чем у кворума (обычно N/2 + 1) других узлов. Не важно, голосующих или кандидатов.
Соответственно, пусть даже воутеров будет N/2 + 1, и каждый из них получит последнюю закоммиченную транзакцию,  а все остальные будут кандидатами, и у них этой транзакции не будет. Ни один кандидат  не сможет стать лидером, потому что воутеры за него не проголосуют, т к они новее, и их большинство. Будут вечные перевыборы пока руками одного из воутеров не сделаешь кандидатом. Тогда он сразу победит.

Короче, если я правильно понял идею, транзакции не теряются
ответ понятен, тоесть автоматически выборы не закончатся,  это хорошо
источник

R

R-omk in Tarantool
Sergey Petrenko
voter  точно нужно учитывать в N, как и candidate.

Там нету при выборах поиска самого максимального вклока.
Выбирается тот, у кого вклок больше чем у кворума (обычно N/2 + 1) других узлов. Не важно, голосующих или кандидатов.
Соответственно, пусть даже воутеров будет N/2 + 1, и каждый из них получит последнюю закоммиченную транзакцию,  а все остальные будут кандидатами, и у них этой транзакции не будет. Ни один кандидат  не сможет стать лидером, потому что воутеры за него не проголосуют, т к они новее, и их большинство. Будут вечные перевыборы пока руками одного из воутеров не сделаешь кандидатом. Тогда он сразу победит.

Короче, если я правильно понял идею, транзакции не теряются
поясни тогда вот этот абзац,   в каком именно случае произойдет rejoin ///  я помню только тот где  должны отрезаться данные которые относятся к асинхронным транзакицям
источник

VS

Vladislav Shpilevoy in Tarantool
Самые новые != закоммиченные, в этом фишка
источник

SP

Sergey Petrenko in Tarantool
R-omk
поясни тогда вот этот абзац,   в каком именно случае произойдет rejoin ///  я помню только тот где  должны отрезаться данные которые относятся к асинхронным транзакицям
Действительно, только из-за асинхронных транзакций нужен будет реджоин. Для синхронных данных новый лидер просто разошлёт всем ROLLBACK и откатит то, что не успел применить старый лидер (это если у него самого этих транзакций не будет. Если будут, то он из закоммитит как только дождётся подтверждения от кворума).
источник

VS

Vladislav Shpilevoy in Tarantool
Там могут быть данные новее, но они не будут закоммичены. Так как не собрали кворум. Если бы собрали, то лидер выбрался бы из одного из них. Значит их отрезание ты не заметишь.
источник

VS

Vladislav Shpilevoy in Tarantool
Я походу вопрос не понял
источник

SP

Sergey Petrenko in Tarantool
Сейчас думаем, что и когда асинхронные транзакции не попали на лидера, но попали на кого-то из фолловеров, можно будет обойтись без реджоина. но это пока не реализовано
источник

R

R-omk in Tarantool
Vladislav Shpilevoy
Самые новые != закоммиченные, в этом фишка
я просто пытаюсь понять нет ли тут противоречия,       вроде все хорошо,   тоесть  если среди большинства есть  хоть один НЕ voter , то будет выбран он, а если нету  то никто не будет выбран...
источник

AE

Alexander Emelin in Tarantool
Гайз, зарелизил библиотеку Centrifuge для Go (v0.15.0) - включает в себя пример интеграции с Tarantool, о которой я не так давно писал тут - https://github.com/centrifugal/centrifuge/tree/master/_examples/custom_engine_tarantool

Из особенностей: PUB/SUB через push и pull, presence, есть пример с Raft Тарантулом (2.6.1+) для HA, client-side шардинг. По производительности очень даже неплохо получилось (5-10x по сравнению с Redis для определенных операций, производительность самого PUB/SUB чуть хуже чем у Редис, но незначительно).

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

MF

Michael Filonenko in Tarantool
Просто дичайший офигеньчик!
источник

AE

Alexander Emelin in Tarantool
Michael Filonenko
Просто дичайший офигеньчик!
❤️ ещё с хайлоада как в вашему стенду подходил хотел сделать и вот добрался
источник
2021 January 26

MF

Michael Filonenko in Tarantool
> PUB/SUB чуть хуже чем у Редис
ага, по идее причина, что в тарантуле, приходится пробрасывать сообщение в нужный файбер с подключением
источник

PL

Pavel Lapaev in Tarantool
https://www.youtube.com/watch?v=8NvE6uooMQY&ab_channel=Tarantool

запись декабрьского вебинара от @vasiliy_tyubek

Kubernetes — это де-факто стандарт для Stateless, однако Stateful-приложения все еще требуют особого внимания и подхода. Комбо Tarantool + Kubernetes дает возможность упростить создание как раз такого решения.

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

Каждый Stateful-сервис (база данных, сервер очередей) — это уникальный опыт, поддержкой таких приложений занимаются отдельные специалисты типа Oracle DBA. Чтобы облегчить эксплуатацию в Kubernetes, у Tarantool есть свой оператор K8s, который делает за вас много задач.

Чтобы вам не приходилось разбираться еще и с настройкой и эксплуатацией самого Kubernetes, мы покажем, как пользоваться Managed-решением от Mail.ru Cloud Solutions, где процесс создания и управления кластером автоматизирован и занимает в среднем 10 минут.

Мы пройдем полный цикл от разработки до эксплуатации:
— Подготовка инструментов
— Создание приложения
— Упаковка в Docker-образ
— Установка в Kubernetes-кластер в Mail.ru Cloud Solutions
— Масштабирование

Видео будет интересен разработчикам, которым нужно быстро запускать свои системы в прод; DevOps'ам, которым нужно эти системы обслуживать; бизнесу, которому нужны быстрые и надежные решения.
YouTube
Вебинар - Деплоим приложение на Tarantool Cartridge в кластер Kubernetes MCS
Kubernetes — это де-факто стандарт для Stateless, однако Stateful-приложения все еще требуют особого внимания и подхода. Комбо Tarantool + Kubernetes дает возможность упростить создание как раз такого решения.

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

https://github.com/tarantool/tarantool-operator

Каждый Stateful-сервис (база данных, сервер очередей) — это уникальный опыт, поддержкой таких приложений занимаются отдельные специалисты типа Oracle DBA. Чтобы облегчить эксплуатацию в Kubernetes, у Tarantool есть свой оператор K8s, который делает за вас много задач.

Чтобы вам не приходилось разбираться еще и с настройкой и эксплуатацией самого Kubernetes, мы покажем, как пользоваться Managed-решением от Mail.ru Cloud Solutions, где процесс создания и управления кластером автоматизирован и занимает в среднем 10 минут.

Мы пройдем полный цикл от разработки до эксплуатации:
— Подготовка инструментов
— Создание…
источник

PP

Piu Piu in Tarantool
крутяк, вышел из чатика на v1 вернулся на v2) как бл машина времени))
источник

MF

Michael Filonenko in Tarantool
будем мониторить ваши посещения чатика, и соответствующим образом выводить тарантул релизы
источник

PP

Piu Piu in Tarantool
хотелось бы)
источник

SP

Sergey Petrenko in Tarantool
Andrey
подскажите, что-то получилось?

я попробовал поставить версию Tarantool 2.3.3-0-g5be85a37f, но ошибка все та же
2021-01-25 19:11:54.719 [4156593] main/102/app I> ready to accept requests
2021-01-25 19:11:54.719 [4156593] main/102/app I> synchronizing with 1 replicas
2021-01-25 19:11:54.737 [4156593] main/110/applier/user@51. I> subscribed
2021-01-25 19:11:54.737 [4156593] main/110/applier/user@51. I> remote vclock {1: 163639755616, 2: 66085717162} local vclock {1: 163637114965, 2: 66085717162}
2021-01-25 19:12:15.787 [4156593] main/111/applierw/user@51 C> leaving orphan mode
2021-01-25 19:12:15.787 [4156593] main/102/app I> replica set sync complete
2021-01-25 19:12:15.788 [4156593] main/102/app C> leaving orphan mode
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'checkpoint_interval' configuration option to 0
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'replication_connect_timeout' configuration option to 60
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'replication_timeout' configuration option to 60
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'memtx_memory' configuration option to 10000000000
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'net_msg_max' configuration option to 4000
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'listen' configuration option to "3311"
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'replication_connect_quorum' configuration option to 1
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'read_only' configuration option to true
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'readahead' configuration option to 32640
2021-01-25 19:12:15.788 [4156593] main/102/app I> set 'replication' configuration option to ["user@master_ip:port"]
2021-01-25 19:12:15.788 [4156593] main C> entering the event loop
2021-01-25 19:12:19.807 [4156593] main/110/applier/user@51. I> can't read row
2021-01-25 19:12:19.807 [4156593] main/110/applier/user@51. xrow.c:1092 E> ER_SYSTEM: timed out
2021-01-25 19:12:19.807 [4156593] main/110/applier/user@51. I> will retry every 60.00 second
Не подскажете, что если подождать 60 секунд, реплика не реконнектится?  Или снова отваливается?
источник

A

Andrey in Tarantool
Sergey Petrenko
Не подскажете, что если подождать 60 секунд, реплика не реконнектится?  Или снова отваливается?
Реконнектится и отваливается
источник

SP

Sergey Petrenko in Tarantool
Понятно
источник

AP

Andrey Privalov in Tarantool
парни, привет)
источник