Size: a a a

2021 March 11

AK

Alexey Kuzin in Tarantool
Берите tarantool-java, если вам нужен JDBC. Для всего остального я рекомендовал бы cartridge-java.
источник

AK

Alexey Kuzin in Tarantool
В том числе для работы со Spring
источник

DK

Dmitry Krokhin in Tarantool
Евгений
Если вытащить select ом больше 200k падает через раз
Предполагаю, что это может быть из-за невозможности переиспользовать память которая была алоцирована для результата предыдущего селекта. Мы проходили что-то похожее и нам здорово помогло снижение min_tuple_size до 8 байт чтобы повторно утилизировать память с бОльшим успехом. выше монс рассказывал что происходит внутри https://t.me/tarantoolru/166595
Telegram
Mons Anderson in Tarantool
Ох, как грустненько...

Давайте я опишу как это внутри, а вы попробуете подобрать коэффициенты.

Чтобы сохранить элемент размера X ищется подходящий слаб, назрачение размера которого будет > X

Начинаем со slab_alloc_minimal (он-же memtx_min_tuple_size), по умолчанию равняется 32.
Далее добавляем по 8 байт максимум 31 раз.
(Т.е. в диапазоне 32..280 байт слабы выделяются с шагом 8 байт)
Если X > 280, то алгоритм продолжается: мы берём последний максимальный размер и умножаем его на slab_alloc_factor (по умолчанию 1.05) до тех пор, пока данные не впишутся (ну и ещё там есть выравнивание). пример продолжения: 280*1.05=294, 294*1.05=308, ...

Что можно тюнить:
1. Можно поменять фактор. Например поставить 2. Это сильно уменьшит количество различных классов и повысит переиспользование выделенных слабов.
2. Можно поднять memtx_min_tuple_size. Это поднимет стартовую точку отсчёта.

Для ваших данных я вижу следующую картину:

У вас немного данных, которые меньше 1 kb. Можно сделать memtx_min_tuple_size=776 (1024-31*8)…
источник

AK

Alexey Kuzin in Tarantool
Олег Кузьменко
Хочу понять какое целевое решение будет наиболее оптимальным и стабильным.
cartridge-java содержит много улучшений касательно построения отказоустойчивых решений — автоматические реконнекты, повторы запросов, балансировка запросов по кластеру в соответствии со встроенной или пользовательской стратегией, возможность динамического получения адресов для подключения от внешнего источника.
источник

DS

Dmitry Sharonov in Tarantool
Dmitry Krokhin
Предполагаю, что это может быть из-за невозможности переиспользовать память которая была алоцирована для результата предыдущего селекта. Мы проходили что-то похожее и нам здорово помогло снижение min_tuple_size до 8 байт чтобы повторно утилизировать память с бОльшим успехом. выше монс рассказывал что происходит внутри https://t.me/tarantoolru/166595
Telegram
Mons Anderson in Tarantool
Ох, как грустненько...

Давайте я опишу как это внутри, а вы попробуете подобрать коэффициенты.

Чтобы сохранить элемент размера X ищется подходящий слаб, назрачение размера которого будет > X

Начинаем со slab_alloc_minimal (он-же memtx_min_tuple_size), по умолчанию равняется 32.
Далее добавляем по 8 байт максимум 31 раз.
(Т.е. в диапазоне 32..280 байт слабы выделяются с шагом 8 байт)
Если X > 280, то алгоритм продолжается: мы берём последний максимальный размер и умножаем его на slab_alloc_factor (по умолчанию 1.05) до тех пор, пока данные не впишутся (ну и ещё там есть выравнивание). пример продолжения: 280*1.05=294, 294*1.05=308, ...

Что можно тюнить:
1. Можно поменять фактор. Например поставить 2. Это сильно уменьшит количество различных классов и повысит переиспользование выделенных слабов.
2. Можно поднять memtx_min_tuple_size. Это поднимет стартовую точку отсчёта.

Для ваших данных я вижу следующую картину:

У вас немного данных, которые меньше 1 kb. Можно сделать memtx_min_tuple_size=776 (1024-31*8)…
да ладно? то есть слаб аллокация повлияла на луа-аллокации? выглядит крайне...неожиданно
источник

DK

Dmitry Krokhin in Tarantool
На самом деле я просто предполагаю, что это может быть связано. У нас, например, не так много вставок, в основном селекты и уменьшение размера повлияло на утилизацию памяти просто великолепно.
источник

DS

Dmitry Sharonov in Tarantool
Dmitry Krokhin
На самом деле я просто предполагаю, что это может быть связано. У нас, например, не так много вставок, в основном селекты и уменьшение размера повлияло на утилизацию памяти просто великолепно.
именно луа-памяти? не арены?
источник

ОК

