2017-02-16 3 views
1

Я построил клон Twitter, и строка, в которой хранится профиль Джастина Бибера (очень известный человек с множеством последователей), читается невероятно часто. Сервер, который его хранит, кажется, перегружен. Могу ли я купить более крупный сервер только для этой строки? Кстати, он не обновляется очень часто.Однострочный хот-спот

ответ

1

Короткий ответ заключается в том, что Cloud Spanner не предлагает различные конфигурации серверов, за исключением увеличения количества узлов.

Если вы не против чтения устаревших данных, одним из способов увеличить пропускную способность чтения является использование транзакций только для чтения, bounded-staleness. Это гарантирует, что ваши чтения для этих строк могут быть отправлены из любой реплики разделенных (s), которые принадлежат этим строкам.

Если вы хотите пойти еще дальше, вы можете рассмотреть компромисс моделирования данных, который делает записи более дорогими, но читает дешевле. Один из способов сделать это - вручную очертить эту строку (например, создав N копий ее с разными первичными ключами). Когда вы хотите прочитать строку, клиент может выбрать один для чтения наугад. Когда вы обновляете его, просто обновляйте все экземпляры атомарно в рамках одной транзакции. Обратите внимание, что этот подход редко используется на практике, так как очень немногие рабочие нагрузки действительно имеют характеристики, которые вы описываете.

+0

IIUC Twitter на самом деле пишет каждому каналу вашего подписчика, когда вы делаете сообщение. Тогда строки с горячими точками будут людьми, которые будут следить за множеством людей, которые отправляют сообщения в одно и то же время, поскольку все эти обновления будут входить в моду. Гораздо менее распространенный или вероятный, чем поклонник Бибера. – Robert

Смежные вопросы