Size: a a a

2020 June 25

AK

Alexey Kuzin in Tarantool
Как вы настраивали компакшен?
источник

AP

Andrey Privalov in Tarantool
Везде было по дефолту. Потом пробовали советы run_count_per_level=1

Aleksandr Lyapunov, [19 Jun 2020, 21:05:42]:
ну и run_size_ratio увеличить до 10
источник

VG

Vladislav Grubov in Tarantool
Есть странная идея (если винил не сможет): взять memtx спейс в который сложить primary ключ из винила и TTL. И экспирировать по этому memtx спейсу. Тогда не будет сканов по вторичному винильному индексу.

Файбер будет набирать по 500 id'шников и удалять одновременно из винильного и memtx спейса
источник

AP

Andrey Privalov in Tarantool
Я вот тут сижу, думаю. до перехода на картридж, когда захотелось все сделать правильнее (с) ) у меня просто expirationd бежал и вроде в итоге чистил как-то. Да, скорее всего не мгновенно все было, но тем не менее как-то в итоге работало)
источник

AP

Andrey Privalov in Tarantool
Vladislav Grubov
Есть странная идея (если винил не сможет): взять memtx спейс в который сложить primary ключ из винила и TTL. И экспирировать по этому memtx спейсу. Тогда не будет сканов по вторичному винильному индексу.

Файбер будет набирать по 500 id'шников и удалять одновременно из винильного и memtx спейса
🤔в принципе это не сложно. надо только чтобы влезли все ID первичного ключа в этот спейс
источник

AK

Alexey Kuzin in Tarantool
К настройкам компакшена относятся  vinyl_write_threads, vinyl_range_size, vinyl_page_size, vinyl_run_count_per_level и vinyl_run_size_ratio.
источник

AP

Andrey Privalov in Tarantool
Alexey Kuzin
К настройкам компакшена относятся  vinyl_write_threads, vinyl_range_size, vinyl_page_size, vinyl_run_count_per_level и vinyl_run_size_ratio.
а, сек. threads не трогали, так как старалисьт кол-во инстансов на машину подбирать исходя из того, чтобы было 2 ядра на инстанс
источник

AP

Andrey Privalov in Tarantool
page_size вот да, у меня стоит большой (200кб) кажется. Я не помню, почему его такой выкрутил,. так как размер тапла у меня явно меньше намного
источник

AK

Alexey Kuzin in Tarantool
Andrey Privalov
Я вот тут сижу, думаю. до перехода на картридж, когда захотелось все сделать правильнее (с) ) у меня просто expirationd бежал и вроде в итоге чистил как-то. Да, скорее всего не мгновенно все было, но тем не менее как-то в итоге работало)
И до этого у вас был вшард?
источник

AP

Andrey Privalov in Tarantool
да
источник

AP

Andrey Privalov in Tarantool
Но не было вроде бы индекса вторичного
источник

AP

Andrey Privalov in Tarantool
Это сейчас я его сделал, чтобы по нему бегать. Ожидал, что это эффективнее будет)
источник

AK

Alexey Kuzin in Tarantool
Andrey Privalov
Это сейчас я его сделал, чтобы по нему бегать. Ожидал, что это эффективнее будет)
хохо, нет, лучше бегать по первичному)
источник

AK

Alexey Kuzin in Tarantool
вторичные индексы в виниле это та ещё чёрная дыра (т.к. это  LSM)
источник

AP

Andrey Privalov in Tarantool
В принципе это несложно проверить. Но придетися бежать тогда по всему спейсу. По вторичному то я бегу каждый раз заново, так как итерация LT мне как раз все записи TTL выстроит как надо
источник

AK

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

AK

Alexey Kuzin in Tarantool
Andrey Privalov
page_size вот да, у меня стоит большой (200кб) кажется. Я не помню, почему его такой выкрутил,. так как размер тапла у меня явно меньше намного
Должен биться с размером дискового кэша.
источник

YS

Yura Sokolov in Tarantool
Кажется я догадываюсь: т.к. это LSM, то что происходит:
- в первый раз пробегаем 1000 таплов и удаляем их.
- это вставляет 1000 "надгорбий" (tombstones)
- второй раз пробегаем 1000 надгробий + 1000 живых таплов. Вставляем ещё 1000 надгробий.
- втретий раз пробегаем 2000 надгробий + 1000 живых таплов...

В общем O(N^2)
источник

AP

Andrey Privalov in Tarantool
Alexey Kuzin
Должен биться с размером дискового кэша.
А где этот размер посмотреть? А то я понял, чтоне очень знаю
источник

YS

Yura Sokolov in Tarantool
Andrey Privalov
А где этот размер посмотреть? А то я понял, чтоне очень знаю
Не важно. TTL в LSM - это O(N^2), если каждый раз с начала бежать
источник