▲neo 1달전 | parent | favorite | on: GN⁺: 분산 락킹 구현 방법 (2016)(martin.kleppmann.com)Hacker News 의견 Temporal을 사용하여 분산 잠금을 구현한 경험이 있으며, 현재까지 잘 작동하고 있음. Temporal의 기능을 활용하여 분산 잠금의 구현이 간단함 블로그 댓글에서 알고리즘의 중요한 점을 놓쳤다는 의견을 남겼으며, 이로 인해 알고리즘의 거부가 약한 점에 기반하고 있다는 점을 지적함 현대 컴퓨터와 API를 사용하면 대략적인 시간 대기를 할 수 있으며, GC 일시 중지는 제한적이고 단조로운 시계가 작동함. 이는 수용 가능한 가정임 자동 해제 메커니즘을 비판하는 것과 알고리즘의 목표와 시스템 모델을 비판하는 것은 다른 문제임 Redlock은 다양한 사용 사례에서 성공적으로 사용되었으며, 타임아웃을 적절히 설정하면 경합 조건을 유발하기 어려움. 작은 타임아웃 설정은 설계 오류임 저수준 및 알고리즘 지식을 업데이트 중이며, 재미로 무언가를 만들고 싶지만 대부분의 자료가 장난감 수준이거나 매우 복잡함 PostgreSQL을 사용하여 분산 잠금을 구현하며, 트랜잭션을 시작하고 조언 잠금을 얻어 트랜잭션이 해제될 때까지 잠금 상태를 유지함 데이터베이스 연결 상태를 확인하지 않았다는 점을 깨달았으며, 데이터베이스 관련 작업이 아닌 경우 잠금을 잃었을 가능성이 있음 Deno와 Deno KV를 사용하여 분산 잠금을 구현했으며, FoundationDB를 기반으로 함 Redis를 검토했으나 PostgreSQL을 사용하여 요청을 SET 작업으로 변환하여 정확성을 해결함 많은 엔지니어들이 정확성 문제를 중요하게 여기지 않으며, 메시지가 손실되거나 순서가 잘못될 수 있는 경계 사례가 존재함 잠금에 타임아웃을 설정하는 것이 좋은 아이디어이며, 클라이언트가 충돌할 경우 OS나 감독자가 잠금을 해제함 잠금이 필요 없는 경우, 버전 토큰을 사용하여 데이터 무결성을 유지할 수 있음. UUID와 같은 고유한 값이 사용될 수 있음
Hacker News 의견