Кассандра - Keyspace уровень Multi Tenancy - PullRequest
0 голосов
/ 17 апреля 2019

Я работаю над мультитенантным приложением, где в настоящее время у нас есть мультитенантность на основе ключей строк, и она хорошо с нами работает.

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

Когда мы проверяли наш выборимея keypace / tenant, мы сталкивались со многими сообщениями, в которых говорится, что это может повлиять на производительность, также мы не нашли никого, кто бы сказал, что мы реализовали мультитенантность на уровне ключей.

Наш кластер будет содержать около 2 тыс.арендаторы.Таким образом, в кластере будет 2 тыс. Пространств ключей, в каждом из которых будет около 10 семейств столбцов.Какие последствия для производительности может иметь этот дизайн?

1 Ответ

1 голос
/ 17 апреля 2019

Наличие 20 000 таблиц может вызвать проблемы во многих областях,

  1. Сжатие будет медленным и часто будет неудачным.
  2. Службы восстановления будут работать в течение очень длительного периода и непредсказуемого времени.
  3. Потребность в памяти будет высокой и может вызвать проблемы с JVM Heap.

Кроме тех, есть некоторые другие проблемы - например, в будущем, если вообще будет требование для схемыизменить это будет очень трудно реализовать в производстве.

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

https://docs.datastax.com/en/dse-planning/doc/planning/planningAntiPatterns.html - это объясняет наличие слишком большого количества таблиц в анти-паттерне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...