2016-08-16 5 views
1

Я Кассандра, настроенную на Amazon EC2, имеющих 3 узлов (экземпляры) в одном кластере. Теперь то, что я хочу сделать, это дать некоторое пространство на Кассандре моим клиентам, создав отдельный keypace для каждого в одном кластере . Количество клиентов будет увеличиваться с каждым днем, поэтому число исправлений ключей, которые я могу предположить, не может быть создано.Хорошая практика иметь несколько кластеров в Кассандре?

Возникает проблема с производительностью, если я создаю слишком много кластеров в одном кластере?

Если это не хорошая практика, то есть ли какое-либо другое обходное решение для моей потребности? Я не хочу настраивать несколько экземпляров Cassandra.

ответ

0

Это зависит. Зависит от того, сколько клиентов, в конце концов, вы хотели бы иметь (например, мы говорим о сотнях или тысячах?), Сколько таблиц находится в каждом пространстве ключей и как они используются. Больше областей ключей x больше таблиц = больше memtables должно храниться в памяти. Накладные расходы на таблицы также различаются для разных версий cassandra. Если это стандартная «многоуровневая», вы можете подумать о том, чтобы добавить столбец tenant_id в раздел.

Также взгляните на similar posts с вопросом о количестве таблиц.

+0

Будут тысячи клиентов. Я не уверен в количестве таблиц. Какой лучший метод для решения моей проблемы? –

+0

и сколько данных будет храниться на пользователя? что-то очень большое? – mmatloka

+0

Да, это было бы огромно. –

1

Небольшое количество отдельных пространств ключей прекрасно, но использование большого количества областей ключей вызовет проблемы с производительностью. Проблема заключается не столько в пространствах ключей, сколько в том, что большое количество таблиц дублируется в каждом пространстве ключей. Кассандра требует накладных расходов на стол, например, резервирование 1 МБ кучи. Хороший совет не должен превышать нескольких сотен таблиц.

Как будут отображаться тысячи столов в Кассандре? Существуют открытые отчеты об ошибках, указывающие на то, что большое количество таблиц в тысячах может привести к высокому использованию ЦП CASSANDRA-10588 и более длительным периодам запуска CASSANDRA-794.

Ренди Фраден в BlackRock дал отличную презентацию на саммите Cassandra 2015 года по телефону Multi-Tenancy in Cassandra at BlackRock. Как отмечалось выше, обычная рекомендация по многократной аренде заключается в том, чтобы поместить tenant_id в ключ раздела. Затем BlackRock использовал пользовательские модули IAuthenticator и IAuthorizer для обеспечения безопасности арендаторов на уровне раздела.

Для ситуаций, требующих одинаковых таблиц в нескольких пространствах ключей, есть запрос функции, позволяющий использовать таблицы шаблонов CASSANDRA-7662, которые добавили бы немного синтаксического сахара, чтобы облегчить задачу создания подобных таблиц.

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