본문 바로가기

DB

(4)
Cassandra Operator 심화 1. vanilla k8s-deployed cassandra cluster 한계기반 지식 없이 관리하기 어렵고 운영상 이슈들도 다루기 힘들 수 있습니다. (Cassandra k8s node drain후 새로운 노드 cluster join 불가 이슈, 데이터 유실 이슈, 전체 데이터 적재 중 cassandra 파드 무한 재시작 이슈 등등..)1.1. Vanilla k8s-deployed vs cass-operator deployed cassandra cluster Vanilla Kubernetes가 배포한 카산드라 클러스터의 장점:유연성: 더 많은 제어 및 사용자 지정 옵션을 제공확장성: Vanilla Kubernetes를 사용하면 필요에 따라 Cassandra 클러스터를 확장하거나 축소할 수 있으므로 변..
Cassandra Operator Cassandra Operator의 종류는 여러 가지가 있습니다. 물론 여러 가지가 있지만 instaclustr는 종료 예정이며 cscetbon의 casskop과 k8ssandra의 cass-operator가 돋보입니다. 1. Casskop 장점 Graceful rolling update 지원 Graceful C* cluster scaling (with cleanup and decommission prior to Kubernetes scale down) Manage operations on pods through CassKop plugin (cleanup, rebuild, upgradesstable, removenode..) Performing live Cassandra repairs through th..
Cassandra Consistency Level 데이터 중심 애플리케이션 설계의 '복제' 챕터를 읽으면서 정족수에 대해 설명하고 있기에 cassandra에서는 어떻게 이를 구현하는지 알아보도록 하겠습니다. w+r > n 이면 읽을 때 최신 값을 얻을 것으로 기대한다. (w개의노드에서 성공해야 쓰기 확정, 모든 읽기는 최소한 r개의 노드에 질의, n개의 복제 서버) 최소한 r개의 노드 중 하나에서 최신 값을 읽을 수 있기 때문. 보통 n은 홀수개로 하고, w = r = (n+1)/2(반올림)로 설정한다. 이는 n/2 노드 장애까지 허용해도 w + r > n 이 보장되기 때문. r,w를 정족수 읽기와 쓰기라 부른다. 만약, 쓰기가 적고 읽기가 많은 작업 부하는 w=n, r=1로 설정하면 좋다. 이렇게되면 노드 하나가 고장나면 모든 DB 쓰기가 실패한다는 ..
Cassandra 기본 카산드라를 database로 사용하면서 공부한 내용을 기록해보고자 합니다. 주 목적은 카산드라가 어떻게 데이터를 디스크에 저장하고 읽는지 살펴보고 그 과정에서 들었던 의문을 기록하기 위함입니다. Write 과정 write 과정은 크게 4가지로 요약할 수 있습니다. commit log에 데이터 로깅 memtable에 데이터 쓰기 memtable로 부터 데이터 flushing SSTables를 통해 disk에 데이터 저장 Commit log에 데이터 로깅 commit log는 디스크 영역에 존재하며 append-only한 특징을 가집니다. commit log에 카산드라 모든 노드에 대한 변경 내역을 적습니다. 그래서 write 요청이 들어오면 commit log에 먼저 데이터가 기록됩니다. 디스크 영역의 c..