cassandra table 변경

cassandra 2017. 1. 26. 13:17


TTL이 있고 삭제가 많은 카산드라 테이블에 대해서 

너무 낮은 gc_grace_seconds는 read 성능을 떨어뜨리게 된다. 

그렇다고 적당한 값으로 두기에는 언젠가는 compaction으로 cassandra가 gc로 인해 hang이 될 수 있다. 


적당히 타협하기 위해 gc_grace_seconds의 기본값을 수정해 하루로 변경했다.


변경 방법은 cqlsh에 진행하며 다음 커맨드를 사용한다.


cqlsh:cluster_name> alter table google_plus.recent_relation  with GC_GRACE_SECONDS = 86400;


확인은 다음과 같이 진행한다. 


cqlsh:cluster_name> describe google_plus.recent_relation


좀 더 응용을 한다면, with 에 속성을 주면 테이블 속성을 변경할 수 있다. 





참고로 

alter 만 된다고 생각하는 분들이 있는데, 테이블 생성할 때부터 compaction 정책을 생성할 수 있다.



CREATE TABLE google_plus. recent_relation (

  block_id uuid,

  species text,

  alias text,

  population varint,

  PRIMARY KEY (block_id)

) WITH compression =

    { 'sstable_compression' : 'DeflateCompressor', 'chunk_length_kb' : 64 }

  AND compaction =

    { 'class' : 'LeveledCompactionStrategy'};


Posted by '김용환'
,