본문 바로가기

728x90

Wal

(6)
Tailscale이 19번의 DB 손상 끝에 찾아낸 SQLite의 16년 된 버그 Tailscale이 19번의 DB 손상 끝에 찾아낸 SQLite의 16년 된 버그IT & AI 뉴스 썸네일Tailscale은 6개월 동안 SQLite 데이터베이스 손상을 19번 겪었어요. 재현 조건조차 잡히지 않던 문제를 운영 환경의 트랜잭션 로그와 VFS 추적으로 좁혔고, 끝내 SQLite의 16년 된 WAL-Reset 버그를 찾아냈어요. 1잘 알려진 데이터베이스를 단일 작성자 구조로 썼는데도 장애가 반복됐다는 점이 눈에 띄어요. 원인은 SQLite 자체의 희귀한 경쟁 조건과 Tailscale의 공격적인 수동 체크포인트 운용이 맞물린 데 있었어요. 2핵심 요약구분내용발생 규모6개월 동안 서로 다른 데이터베이스 손상 사고가 19번 발생했어요.직접 원인체크포인트와 쓰기 트랜잭션이 겹칠 때 WAL 페이지가 ..
PostgreSQL MVCC의 비용, 다른 DB는 어디로 옮길까요? PostgreSQL MVCC의 비용, 다른 DB는 어디로 옮길까요?IT & AI 뉴스 썸네일PostgreSQL의 MVCC를 두고 쓰기 증폭과 테이블 팽창, VACUUM 부담을 단점으로 꼽는 일이 많아요. 이런 비용은 실제로 존재해요. 다만 다른 데이터베이스도 과거 행 버전을 보관하고 정리해야 하며, 저장 위치와 정리 주체가 다를 뿐이에요. 1핵심 요약구분설계 선택운영에서 드러나는 비용PostgreSQL과거 행 버전을 테이블 heap에 남겨요dead tuple, 테이블 팽창, VACUUM, XID 관리가 필요해요Oracle·InnoDB이전 값을 undo 영역에 저장해요오래된 읽기는 undo 탐색 비용을 치르고, 큰 롤백은 오래 걸릴 수 있어요SQL Server과거 버전을 version store에 둬요오래..
32TB도 42분, PlanetScale이 백업을 복원하며 다음 백업을 만드는 이유 32TB도 42분, PlanetScale이 백업을 복원하며 다음 백업을 만드는 이유IT & AI 뉴스 썸네일대형 Postgres 데이터베이스는 백업 파일을 만드는 시간부터 부담이에요. PlanetScale은 이전 백업을 임시 노드에 직접 복원하고 WAL을 재생한 뒤, 그 상태를 새로운 백업으로 저장해요. 샤드마다 이 과정을 동시에 돌려 프로덕션 부하와 전체 소요 시간을 함께 줄였어요. 2핵심 요약구분핵심왜 볼 만한가요백업 방식이전 백업을 임시 노드에 복원하고 WAL로 현재 상태까지 따라잡아요주기마다 기존 백업의 복구 가능성을 실제 복원 과정에서 확인해요프로덕션 부하오래된 WAL은 S3에서 읽고 최근 몇 분만 primary에서 받아요서비스 쿼리와 무거운 백업 작업이 같은 자원을 두고 경쟁하는 시간을 줄여요..
PostgreSQL 내부를 3D 도시로 걷는 PGSimCity PostgreSQL 내부를 3D 도시로 걷는 PGSimCityIT & AI 뉴스 썸네일PostgreSQL 서버 안에서 벌어지는 일을 도시의 움직임으로 볼 수 있는 프로젝트가 나왔어요. PGSimCity는 연결부터 버퍼 교체, WAL 기록, 체크포인트, autovacuum, 복제까지 눈에 보이는 건물과 애니메이션으로 바꿔 보여줘요. 1핵심 요약구분핵심왜 볼 만한가요교육 방식PostgreSQL 내부 구조를 탐험 가능한 3D 도시로 표현해요문서의 추상적인 개념을 공간과 움직임으로 연결할 수 있어요관찰 대상shared_buffers, WAL, 체크포인트, vacuum, 복제 지연을 느린 속도로 보여줘요설정 하나가 지연과 테이블 팽창에 미치는 영향을 비교하기 쉬워요정확성 범위실제 PostgreSQL을 실행하지 않..
SQLite의 오래된 기본값, Rust식 에디션으로 바꿀 수 있을까요 SQLite의 오래된 기본값, Rust식 에디션으로 바꿀 수 있을까요IT & AI 뉴스 썸네일SQLite는 오래된 프로그램을 깨뜨리지 않으려고 보수적인 기본값을 지켜 왔어요. 그 결과 외래 키 검사, 엄격한 자료형, 동시 쓰기 대기, WAL 같은 설정을 프로젝트마다 따로 챙겨야 해요. 한 개발자가 Rust처럼 연도별 에디션을 선택해 최신 권장 설정을 한꺼번에 켜자는 아이디어를 제안했어요. SQLite 공식 로드맵이 아니라 개발자 개인의 제안이라는 점은 구분해서 봐야 해요. 1핵심 요약구분핵심왜 볼 만한가요제안`PRAGMA edition = 2026`으로 최신 기본값 묶음을 선택해요기존 앱의 동작을 보존하면서 새 프로젝트는 더 안전하게 시작할 수 있어요무결성외래 키 검사를 기본으로 켜고 엄격한 테이블을 적..
PostgreSQL을 일부러 망가뜨려 보는 도구, noisia PostgreSQL을 일부러 망가뜨려 보는 도구, noisiaIT & AI 뉴스 썸네일운영 중에는 만나고 싶지 않은 PostgreSQL 장애를 테스트 환경에서 미리 일으켜 볼 수 있어요. noisia는 연결 고갈, 잠금 대기, 교착 상태, 메모리 부족, WAL 증가, 디스크 부족을 재현하는 오픈소스 도구예요. 장애가 난 뒤 알람과 복구 절차가 제대로 움직이는지 확인할 때 쓸 수 있지만, 일부 워크로드는 데이터베이스 전체를 재시작시킬 만큼 위험해요. 1핵심 요약구분핵심왜 볼 만한가요목적PostgreSQL에 의도적으로 유해한 워크로드를 만들어요장애 대응 절차를 실제 증상에 가깝게 점검할 수 있어요범위연결, 잠금, 메모리, WAL, 스토리지 문제를 다뤄요단순 쿼리 부하보다 다양한 실패 경로를 확인할 수 있어요..

728x90