통계 관련 작업을 하면서, clickhouse라는 DB에 대해 알게되었다.
Clickhouse란
Clickhouse 장점
데이터 삽입시, Lock이 필요없는 이유
- Clickhouse는 Append-Only 방식과 멀티버전 동시성 제어 때문
- Append-Only 구조
- Clickhouse는 데이터를 기존에 있는 테이블을 수정하지 않고, 새로운 데이터만 추가하는 방식으로 저장
- 데이터를 삽입할 때, 기존 데이터를 잠그고 수정할 필요가 없음
- 데이터를 삽입하면, 각 데이터 세그먼트가 독립적으로 관리되므로 다른 쿼리와 충돌이 일어나지 않음
- 멀티버전 동시성 제어(MVCC, Multi-Version Concurrency Control)
- 여러 버전의 데이터를 동시에 관리하여 삽입 중에서도 다른 쿼리(읽기, 쓰기)가 동시에 이루어질 수 있도록 지원
- 데이터 쿼리마다, 그 시점에서의 데이터 스냅샷을 제공하기 때문에 락을 걸지 않고도 안정적인 읽기, 쓰기가 가능
- 이러한 구조 덕분에 데이터 삽입시, 락이 필요없고, 동시에 대규모 삽입 작업이 가능하며 성능이 훨씬 향상된다.
멀티코어 연산