Олег Кузьменко... in Tarantool
Alexey Kuzin
cartridge-java содержит много улучшений касательно построения отказоустойчивых решений — автоматические реконнекты, повторы запросов, балансировка запросов по кластеру в соответствии со встроенной или пользовательской стратегией, возможность динамического получения адресов для подключения от внешнего источника.
а в cartridge-springdata под капотом cartridge-java? или так нельзя говорить
источник

Е

Евгений in Tarantool
Dmitry Krokhin
Предполагаю, что это может быть из-за невозможности переиспользовать память которая была алоцирована для результата предыдущего селекта. Мы проходили что-то похожее и нам здорово помогло снижение min_tuple_size до 8 байт чтобы повторно утилизировать память с бОльшим успехом. выше монс рассказывал что происходит внутри https://t.me/tarantoolru/166595
Telegram
Mons Anderson in Tarantool
Ох, как грустненько...

Давайте я опишу как это внутри, а вы попробуете подобрать коэффициенты.

Чтобы сохранить элемент размера X ищется подходящий слаб, назрачение размера которого будет > X

Начинаем со slab_alloc_minimal (он-же memtx_min_tuple_size), по умолчанию равняется 32.
Далее добавляем по 8 байт максимум 31 раз.
(Т.е. в диапазоне 32..280 байт слабы выделяются с шагом 8 байт)
Если X > 280, то алгоритм продолжается: мы берём последний максимальный размер и умножаем его на slab_alloc_factor (по умолчанию 1.05) до тех пор, пока данные не впишутся (ну и ещё там есть выравнивание). пример продолжения: 280*1.05=294, 294*1.05=308, ...

Что можно тюнить:
1. Можно поменять фактор. Например поставить 2. Это сильно уменьшит количество различных классов и повысит переиспользование выделенных слабов.
2. Можно поднять memtx_min_tuple_size. Это поднимет стартовую точку отсчёта.

Для ваших данных я вижу следующую картину:

У вас немного данных, которые меньше 1 kb. Можно сделать memtx_min_tuple_size=776 (1024-31*8)…
Спасибо
источник

AK

Alexey Kuzin in Tarantool
Олег Кузьменко
а в cartridge-springdata под капотом cartridge-java? или так нельзя говорить
Почему нельзя?) Так и есть, это явно указано в репозитории
источник

DK

Dmitry Krokhin in Tarantool
Dmitry Sharonov
именно луа-памяти? не арены?
у меня сейчас уже не получится собрать данные, но если порассуждать логически, то луа процедура которая делает выборку алоцирует её в луа-памяти. у нас речь не шла о простых iproto-select
источник

DS

Dmitry Sharonov in Tarantool
Dmitry Krokhin
у меня сейчас уже не получится собрать данные, но если порассуждать логически, то луа процедура которая делает выборку алоцирует её в луа-памяти. у нас речь не шла о простых iproto-select
да, но она же это не слабами делает...правда, @inthrax ?
источник

MA

Mons Anderson in Tarantool
Dmitry Sharonov
да, но она же это не слабами делает...правда, @inthrax ?
ну луашка слабами не пользуется. так что то, что изменение фактора аллокации слабов повлияло на луа — это интересный момент. тут лучше спрашивать знатоков luajit
источник

ОК

Олег Кузьменко... in Tarantool
Alexey Kuzin
У нас также есть testcontainers: https://github.com/tarantool/cartridge-java-testcontainers
Может быть вам будет удобнее. Настраивается тоже переменными окружения.
подскажите пожалуйста, на винде можно запустить или только на unix?
источник

AK

Alexey Kuzin in Tarantool
Олег Кузьменко
подскажите пожалуйста, на винде можно запустить или только на unix?
На винде запускайте с мастера, см. https://github.com/tarantool/cartridge-java-testcontainers/issues/10
источник

AK

Alexey Kuzin in Tarantool
Скоро тегнем версию
источник

ОК

Олег Кузьменко... in Tarantool
спасибо )
источник

KY

Kirill Yukhin in Tarantool
Привет! Знаю, что тут есть некоторое число студентов и эта информация будет им интересна: пару дней назад Гугл отобрал менторские организации на Google Summer of Code 2021, и там есть множество интересных проектов, в которых студенты могли бы поучаствовать этим летом.
Уже сейчас можно пройтись по предлагаемым идеям в проектах и начать разговаривать с менторами из участвующих команд. Регистрация студентов откроется 29-го марта.

Наш проект Tarantool в этом году тоже был отобран в GSoC-2021 https://summerofcode.withgoogle.com/organizations/4813527870603264/ и у нас тоже есть множество интересных идей.
источник

d

d9k in Tarantool
ищу удалённую работу с Tarantool
hh.ru/resume/47b697d1ff0201c90e0039ed1f6b3163675677
источник

MA

Mons Anderson in Tarantool
d9k
ищу удалённую работу с Tarantool
hh.ru/resume/47b697d1ff0201c90e0039ed1f6b3163675677
источник