commit log 2

카산드라(cassandra), Commit Log, Memtable, SSTable

카산드라는 테이블의 데이터를 넣는 저장소를 SSTable(Sorted String Table)이라 합니다. SSTable은 파일이기 때문에 데이터가 입력되는 시점에 항상 SSTable로 저장한다면 저장하는 데 많은 시간이 소요될 것입니다. 저장뿐만 아니라 데이터를 읽기 위해 항상 SSTable에서 읽어와야 한다면 읽는 시간도 오래 걸릴 겁니다. 그래서 SSTable에 저장하기 전에 메모리에 먼저 기록합니다. 이 메모리를 Memtable 이라 합니다. 그러나 Memtable의 이름에서 알 수 있듯이 Memtable은 메모리이므로 휘발성입니다. 서버가 다운되면 메모리에 기록된 데이터는 모두 지워집니다. 그러므로 메모리에 기록하기 전에 디스크 파일로 저장할 필요가 생깁니다. 이를 커밋로그(Commit Log)..

NoSQL/Cassandra DB 2021.08.11

카산드라(cassandra), 데이터를 저장하는 과정(심화)

이전 글에서는 데이터를 읽고 쓰는 과정을 간단히 설명하였습니다. 또한 아래 그림의 각 부분에 대한 설명은 Commit Log, Memtable, SSTable 글을 참고할 수 있습니다. 본 글에서는 데이터를 저장하는 과정을 조금 더 깊게 들여다보겠습니다. 카산드라가 데이터의 입력이 성공했다고 판단하는 시점은 Commit Log에 기록된 후입니다. 최종 목적지인 SSTable에 입력할 데이터를 차곡차곡 Commit Log에 기록합니다. 그러므로 Commit Log에 입력된 후라면 해당 노드가 다운되더라도 노드가 재가동되면 SSTable에 기록되지 않는 입력데이터를 Commit Log를 통해 순차적으로 기록하게 됩니다. 이것이 Commit Log의 유일한 목적입니다. Commit Log은 크기는 commit..

NoSQL/Cassandra DB 2020.11.18