Size: a a a

2021 April 09

АД

Арефьев Дмитрий... in Tarantool
зачем тогда картридж, круд и тому подобное, просто напишите в доке что все идите в шард
источник

ОБ

Олег Бабин in Tarantool
источник

АД

Арефьев Дмитрий... in Tarantool
А можно пояснить что вы хотели этой картинкой сказать?
источник

ОБ

Олег Бабин in Tarantool
То, что бакеты - это лишь отображение на какое-то физическое хранилище. И получилось так, что данные по 2м разным bucket_id лежат на одном сторадже.
источник

АД

Арефьев Дмитрий... in Tarantool
не, вы видимо кейс не поняли. есть проблемы что иногда круд глючит и ищет/запиывает данные не там где нужно. это описано в issue. для того что бы попробовать исключить эту проблему не прибегая к jit.off я изучил доку и там написано что в opts для всех операций можно указать bucket_id. Я как обычный человек понимаю, что если у меня есть функция которая не глючит и считает бакет правильно, я могу его сам вычислять и сразу круду говорить куда идти, а не полагаться на него.  

Исключительно для проверки гипотезы я и попробовал сделать get и select с заранее не верным bucket. На мой взгляд в этой ситуации как раз таки данные и не должны были найтись, потому что в указанном бакете их нет.

по факту получается что он игнориуется и его роль вообще не понятна😏
источник

DS

Dmitry Sharonov in Tarantool
он не игнорируется, а используется для вычисления шарда на котором искать
источник

DS

Dmitry Sharonov in Tarantool
т е вам должно помочь все равно
источник

GK

Georgy Kirichenko in Tarantool
Бакет в vshard используется для того, чтобы верифицировать шард-получатель запроса
источник

АД

Арефьев Дмитрий... in Tarantool
Ок, а если у меня начинает глючить круд и сохраняет в уникальный индекс два раза данные, только в разные бакеты, как он себя поведет в этой истории?
источник

NK

Nick Karlov in Tarantool
too long wal write от 0,5 до 3 секунд — это оч много. В норме их почти не должно быть. Обычно это не проблема долгой записи на диск, а того, что какой-то fiber на долго захватил тх (или эвентлуп тх долго “проворачивался”).

В наших кейсах прибивание носит спорный характер: в 90-й персентиль улучшается, но 99-й ухудшается, потому что шедуллер может на ядро, где исполняется тарантул, направить какой-нибудь другой процесс, и тарантул будет деградировать.

Если до прибивания процесса к ядрам таких too long wal не было, а после они появились, то есть вероятность, что вы столкнулись с этим эффектом.

В задачах low latency мы не прибивали процессы к ядрам, а выкручивали nice и ограничивали кол-во процессов тарантула на сервере, чтобы они не конкурировали друг с другом и ядром линукса.
источник

АД

Арефьев Дмитрий... in Tarantool
При этом бакеты в разных стораджах
источник

GK

Georgy Kirichenko in Tarantool
Если в сторадж придёт запрос с бакетом, который он не обслуживает, то запрос должен быть отмаршрутизирован заново, а роутер перевычислить маршрут
источник

АД

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

DS

Dmitry Sharonov in Tarantool
пойдет в тот сторадж где лежит бакет который ВЫ указали
источник

DS

Dmitry Sharonov in Tarantool
не, там не про то вопрос
источник

АД

Арефьев Дмитрий... in Tarantool
Так, а теперь начинаем с начала. В самом начале я показал что это не работает.
источник

VS

Vladislav Shpilevoy in Tarantool
Насколько я помню, круд вообще не проверяет, есть ли бакет на сторадже. Он тупо на роутере зовет route, и на сторадже уже ничего не проверяет. Но я не знаю, чинили это или нет
источник

DS

Dmitry Sharonov in Tarantool
нет. он пошел на сторадж, где лежал переданный вами бакет. так совпало, что тупл лежал в другом бакете, но на том же стородже.
источник

GK

Georgy Kirichenko in Tarantool
Поиск идёт не в бакете а в сторадже где бакет находится
источник

DS

Dmitry Sharonov in Tarantool
это неинтуитивно, но это так, да
источник