Резервное копирование и восстановление вторичного индекса Cassandra

Я создал кластер Cassandra с 2 контроллерами домена. DC1 — 9 узлов, rep 5, согласованность — локальный кворум. DC2 — 4 узла, rep 3, согласованность — локальный кворум. Тестировали резервное копирование и восстановление и заметили, что восстановление узла занимает очень много времени после восстановления данных. System.log и compactionstats показывают, что большая часть времени тратится на перестроение вторичных индексов. Ищем ответы на:

Есть ли способ резервного копирования и восстановления вторичного индекса? Как Cassandra восстанавливает вторичный индекс? он всегда проходит полный ребилд? Есть ли способ специально исключить перестроение вторичного индекса из процесса восстановления nodetool?

Стратегия резервного копирования: на основе моментальных снимков, хранящихся в облаке. Индекс хранения каталогов Lucene также резервируется.

Стратегия восстановления: Восстановите sstables из моментальных снимков, скопируйте обратно каталог Lucene.


person Anukrati Bhandari    schedule 25.11.2019    source источник


Ответы (1)


Когда вы запускаете nodetool snapshot, он также делает снимок вторичного индекса.

Из документа instaclustr: Точное местоположение и соглашение об именах файлов, используемые для резервных копий файлов, зависят от типа вторичного индекса и версии Cassandra.

  • Regular Secondary Index
    • Cassandra 2.2 +
      Secondary index will be stored as sstables under a separate directory inside their respective tables. The secondary index directory is named as ‘.nameOfTheIndex’. The naming convention of sstable files is, ‘md-#-big-*’, eg. md-1-big-Data.db
    • Cassandra 2.1.x и Cassandra 2.0.x
      Вторичный индекс будет храниться как sstables в том же каталоге соответствующих таблиц. Соглашения об именах файлов sstable:
    • Для Cassandra 2.0.x,
      ‘keyspace-table.nameOfTheIndex-jb-#-’, например. testkeyspace-testtable.testindex-jb-1-Data.db — для Cassandra 2.1.x ‘keyspace-table.nameOfTheIndex-ka-#-’, например . testkeyspace-testtable.testindex-ka-1-Data.db
  • Индекс SASI (SSTable Attached Secondary Index)
    Другое важное отличие индекса SASI заключается в том, что если в кластере уже есть индекс SASI до запуска службы резервного копирования Instaclustr, служба резервного копирования не будет создавать резервную копию индекса SASI. В таком случае службу Cassandra необходимо перезапустить. Если такая ситуация возникает на рабочем кластере, вы можете обратиться за помощью в нашу службу технической поддержки. Соглашение об именах: ‘md-1-big-SI_table_column_idx.db’
person Julien Laurenceau    schedule 10.06.2021