на все шарды, и работают независимо от того, каким образом данные распределены по шардам (они могут быть распределены полностью случайно).
Тоесть получается что запросы на сереверах где данных нет в холостую будут отрабатывать и отъедать кусок русурсов?
При добавлении нового шарда, можно не переносить на него старые данные, а записывать новые данные с большим весом - данные будут распределены слегка неравномерно, но запросы будут работать корректно и достаточно эффективно.
А вся схема не "летит" потому что запросы на чтение в любом слкчае попадут ко всем шардам (см предыдушее)?
Просто если это все так и есть это значит что пропускная способность на чтение с ростом кластера особо расти не будет и если у меня на 1 сервере 100QPS, на 4 будет хорошо есть 200QPS а на 30 серверах ни о каких 3000 QPS можно не мечтать?
Верное предположение или я что-то упускаю?
Кейс с отправкой данных на все шарды корректен, т.к. шардить данные можно не средставми кх, а писать в локальную таблицу напрямую и кх об этом не узнает, если только не имплементнет какой то механизм, который будет синхронизировать ключи между шардами и каждая нода будет знать куда отправлять запрос, а куда нет
Обсуждают сегодня