테렉스: 협업 애플리케이션을 위한 쓰기 공유 지원 시스템
테렉스는 분산 환경에서 mutable 데이터를 공유하기 위해 설계된 시스템으로, 로컬 복제본에서 오프라인 작업이 가능하고 네트워크 지연에 영향을 받지 않는다. 충돌 탐지와 해결은 애플리케이션에 독립적인 액션‑제약 그래프(ACG)로 표현되며, 멀티로그 구조에 효율적으로 저장된다. 시스템은 복제, 일관성, 보안, 언두, 커밋 등을 담당하고, 애플리케이션 로직은 순수히 동작과 제약만을 제공한다. 공유 캘린더 예시를 통해 회의 충돌을 자동으로 감지·해…
저자: ** Lamia Benmouffok, Jean‑Michel Busca, Joan Manuel Marquès
본 논문은 분산 환경에서 mutable 데이터를 공유하는 협업 애플리케이션을 위한 새로운 시스템인 **테렉스(Telex)** 를 제안한다. 기존의 복제 방식은 높은 지연이나 오프라인 작업을 지원하지 못하고, 마지막 작성자 승리 방식은 의미적 일관성을 보장하지 못한다는 문제점을 지적한다. 테렉스는 이러한 한계를 극복하기 위해 **액션‑제약 그래프(ACG)** 라는 형식 모델을 도입한다. ACG는 작업을 노드, 동시성 제약을 엣지로 표현하며, NotAfter, Enables, NonCommuting, Atomic, Causal, Antagonism 등 여섯 가지 기본 제약을 정의한다. 애플리케이션은 자신이 정의한 제약을 시스템에 전달하고, 시스템은 전역적으로 일관된 **sound schedule**을 계산한다.
시스템 구조는 **멀티로그(multilog)** 라는 파일 기반 저장소를 핵심으로 한다. 각 공유 문서는 디렉터리 형태로 존재하고, 그 안에 파티션별 로그 파일이 순차적으로 추가된다. 로그는 append‑only이며 단일 작성자만을 허용해 쓰기 충돌을 방지한다. 로그 파일은 청크 단위로 나뉘어 저장·전파 효율을 높이며, 스냅샷과 가비지 컬렉션을 통해 오래된 데이터를 정리한다. 멀티로그는 V OFS라는 분산 파일 시스템 위에 구현되어, 지역성(locality)과 확장성을 동시에 만족한다.
테렉스는 **복제, 일관성, 보안, 언두, 커밋** 등 시스템 수준 기능을 제공한다. 복제는 로그를 비동기적으로 전파하고, 각 사이트는 로컬 로그를 기반으로 즉시 작업을 수행한다. 일관성은 ACG 제약을 만족하는 스케줄을 보장하며, 전역 커밋은 백그라운드 합의 프로토콜을 통해 이루어진다. 커밋이 확정되면 해당 작업은 영구적으로 기록되고, 이후 충돌 탐지는 필요 없어진다. 보안은 로그 접근 제어와 암호화 전송으로 구현된다. 언두는 ACG의 역방향 탐색을 통해 가능하며, 충돌이 감지되면 시스템은 가능한 해결 방안을 제시한다.
다중 문서 업데이트와 **크로스‑도큐먼트 제약**도 지원한다. 서로 다른 문서에 걸친 제약은 양쪽 로그에 복제되어 일관성을 유지한다. 이는 회의 일정 관리, 공동 편집, 프로젝트 관리 등 다양한 협업 시나리오에 적용 가능하다. 논문은 공유 캘린더 애플리케이션을 사례로 들어, 회의 시간 충돌을 자동으로 감지하고 대체 일정을 제안하는 과정을 상세히 설명한다.
성능 평가에서는 멀티로그 구조가 높은 동시성을 제공하고, 네트워크 지연이 큰 환경에서도 로컬 작업이 즉시 반영되는 장점을 확인했다. 실험 결과, 로그 전파와 스케줄 계산 비용이 비교적 낮으며, 대규모 파티션에서도 시스템이 안정적으로 동작한다. 다만 전역 커밋 단계에서 합의 비용이 증가하고, 스냅샷 관리에 추가 오버헤드가 발생한다는 점을 논의한다.
결론적으로 테렉스는 **애플리케이션 독립적인 충돌 탐지·해결 메커니즘**과 **효율적인 파일 기반 멀티로그 저장·전파 구조**를 결합해, 오프라인 작업과 높은 확장성을 동시에 지원하는 협업 시스템의 새로운 설계 패러다임을 제시한다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기