저장 2

카산드라(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

카산드라(cassandra), 데이터를 읽고 쓰는 과정

카산드라는 데이터를 여러 노드에 분산하여 저장합니다. 즉, 노드마다 할당된 데이터가 다릅니다. 클라이언트는 카산드라에 접근하기 위해 특정 노드에 접속합니다. 아래 그림의 ①번에 해당합니다. 이처럼 클라이언트가 접속한 노드를 코디네이터라 합니다. 데이터 읽기 코디네이터는 클라이언트가 요청한 데이터가 클러스터의 어느 노드에 있는지 확인 후 해당 노드에 데이터를 요청합니다. 아래 그림의 ②번에 해당합니다. 해당 노드는 요청받은 데이터를 코디네이터로 전달합니다. 아래 그림의 ③번에 해당합니다. 끝으로 코디네이터는 전달받은 데이터를 클라이언트로 전달합니다. 아래 그림의 ④번에 해당합니다. 데이터 쓰기 코디네이터는 클라이언트가 저장하려는 데이터가 클러스터의 어느 노드에 저장되어야 하는지 확인 후 해당 노드에 데이터..

NoSQL/Cassandra DB 2020.09.08