Стоит ли иметь большое количество осколков в Spanner? - PullRequest
0 голосов
/ 11 декабря 2018

Рекомендации по использованию Spanner настоятельно рекомендуют избегать использования метки времени или другого последовательного идентификатора в качестве первой части ключа, так как это создаст горячие точки.Один из предлагаемых обходных путей, когда требуется упорядочение по времени, заключается в добавлении префикса к числовому фрагменту на основе отдельного ключа, чтобы получить равномерное распределение (как в эта страница ).

Насколько я понимаю, Spanner автоматически создает разбиения на основе ключа (например, в данном случае, шарда), и при выполнении запроса, который получает все строки после определенной временной отметки, может потребоваться выполнить запрос на всех отдельныхразделяется и затем присоединяется.

Наконец, вопрос: Есть ли стоимость, пропорциональная количеству уникальных шардов, так что, если я использую 1024 шарда, стоимость запроса таблицы может быть выше, чемесли используется 16 осколков, или он разделен на части, и Spanner будет разбивать ключи на части только при необходимости?

В качестве крайнего примера, будет ли стоить фактическое использование индивидуального идентификатора записи в качестве первогочасть ключа, а не осколок (кроме факта, что один является числом, а один является строкой)?Это создаст еще много «осколков», но, опять же, влияние будет зависеть от того, являются ли соответствующие вещи здесь уникальными осколками (префиксами ключей) или разделениями.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

В разделе Схема проектирования обсуждается использование логических фрагментов, чтобы избежать горячих точек.В теме говорится: «Обратите внимание, что разбиения могут не совпадать с логическими осколками».

Cloud Spanner создает разбиения по мере необходимости в виде разбиений.В разделе «Схема и модель данных» есть дополнительная информация в разделе Разделение базы данных .

0 голосов
/ 11 декабря 2018

Стоимость не пропорциональна количеству уникальных осколков.Причина использования шардинга заключается в равномерном распределении трафика между разделениями, поэтому рекомендуется использовать любое количество шардов, чтобы получить это равномерное распределение.

Что вы подразумеваете под идентификатором записи?Если он уникален и равномерно распределен, его можно использовать в качестве первичного ключа.

...