PGSimCity - PostgreSQL의 작동 방식을 탐험 가능한 3D 도시로 시각화

5 days ago 11

PostgreSQL의 연결/백엔드/공유 메모리/WAL/스토리지/체크포인트/autovacuum/복제를 건물과 구역으로 표현한 3D 교육용 시뮬레이션으로, 각 건물과 애니메이션이 실제 데이터베이스 메커니즘에 대응함 shared_buffers의 clock-sweep 교체, WAL 기록과 플러시, 체크포인트 페이싱, xmin 지평선과 테이블 팽창 등 내부 동작을 느린 시간 척도로 관찰할 수 있도록 수치와 규모를 축소함 실제 PostgreSQL 코드를 실행하는 에뮬레이터가 아니라 손으로 작성한 모델이며, PostgreSQL 문서와 소스를 기준으로 세 차례 전문 검토와 별도 시각적 감사를 거치고 210개 테스트로 주요 계산과 제한값을 고정함 버퍼 부족, 장기 실행 트랜잭션, 체크포인트 폭주, synchronous_commit=off, 느린 복제 재생 같은 시나리오를 실행해 운영 설정이 지연/팽창/내구성/복제 지연에 미치는 변화를 직접 살펴볼 수 있음 three.js/TypeScript/Vite로 만든 정적 WebGL2 애플리케이션이며, 향후 실제 WebAssembly PostgreSQL의 쿼리 실행 결과와 계획을 현재의 내부 모델에 연결하는 하이브리드 구조도 가능한 방향으로 검토함 PostgreSQL을 도시로 표현하는 방식 PGSimCity는 PostgreSQL 내부 구조를 걸어 다니며 탐색할 수 있는 독립적/비상업적 교육용 시각화 프로젝트임 중앙 광장은 shared_buffers를 나타내며, 1,024개 페이지 프레임의 높이는 clock-sweep usage_count, 색상은 실제 버퍼 상태를 표현함 동쪽의 주황색 구역은 WAL, 광장 아래 굴착지는 데이터 디렉터리, 남쪽 도시는 기본 서버가 전송한 WAL을 조금 늦게 재생하는 대기 서버를 나타냄 데이터베이스를 직접 운영해보지 않은 엔지니어가 다음 현상을 이해하도록 설계됨 체크포인트가 지연 시간을 급증시키는 이유 종료되지 않은 트랜잭션이 테이블 팽창을 지속시키는 방식 synchronous_commit이 커밋 시 어떤 비용을 부과하는지 모델의 정확성과 한계 PGSimCity는 아직 0.x 단계의 모델이며 PostgreSQL 에뮬레이터가 아님 PostgreSQL 소스 코드를 실행하지 않음 사람이 변화를 볼 수 있도록 수치와 시간 척도를 조정함 SQL을 파싱하거나 실제 쿼리 결과를 계산하지 않음 PostgreSQL 동작의 정확성을 postgresql.org/docs와 소스 ...

Read Entire Article