Работа с внешней базой данных cassandra
Внедрение высокопроизводительного внешнего экземпляра cassandra
config/cassandra.yaml
- Измените каталог данных и каталог журнала регистрации (предпочтительно на разных устройствах).
- Укажите IP-адрес сервера Cassandra в seeds, listen_address и rpc_address.
- Установите start_rpc на true.
JAVA_HOME
в корневую папку JRE/JDK.CASSANDRA_HOME
в папку инсталляции Cassandra.bin/cassandra
- Измените настройки Xms и Xmx на самое высокое значение, оставив 2-4 Гб памяти для операционной системы.
bin/cassandra
и убедитесь, что Cassandra начинает слушать входящие соединения.Оптимизация производительности cassandra для загрузки с высокой интенсивностью записи
Загрузка с высокой интенсивностью записи - это множество операций вставки. Чем быстрее вы вставляете данные, тем быстрее вам нужно сжать их таким образом, чтобы обеспечить устойчивый отсчет. Поэтому вам нужно редактировать следующие параметры в cassandra.yaml
:
- Увеличить количество concurrent_compactors.
- Увеличить значение compaction_throughput_mb_per_sec или отключить регулирование путем установки этого параметра на значение ноль.
Также вам может понадобиться изменить стратегию сжатия определенных таблиц. Могут потребоваться изменения следующих параметров:
- compaction - предпочтительная стратегия здесь - это TimeWindowCompactionStrategy. Создана специально для временных рядов и истекающих рабочих загрузок TTL. Для индивидуализации необходимо только изменить compaction_window_unit и compaction_window_size. Также unchecked_tombstone_compaction необходимо установить на
true
, чтобы заставить Cassandra сбросить истекшие SSTables в режиме реального времени. - gc_grace_seconds - должно быть снижено или установлено на ноль (в случае, если вы используете кластер с одним узлом).
Чтобы изменить параметры уплотнения, нужно выполнить запрос, используя интерактивный терминал CQL. Запустите bin/cqlsh
, чтобы подключить текущий узел Cassandra:
|
Перед настройкой вашей базы данных, используя перечисленные параметры, проверьте документацию Apache Cassandra. Настройка базы данных может отличаться в отдельных случаях. |
Другие параметры, на которые следует обратить внимание
Настройки таймаута сети
- range_request_timeout_in_ms
- read_request_timeout_in_ms
- write_request_timeout_in_ms
- request_timeout_in_ms
- и т.д.
Учитывайте изменения этих настроек, когда вы планируете произвести операции, требующие временных затрат. Иначе вы можете получить TimedOutException в течение работы с базой данных.