Size: a a a

Чат конференции HighLoad++

2021 January 03

N

Nikolay in Чат конференции HighLoad++
Может кто посоветует материалы по гео индексам, которые приходится часто обновлять. Например по Яндекс такси нашел видео ,где они говорят ,что используют redis и его гео индексы( но может и неправильно понял ). Есть ещё от них статья на Хабре , но там уже говорится про kd tree. Интересует вот похожий случай ,когда есть условный миллион объектов, которые каждые 10 секунд меняют свои координаты .
источник

YC

Yaroslav Chezganov in Чат конференции HighLoad++
а кроме того что их нужно часто обновлять еще какие-то запросы предполагаются? если нужно просто получать последние координаты по каждому объекту, то redis подойдет и даже без геоиндексов.
источник

N

Nikolay in Чат конференции HighLoad++
Yaroslav Chezganov
а кроме того что их нужно часто обновлять еще какие-то запросы предполагаются? если нужно просто получать последние координаты по каждому объекту, то redis подойдет и даже без геоиндексов.
да, запросы будут ( найти ближайшие N обьектов к координате), но их меньше, чем обновлений. координаты миллиона обьектов будут обновлятся каждыйе 10 секунд.
источник

AZ

Alexander Zaraysky in Чат конференции HighLoad++
Nikolay
Может кто посоветует материалы по гео индексам, которые приходится часто обновлять. Например по Яндекс такси нашел видео ,где они говорят ,что используют redis и его гео индексы( но может и неправильно понял ). Есть ещё от них статья на Хабре , но там уже говорится про kd tree. Интересует вот похожий случай ,когда есть условный миллион объектов, которые каждые 10 секунд меняют свои координаты .
Посмотрите на https://github.com/tarantool/gis
источник
2021 January 11

RD

Rashid Djam in Чат конференции HighLoad++
всем привет, ребята подскажите пожл, как адекватно, по логину можно вычислить номер инстанса, в моем понимании так:
берем логин, преобразуем каждый символ в число(юникод в помощь) , далее делим получившееся число на количество инстансов, остаток от деления собственно и есть то что нужно
источник

RD

Rashid Djam in Чат конференции HighLoad++
при таком подходе получится неравномерное распределение
источник

VM

Vadim Martynov in Чат конференции HighLoad++
GetHashCode(login) ?
Или хочется именно 100% равного распределения? Если так, то давайте поговорим о том, что такое равное :) по количеству - странная метрика. По нагрузке - time-based метрика. Такое равенство, кажется, не очень и нужно.
источник

I

Ilshat in Чат конференции HighLoad++
Оооо ты больную тему задвинул. Есть разные методы хеширования. Ребята вроде на ХЛ 2016 раскидывали все примочки. Я же брал тут  https://github.com/gholt/ring/blob/master/PARTITION_RING_VS_HASH_RING.md
источник

I

Ilshat in Чат конференции HighLoad++
Я брал из статей этого чувака для более менее равномерного метода хеш карты были
источник

I

Ilshat in Чат конференции HighLoad++
И решард при добавлении новой ноды был минимум
источник

I

Ilshat in Чат конференции HighLoad++
Но
источник

I

Ilshat in Чат конференции HighLoad++
Надо хранить карты и все ноды должны иметь доступ к актуальной версии
источник

RD

Rashid Djam in Чат конференции HighLoad++
Vadim Martynov
GetHashCode(login) ?
Или хочется именно 100% равного распределения? Если так, то давайте поговорим о том, что такое равное :) по количеству - странная метрика. По нагрузке - time-based метрика. Такое равенство, кажется, не очень и нужно.
80% процентов уже успех :)
источник

RD

Rashid Djam in Чат конференции HighLoad++
Ilshat
Оооо ты больную тему задвинул. Есть разные методы хеширования. Ребята вроде на ХЛ 2016 раскидывали все примочки. Я же брал тут  https://github.com/gholt/ring/blob/master/PARTITION_RING_VS_HASH_RING.md
о, спасибо!)
источник

I

Ilshat in Чат конференции HighLoad++
Rashid Djam
о, спасибо!)
Не за что. Вот тут тесты 3 типов такого шарда
источник

I

Ilshat in Чат конференции HighLoad++
источник

I

Ilshat in Чат конференции HighLoad++
Добавляем одну ноду и смотрим кол-во перемещений
источник

RD

Rashid Djam in Чат конференции HighLoad++
круто, спасибо) пошел разбирать примерчики)
источник

I

Ilshat in Чат конференции HighLoad++
👍
источник

I

Ilshat in Чат конференции HighLoad++
Vadim Martynov
GetHashCode(login) ?
Или хочется именно 100% равного распределения? Если так, то давайте поговорим о том, что такое равное :) по количеству - странная метрика. По нагрузке - time-based метрика. Такое равенство, кажется, не очень и нужно.
Спасиб по нагрузке очень интересная тема. Но правильно ли я понимаю что активные пользователи всегда будут на горячих машинах и будут постоянно перемещаться внутри нод?
Было бы интересно реализацию такой идеи
источник