지연 제한을 위한 일관성 트레이드오프 NoSQL 스토어

지연 제한을 위한 일관성 트레이드오프 NoSQL 스토어

초록

**
dConssandra는 사용자가 지정한 응답 지연 한계 내에서 데이터 접근을 보장하도록 설계된 Cassandra 기반 NoSQL 시스템이다. 복제 과정을 세분화된 단계로 나누고, 지연 제한에 맞춰 필요한 단계만 실행함으로써 일관성과 지연 사이의 트레이드오프를 동적으로 조정한다. 실험 결과는 지정된 지연 한계가 실제 응답 시간에 정확히 반영되며, 더 넓은 쓰기 지연 허용은 최신 값을 읽는 지연을 감소시키고, 더 넓은 읽기 지연 허용은 더 최신 데이터를 반환한다는 것을 보여준다.

**

상세 분석

**
dConssandra는 기존 Cassandra가 제공하는 강일관성(Strong Consistency)과 최종일관성(Eventual Consistency) 사이의 이산적인 선택을 연속적인 스펙트럼으로 전환한다는 점에서 혁신적이다. 핵심 아이디어는 복제 프로세스를 “쓰기 로그 기록”, “전파 준비”, “전파 실행”, “전파 확인”, “읽기 응답 준비” 등으로 세분화된 단계들로 분해하고, 각 단계마다 예상 소요 시간을 모델링한다는 것이다. 사용자는 API 호출 시 원하는 최대 지연(ms)을 명시하면, dConssandra는 사전 학습된 단계별 비용 모델을 기반으로 해당 지연 안에 포함될 수 있는 최대 단계 집합을 선택한다. 예를 들어, 매우 짧은 지연을 요구하면 쓰기 작업은 로컬 메모리 로그에만 기록하고, 전파 단계는 생략한다. 반대로 지연 허용량이 넉넉하면 전체 동기 복제 과정을 수행해 강일관성을 확보한다.

이러한 단계 선택 메커니즘은 두 가지 중요한 기술적 도전을 해결한다. 첫째, 단계별 실행 시간을 실시간으로 추정하기 위해 dConssandra는 각 노드의 현재 부하, 네트워크 RTT, 디스크 I/O 상태 등을 지속적으로 모니터링하고, 이를 기반으로 동적 비용 함수를 업데이트한다. 둘째, 부분 복제가 진행 중인 상황에서도 읽기 일관성을 보장하기 위해 “읽기 스테이징”이라는 개념을 도입한다. 읽기 요청이 들어오면, 시스템은 현재 로컬 복제 단계와 전파된 최신 버전의 메타데이터를 비교해, 지정된 지연 한계 내에서 가능한 가장 최신 값을 반환한다. 이때, 읽기 요청이 지정한 지연보다 오래 걸릴 위험이 있으면, 시스템은 더 오래된 캐시된 값을 반환하거나, 선택적으로 추가 복제 단계 수행을 시도한다.

스토리지 아키텍처 역시 기존 Cassandra의 SSTable 기반 구조와는 다르게 설계되었다. dConssandra는 메모리 중심의 “스테이지 버퍼”를 도입해 각 복제 단계별 데이터를 별도 버퍼에 저장한다. 이 버퍼는 순차적으로 플러시되며, 플러시 시점은 지연 제한과 복제 단계 완료 여부에 따라 동적으로 조정된다. 이러한 설계는 디스크 I/O를 최소화하고, 지연 제한을 만족시키기 위한 빠른 메모리 접근을 가능하게 한다.

실험에서는 10노드 클러스터에서 다양한 지연 제한(5 ms, 20 ms, 100 ms)과 워크로드(읽기 비중 80 %, 50 %, 20 %)를 적용했다. 결과는 (1) 실제 응답 시간이 사용자가 지정한 상한을 초과하지 않음, (2) 쓰기 지연 제한이 클수록 최신값을 읽는 평균 지연이 감소하고, (3) 읽기 지연 제한이 클수록 반환되는 값의 최신성(스탬프 차이)이 개선됨을 보여준다. 특히, 쓰기 지연을 100 ms까지 허용했을 때 읽기 지연은 평균 15 ms 이하로 감소했으며, 이는 전통적인 강일관성 Cassandra가 30 ms 이상을 요구하던 상황과 비교해 50 % 이상 개선된 것이다.

dConssandra의 접근법은 “지연 보장 + 일관성 트레이드오프”라는 새로운 서비스 수준 협약(SLA) 모델을 제시한다. 이는 실시간 애플리케이션, 모바일 게임, 금융 트레이딩 등 지연이 엄격히 제한되는 환경에서 일관성 요구를 유연하게 조정할 수 있게 해준다. 다만, 단계별 비용 모델의 정확도와 네트워크 변동성에 대한 내성이 시스템 전체 성능에 큰 영향을 미치므로, 향후 연구에서는 머신러닝 기반 비용 예측 및 적응형 복제 전략을 결합하는 방안이 필요하다.

**