CRDTs: 강력한 최종 일관성의 핵심

2025-09-09
CRDTs: 강력한 최종 일관성의 핵심

CRDTs(Conflict-free Replicated Data Types)는 여러 노드에 복제되고, 독립적으로 편집되고, 매끄럽게 병합될 수 있는 데이터 구조입니다. 이 글에서는 CRDTs가 기존의 최종 일관성보다 더 강력한 모델인 강력한 최종 일관성(SEC)을 어떻게 달성하는지 자세히 설명합니다. SEC는 여러 노드에서 독립적인 업데이트가 발생하더라도 충돌이 자동적이고 결정적으로 해결되도록 보장하여 낮은 대기 시간, 높은 내결함성, 오프라인 기능을 제공합니다. 저자는 CRDTs가 강력한 최종 일관성 시스템의 기본 구성 요소이며, 공동 편집 및 멀티플레이어 할 일 목록을 훨씬 넘어 분산 데이터베이스 등에 적용될 수 있다고 주장합니다.

더 보기

NIH는 잘못된 의존성보다 저렴하다

2025-07-18
NIH는 잘못된 의존성보다 저렴하다

이 글은 소프트웨어 의존성이 항상 유익하다는 일반적인 가정에 이의를 제기합니다. 저자는 의존성에는 학습 곡선, 유지 보수 오버헤드, 보안 위험, 배포 복잡성 등 상당한 비용이 발생한다고 주장합니다. TigerBeetle 데이터베이스를 예로 들어, 제로 의존성 정책의 이점을 강조합니다. 의존성을 평가하기 위한 프레임워크가 제안되었으며, 유비쿼티, 안정성, 심도, 인체 공학, 견고성을 포함합니다. POSIX 시스템 호출, ECMA-48 터미널 제어 코드, 웹 플랫폼을 사용하여 프레임워크의 적용 방법을 보여줍니다. 이 글은 개발자들이 의사 결정을 내리기 전에 의존성의 비용과 이점을 비판적으로 평가하도록 촉구합니다.

더 보기
개발

파일들은 배우가 되고 싶어할까? io_uring과 컴퓨팅 패러다임의 수렴

2025-01-04
파일들은 배우가 되고 싶어할까? io_uring과 컴퓨팅 패러다임의 수렴

고성능 Linux 애플리케이션에서 io_uring은 OS와의 상호 작용에 혁명을 일으키고 있습니다. 제출 큐와 완료 큐를 사용하여 시스템 호출을 기다리지 않고 비동기 I/O를 수행할 수 있습니다. 간단히 작업을 큐에 넣고 계산을 계속하면 됩니다. 이는 놀랍게도 Actor 모델을 반영합니다. 객체는 메시지를 보내 병렬 계산을 수행합니다. io_uring에서 파일 디스크립터에 작업을 보내고 비동기적으로 응답을 받는 프로세스는 이와 매우 유사합니다. 이는 비동기적이고 자율적으로 작동하는 OS로의 전환을 시사합니다. 기존 시스템 호출 방식은 구식 추상화가 되었을 수 있습니다.

더 보기
개발