Работа с внешней базой данных cassandra

Внедрение высокопроизводительного внешнего экземпляра cassandra

  • Установите Java 8 или JDK 8.
  • Установите (распакуйте) самую последнюю версию 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:

    USE aggregate;

    ALTER TABLE <table_name> 

      WITH compaction = {'class' : 'TimeWindowCompactionStrategy', 'compaction_window_unit' : 'HOURS', 'compaction_window_size' : '1', 'unchecked_tombstone_compaction' : 'true'} 

      AND gc_grace_seconds = 0;

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

    Другие параметры, на которые следует обратить внимание

    Настройки таймаута сети

    • range_request_timeout_in_ms
    • read_request_timeout_in_ms
    • write_request_timeout_in_ms
    • request_timeout_in_ms
    • и т.д.

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