TLDR: масштабируется до тех пор, пока ключи сущностей разбросаны.
DR:
Сначала рассмотрим записываемые записи индекса.
У нас есть что-то вроде:
SomeKind\E1 -> FullEntityKey1
SomeKind\E2 -> FullEntityKey2
SomeKind\E2 -> FullEntityKey3
SomeKind\E3 -> FullEntityKey4
Мы отмечаем, что каждый отдельный индексный указатель указывает на некоторую сущность.
Что касается разделения нагрузки, то значение сегментируемого значения выглядит следующим образом:
SomeKind\E1\FullEntityKey1
SomeKind\E2\FullEntityKey2
SomeKind\E2\FullEntityKey3
SomeKind\E3\FullEntityKey4
Теперь давайте представим, что мы использовали случайно назначенные идентификаторы для ключей объекта (диапазон [0,2], чтобы быть простым) - мы предполагаем равномерное распределение записей по случайным идентификаторам сущностей.
SomeKind\E1\0\RestOfKey1
SomeKind\E2\0\RestOfKey2
SomeKind\E2\1\RestOfKey3
SomeKind\E3\2\RestOfKey4
И затем мы можем заметить, что существуют четкие точки разделения для нагрузки, которую нужно разделить - то естькаждый из [0,2] возможных случайных идентификаторов является осколком, и система может масштабироваться до бесконечности, пока записи равномерно распределяются по всем значениям в записанном SomeKind (увеличьте случайный идентификатор для большего количества точек разделения / масштабирования)
Таким образом, масштабирование / «горячая точка» перечисляемого значения индекса тесно связано с индексируемыми ключами сущности, которые обычно создаются способами, которые можно использовать, что означает, что соответствующие записи индекса также являются.
Это не означает, что невозможно создавать ситуации, в которых горячие точки могут возникать (например, если ключи сущностей имеют монотонно увеличивающееся значение (например, метка времени)), илинацелив небольшой раздел ключей на очень высокую скорость записи - но это не должно происходить по умолчанию с типичными шаблонами трафика и ключами сущностей.