DBMS/Cassandra

    CassandraDB 버전 별 G1GC 기본 설정 정리

    Cassandra 버전별 JDK 지원 범위 (JDK 8 ~ 17) Cassandra 3.1: JDK 8 Cassandra 4.0: JDK 8, 11 Cassandra 4.1: JDK 8, 11 Cassandra 5.0: JDK 11, 17 G1GC Settings 현황 Cassandra 3.1: CMS(default), G1GC Cassandra 4.0: CMS(default), G1GC Cassandra 4.1: CMS, G1GC (default) 제공되는 G1GC 설정 값들 강화되었음 Cassandra 5.0: G1GC (default) Cassandra G1GC 세팅값 정리 JDK 11 1. Cassandra 4.0 ### G1 Settings ## Use the Hotspot garbage-fir..

    CassandraDB Snapshot

    Cassandra SnasphotCassandra DB에서 기본 설정 상 truncate or Drop 전에 Snapshot을 만든다. (cassandra.yml의 auto_snapshot 설정으로 default: true이다) 그래서, Truncate 및 Drop을 했는데, 실제 디스크 사용량이 줄어들지 않아서, 해당 데이터를 디스크에서 완전히 삭제하려면, Snapshot도 제거해야 한다.cf) 위의 케이스 이외에도 설정에 따라서 compaction, increment_backup 등에 의해서도 snapshot이 생성될 수 있음. 스냅샷 제거 방법./nodetool clearsnapshot --all--all: 모든 키스페이스에 속한 모든 스냅샷 제거./nodetool clearsnapshot --al..

    Cassandra Column이 마지막으로 쓰인 시간 보는 방법

    select writetime({{VALUE}}) from {{TABLE} where key1 = {{KEY1} and key2 = {{KEY_2}}; primary key는 조회할 수 없고, value 만 가능함. writetime()으로 해당 컬럼이 마지막으로 쓰인 시간을 조회합니다. (컬럼 단위임) 데이터 변경되면 변경된 시간으로 변경됨 (정확히는 변경이 아니라, Cassandra 구조인 LSM Tree 동작 방식 상, append only형태로 구성되니 변경이 아니고, 신규 컬럼이 써지는 형태임

    [Cassandra] 테이블 단위 tombstone 최소 유지 시간 설정 변경 방법

    alter table {{TABLE}} with gc_grace_seconds = 864000; # 10일 (default)

    [Cassandra] 노드 임시 중지/영구 제거/재 추가 방법

    노드 임시 중지 (서버 점검 및 재시작 등) nodetool drain 이 명령어는 노드를 일시적으로 비활성 상태로 만들어 클러스터에서 안전하게 제거하지 않고도 유지하는 데 사용됩니다. 일반적으로 노드의 유지 보수 작업이나 장애 복구 작업 중에 사용됩니다 노드가 클러스터에서 쿼리 요청을 받지 않도록 하기 위해 읽기 및 쓰기 요청을 중지합니다. 노드가 다른 노드로부터 데이터를 받거나 복제하지 않도록 하기 위해 데이터 전송을 중지합니다. 노드가 클러스터와의 연결을 끊기 전에 남아 있는 쓰기 작업을 완료합니다. nodetool drain 명령어를 실행한 노드는 클러스터에서 제거되지 않고 유지됩니다. 이후 다시 활성화되거나 유지 보수 작업 완료 후 정상적으로 작동할 수 있습니다. 노드를 클러스터에서 영구 제거 ..