본문 바로가기
WIKI 기술 지식 베이스

Conflict Resolution

원문 보기 위키 갱신

여러 클라이언트가 동시에 변경할 때 Turso 동기화가 어떻게 처리하는지 설명하는 문서예요. 핵심 규칙부터 풀 동기화 동작까지 순서대로 살펴볼게요.

출처: 문서

본문

이 사용법은 로컬 Turso 데이터베이스를 동기화하기 위해 Turso Cloud를 사용하며, 계정이 있다고 가정해요.

Last Push Wins

Turso 동기화는 last push wins(마지막 푸시가 이긴다) 전략을 사용해요. 두 클라이언트가 같은 데이터를 수정하고 푸시하면, 마지막 푸시가 원격의 최종 상태를 결정해요.

Time Client A Client B
T1 UPDATE users SET name='Alice' WHERE id=1
T2 UPDATE users SET name='Bob' WHERE id=1
T3 push()
T4 push()

결과: Client B가 마지막에 푸시했기 때문에 이름은 'Bob'이 돼요.

What Happens During Pull

푸시하지 않은 로컬 변경이 있는 상태에서 풀을 하면 이런 순서로 진행돼요.

  1. 로컬 데이터베이스가 마지막 동기화 상태로 롤백돼요
  2. 원격 변경이 적용돼요
  3. 푸시하지 않은 로컬 변경이 그 위에 **재생(replay)**돼요

이 롤백-재플레이는 원자적으로 일어나요. 무언가 실패하면 데이터베이스는 이전 상태 그대로 유지돼요.

더 알아보기 (Learn more)