(KO) PostgreSQL 코드 분석 커버리지 맵
목차
- 이 문서의 역할
- 대상 버전
- 문서 타입 범례
- 상태 범례
- 전체 커버리지 요약
- 서브카테고리별 커버리지
- 진화 문서 백로그
- 이론 및 README 앵커 전략
- 비목표 / 범위 외
- 이 맵을 확장하는 방법
- 인접 문서
이 문서의 역할
섹션 제목: “이 문서의 역할”이 문서는 knowledge/code-analysis/postgres/의 커버리지 맵이다. 단 하나의 질문에 답하는 것이 목적이다: 무엇이 계획되어 있고, 무엇이 작성되었으며, 무엇이 의도적으로 범위 밖인가?
이 문서는 cubrid-coverage.md의 PostgreSQL 대응물이지만, 성격이 다르다. CUBRID 트리는 대부분의 문서가 이미 존재한 뒤에 추적이 시작되어 “covered / open” 형태로 기록되었다. PostgreSQL 트리는 고정된 저작 백로그를 기반으로 구축 중이므로, 이 맵은 그 백로그를 “planned / in progress / done” 형태로 기록한다. 아래의 모든 모듈 슬러그는 분석 계획의 모듈 카탈로그에서 가져온 것이며, 이 맵에서 임의로 추가한 슬러그는 없다.
이 문서가 아닌 것을 명확히 한다:
- 요약이 포함된 문서별 카탈로그 — 그것은 각 문서의
summary:프론트매터에서 자동 생성되는README.md다. - 시스템의 아키텍처 맵 — 그것은 공유 메모리 머신 테제와 함께 모든 세부 문서를 forward-reference하는 7축 라우터인
postgres-architecture-overview.md다. - 모든 PostgreSQL 소스 파일의 완전한 열거. 이 맵의 커버리지 단위는 모듈 수준이다. 계획된
postgres-<module>.md파일이 행 하나에 대응한다. 함수·구조체 단위의 공백은 추적하지 않는다. 그 역할은 각 문서의 position-hint 테이블이 담당한다.
다음 저작 배치를 계획할 때, 또는 “X가 이미 계획/작성되었는가, 범위 밖인가?”에 대한 단일 화면 답을 원할 때 이 문서를 활용한다.
대상 버전
섹션 제목: “대상 버전”트리 전체는 /data/hgryoo/references/postgres 경로에 클론된 REL_18_STABLE, 커밋 273fe94 (REL_18_4-39-g273fe94852b, PostgreSQL 18.x) 소스를 기준으로 작성된다. 버전 핀은 내구성을 중시한 선택이다. 릴리스된 안정 브랜치를 대상으로 하므로, 문서별 “Source verification (as of
PG18 기능은 범위 내다. storage/aio/의 async I/O (비동기 I/O), WAL 요약, 증분 백업, 공유 메모리 기반 누적 통계 서브시스템(PG15 도입)이 포함된다. PG19 전용 항목은 범위 밖이며 사실로 기술해서는 안 된다(비목표 참조). references: 프론트매터 경로는 해당 트리를 기준으로 전체 src/... 접두사를 붙여 기록한다(예: src/backend/access/transam/xlog.c).
문서 타입 범례
섹션 제목: “문서 타입 범례”트리에는 네 가지 문서 타입이 존재한다. 처음 셋은 CUBRID 트리와 동일하고, 넷째는 PostgreSQL 트리에 새로 추가된 타입이다.
| 타입 | 형태 | 프론트매터 마커 |
|---|---|---|
| Module doc | 7절 템플릿 (Theoretical Background → Common DBMS Design → PostgreSQL’s Approach → Source Walkthrough → Source verification → Beyond PostgreSQL → Sources) | subcategory: <subcat> |
| Overview doc | 라우터 / 축(axis) 형태 (7절 구조 아님) | subcategory: overview |
| Detail doc | 챕터별 심층 탐구 동반 문서 | doc_type: detail |
| Evolution doc | 단일 서브시스템의 버전별 진화 기록 | doc_type: evolution |
상태 범례
섹션 제목: “상태 범례”| 상태 | 의미 |
|---|---|
| done | 작성 완료, EN 리뷰어 루프 종료 (KO 미러는 뒤처질 수 있음) |
| in progress | 현재 저작 중 |
| planned | 백로그에 등록됨, 아직 시작하지 않음 |
캠페인이 완료되었다. 117개 모듈 문서, 15개 개요/커버리지/상태 문서(이 맵 포함), 7개 진화 문서 모두 done 상태다 — EN 저작, KO 미러, 메타 프론트매터 모두 완비. PG 관련 연구 논문 13편이 knowledge/research/dbms-papers/에 수록되었다.
전체 커버리지 요약
섹션 제목: “전체 커버리지 요약”캠페인 결과: 모듈 문서 117개 + 개요/커버리지/상태 문서 15개 (아키텍처 개요 1개 + 섹션 개요 라우터 13개 + 이 커버리지 맵 + 번역 상태 문서 1개) + 진화 문서 7개 = 총 139개, 모두 REL_18_STABLE(커밋 273fe94) 기준 EN+KO+메타 완성. CUBRID 기준(약 88개 모듈 문서)보다 의도적으로 더 넓다. PostgreSQL은 플러그형 접근 방법, 진정한 확장성 인터페이스, 논리 복제, 누적 통계 서브시스템 등 일급 서브시스템이 더 많기 때문이다. KO 미러는 knowledge/ko/code-analysis/postgres/ 아래에 위치한다. PG 관련 연구 논문 13편이 knowledge/research/dbms-papers/에 수록되었다(design-of-postgres, implementation-of-postgres, postgres-storage-system, postgres-data-model, postgres-next-generation, ssi-ports-grittner, ssi-cahill, making-si-serializable, berenson-isolation, gist, lehman-yao, seltzer-yigit-hash, fong-optimizer).
서브카테고리별 커버리지
섹션 제목: “서브카테고리별 커버리지”“P” 열은 계획의 모듈 카탈로그에서 가져온 상호 참조 우선순위다(1 = 먼저 작성). “Source anchor” 열은 해당 모듈의 정식 소스 루트를 이름으로 명시한다(라인 번호가 아닌 심볼 기준).
overview
섹션 제목: “overview”| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-architecture-overview | 7축 스파인; postmaster/, storage/ipc/, access/transam/, miscadmin.h | 1 | done |
postgres-coverage | — (이 맵) | 2 | done |
postgres-overview-storage-engine | storage-engine 라우터 | 2 | done |
postgres-overview-txn-recovery | txn-recovery 라우터 | 2 | done |
postgres-overview-query-processing | query-processing 라우터 | 2 | done |
postgres-overview-server-architecture | server-architecture 라우터 | 2 | done |
postgres-overview-monitoring-stats | monitoring-stats 라우터 | 3 | done |
postgres-overview-system-catalog | system-catalog 라우터 | 3 | done |
postgres-overview-ddl-schema | ddl-schema 라우터 | 3 | done |
postgres-overview-replication-ha | replication-ha 라우터 | 3 | done |
postgres-overview-client-protocol | client-protocol 라우터 | 3 | done |
postgres-overview-extensibility | extensibility 라우터 | 3 | done |
postgres-overview-base-infra | base-infra 라우터 | 3 | done |
postgres-overview-i18n-text | i18n-text 라우터 | 3 | done |
postgres-overview-utilities | utilities 라우터 | 3 | done |
storage-engine
섹션 제목: “storage-engine”소스 루트: access/{heap,nbtree,gin,gist,spgist,brin,hash,index,table,common,tablesample}, storage/{buffer,smgr,page,freespace,file,large_object,aio}.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-page-layout | storage/page/{bufpage,checksum}.c, include/storage/{bufpage,itemptr}.h | 1 | done |
postgres-buffer-manager | storage/buffer/{bufmgr,freelist,buf_init,localbuf}.c, README | 1 | done |
postgres-smgr-md | storage/smgr/{smgr,md}.c | 2 | done |
postgres-aio | storage/aio/* (PG18 async I/O) | 2 | done |
postgres-table-am | access/table/*, include/access/tableam.h | 1 | done |
postgres-heap-am | access/heap/{heapam,heapam_handler,hio,pruneheap}.c, README.HOT | 1 | done |
postgres-toast | access/common/{toast_internals,detoast,toast_compression}.c, access/heap/heaptoast.c | 2 | done |
postgres-visibility-map | access/heap/visibilitymap.c | 2 | done |
postgres-free-space-map | storage/freespace/* | 3 | done |
postgres-nbtree | access/nbtree/*, README | 1 | done |
postgres-gin | access/gin/*, README | 3 | done |
postgres-gist | access/gist/*, README | 3 | done |
postgres-spgist | access/spgist/*, README | 4 | done |
postgres-brin | access/brin/*, README | 4 | done |
postgres-hash-index | access/hash/*, README | 4 | done |
postgres-index-am | access/index/*, include/access/amapi.h | 2 | done |
postgres-table-sampling | access/tablesample/*, include/access/tsmapi.h | 4 | done |
postgres-data-checksums | storage/page/checksum.c, common/checksum_helper.c, src/bin/pg_checksums | 3 | done |
postgres-large-objects | storage/large_object/*, libpq/be-fsstubs.c | 4 | done |
postgres-sequences | access/sequence/*, commands/sequence.c | 3 | done |
txn-recovery
섹션 제목: “txn-recovery”소스 루트: access/transam/*, storage/ipc/procarray.c, commands/vacuum*, utils/time/snapmgr.c.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-mvcc-snapshots | utils/time/snapmgr.c, access/heap/heapam_visibility.c, storage/ipc/procarray.c | 1 | done |
postgres-procarray | storage/ipc/procarray.c (procarray 내부 소유; mvcc-snapshots가 참조) | 1 | done |
postgres-xact | access/transam/xact.c, README | 1 | done |
postgres-xlog-wal | access/transam/{xlog,xloginsert,xlogreader}.c, README | 1 | done |
postgres-wal-records-rmgr | access/transam/{rmgr,xlogutils,generic_xlog}.c, access/rmgrdesc/* | 3 | done |
postgres-slru | access/transam/slru.c (기반 레이어) | 2 | done |
postgres-clog-commit-ts | access/transam/{clog,subtrans,commit_ts}.c | 2 | done |
postgres-multixact | access/transam/multixact.c | 3 | done |
postgres-two-phase-commit | access/transam/{twophase,twophase_rmgr}.c | 2 | done |
postgres-recovery-redo | access/transam/{xlogrecovery,xlogprefetcher,timeline}.c | 1 | done |
postgres-checkpoint | access/transam/xlog.c (ckpt 경로), postmaster/checkpointer.c | 2 | done |
postgres-vacuum | commands/{vacuum,vacuumparallel}.c, access/heap/vacuumlazy.c | 1 | done |
postgres-autovacuum | postmaster/autovacuum.c | 2 | done |
postgres-xid-wraparound-freeze | access/heap/heapam.c (freeze), access/transam/varsup.c | 2 | done |
query-processing
섹션 제목: “query-processing”소스 루트: parser, rewrite, optimizer, executor, nodes, statistics, jit.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-parser | parser/{gram.y,scan.l,parse_*}.c | 1 | done |
postgres-analyze-transform | parser/analyze.c, parser/parse_* | 2 | done |
postgres-rewriter | rewrite/{rewriteHandler,rewriteDefine}.c | 2 | done |
postgres-planner-overview | optimizer/plan/planner.c, README | 1 | done |
postgres-path-generation | optimizer/path/* | 1 | done |
postgres-join-ordering | optimizer/path/{joinpath,joinrels}.c, optimizer/geqo/* | 2 | done |
postgres-cost-model | optimizer/path/costsize.c, utils/adt/selfuncs.c | 2 | done |
postgres-plan-creation | optimizer/plan/{createplan,setrefs,subselect}.c | 2 | done |
postgres-prep-rewrites | optimizer/prep/* | 3 | done |
postgres-extended-statistics | statistics/*, commands/analyze.c | 2 | done |
postgres-executor | executor/{execMain,execProcnode,execTuples}.c | 1 | done |
postgres-expression-eval | executor/{execExpr,execExprInterp}.c | 2 | done |
postgres-scan-nodes | executor/{nodeSeqscan,nodeIndexscan,nodeIndexonlyscan,nodeBitmapHeapscan,nodeTidscan,nodeTidrangescan}.c | 2 | done |
postgres-join-nodes | executor/{nodeNestloop,nodeHashjoin,nodeMergejoin,nodeHash}.c | 2 | done |
postgres-agg-sort-nodes | executor/{nodeAgg,nodeSort,nodeGroup,nodeWindowAgg,nodeIncrementalSort}.c | 2 | done |
postgres-parallel-query | executor/{execParallel,nodeGather,nodeGatherMerge}.c, access/transam/README.parallel | 2 | done |
postgres-portals-prepared | tcop/pquery.c, commands/{prepare,portalcmds}.c, utils/cache/plancache.c | 2 | done |
postgres-jit | jit/*, jit/llvm/* | 4 | done |
postgres-tuplesort | utils/sort/{tuplesort,tuplestore}.c | 3 | done |
postgres-node-trees | nodes/*, include/nodes/* | 2 | done |
server-architecture
섹션 제목: “server-architecture”소스 루트: postmaster, tcop, storage/{lmgr,ipc,sync}, utils/init.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-postmaster | postmaster/{postmaster,launch_backend,pmchild}.c | 1 | done |
postgres-backend-lifecycle | tcop/{postgres,utility}.c, utils/init/{postinit,miscinit}.c | 1 | done |
postgres-shared-memory-ipc | storage/ipc/{shmem,ipci,procsignal,shm_mq,dsm,dsa}.c | 1 | done |
postgres-lock-manager | storage/lmgr/{lock,proc,deadlock,lmgr}.c, README | 1 | done |
postgres-lwlock-spinlock | storage/lmgr/{lwlock,s_lock}.c, include/storage/spin.h, port/atomics | 1 | done |
postgres-ssi-predicate-locking | storage/lmgr/predicate.c, include/storage/predicate_internals.h, README-SSI | 2 | done |
postgres-latch-signals | storage/ipc/{latch,waiteventset}.c, postmaster/interrupt.c | 2 | done |
postgres-background-workers | postmaster/bgworker.c, storage/ipc/{dsm,dsa}.c | 3 | done |
postgres-aux-processes | postmaster/{bgwriter,walwriter,checkpointer,startup,syslogger}.c | 2 | done |
monitoring-stats
섹션 제목: “monitoring-stats”소스 루트: utils/activity/*.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-cumulative-stats | utils/activity/pgstat*.c (공유 메모리 통계, PG15 재설계) | 2 | done |
postgres-wait-events-progress | utils/activity/{wait_event,backend_status,backend_progress}.c, wait_event_names.txt 코드 생성 | 3 | done |
system-catalog
섹션 제목: “system-catalog”소스 루트: catalog, utils/cache.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-system-catalogs | catalog/{catalog,heap,pg_*}.c, include/catalog/* | 1 | done |
postgres-relcache | utils/cache/relcache.c | 1 | done |
postgres-catcache-syscache | utils/cache/{catcache,syscache,lsyscache}.c | 1 | done |
postgres-cache-invalidation | utils/cache/inval.c, storage/ipc/sinvaladt.c | 2 | done |
postgres-dependency-tracking | catalog/{dependency,objectaddress}.c | 2 | done |
postgres-namespace-search-path | catalog/namespace.c | 3 | done |
ddl-schema
섹션 제목: “ddl-schema”소스 루트: commands, partitioning, rewrite/rowsecurity.c.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-ddl-execution | tcop/utility.c, commands/{tablecmds,define}.c | 1 | done |
postgres-alter-table | commands/tablecmds.c | 2 | done |
postgres-index-creation | commands/indexcmds.c, catalog/index.c | 2 | done |
postgres-constraints | commands/{typecmds,constraint}.c, catalog/pg_constraint.c | 3 | done |
postgres-triggers | commands/trigger.c | 2 | done |
postgres-event-triggers | commands/event_trigger.c | 4 | done |
postgres-partitioning | partitioning/*, catalog/partition.c, executor/execPartition.c | 2 | done |
postgres-row-level-security | rewrite/rowsecurity.c, commands/policy.c | 3 | done |
postgres-copy | commands/{copy,copyfrom,copyto,copyfromparse}.c | 3 | done |
postgres-matview | commands/matview.c | 4 | done |
replication-ha
섹션 제목: “replication-ha”소스 루트: replication/*, backup, postmaster/{walsummarizer,pgarch}.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-wal-sender-receiver | replication/{walsender,walreceiver,walreceiverfuncs}.c | 1 | done |
postgres-replication-slots | replication/{slot,slotfuncs}.c | 2 | done |
postgres-logical-decoding | replication/logical/{decode,reorderbuffer,snapbuild,logical}.c | 2 | done |
postgres-logical-replication-apply | replication/logical/{worker,launcher,tablesync}.c | 3 | done |
postgres-pgoutput | replication/pgoutput/* | 4 | done |
postgres-synchronous-replication | replication/syncrep.c | 3 | done |
postgres-archiving-walsummary | postmaster/{pgarch,walsummarizer}.c, access/transam/xlogarchive.c | 3 | done |
postgres-backup-basebackup | backup/* | 2 | done |
postgres-incremental-backup | backup/* (summary consumer), src/bin/pg_combinebackup | 3 | done |
client-protocol
섹션 제목: “client-protocol”소스 루트: libpq, tcop/postgres.c. (백엔드 측 libpq만 해당 — 비목표 참조.)
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-wire-protocol | tcop/postgres.c (메시지 루프), libpq/{pqcomm,pqformat}.c | 1 | done |
postgres-authentication | libpq/{auth,auth-scram,auth-sasl,crypt}.c | 2 | done |
postgres-tls-gssapi | libpq/{be-secure,be-secure-gssapi,be-secure-openssl}.c | 3 | done |
extensibility
섹션 제목: “extensibility”소스 루트: foreign, commands/{extension,foreigncmds}, src/pl.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-fdw | foreign/foreign.c, commands/foreigncmds.c, include/foreign/fdwapi.h (인코어 메커니즘만) | 2 | done |
postgres-extensions | commands/extension.c | 2 | done |
postgres-hooks | 분산된 *_hook 전역 변수 (planner/executor/ProcessUtility/shmem) | 3 | done |
postgres-plpgsql | src/pl/plpgsql/src/* | 2 | done |
postgres-spi | executor/spi.c | 3 | done |
postgres-custom-scan | include/nodes/extensible.h, executor/nodeCustom.c | 4 | done |
base-infra
섹션 제목: “base-infra”소스 루트: utils/{mmgr,error,fmgr,adt,mb,misc,sort,resowner,hash}.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-memory-contexts | utils/mmgr/{mcxt,aset,generation,slab,bump}.c, README | 1 | done |
postgres-error-handling | utils/error/{elog,assert}.c | 1 | done |
postgres-fmgr | utils/fmgr/{fmgr,funcapi}.c | 2 | done |
postgres-datatypes-adt | utils/adt/* (numeric, varlena, datetime, jsonb, arrays, ranges) | 2 | done |
postgres-guc-parameters | utils/misc/{guc,guc_tables}.c | 2 | done |
postgres-resource-owners | utils/resowner/resowner.c | 3 | done |
postgres-dynahash | utils/hash/dynahash.c, lib/* | 3 | done |
i18n-text
섹션 제목: “i18n-text”소스 루트: tsearch, utils/adt/pg_locale*.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-collation-providers | utils/adt/{pg_locale,pg_locale_icu,pg_locale_libc,pg_locale_builtin}.c, commands/collationcmds.c | 3 | done |
postgres-encoding | utils/mb/* | 3 | done |
postgres-full-text-search | tsearch/*, GIN 연동 | 3 | done |
utilities
섹션 제목: “utilities”소스 루트: src/bin/*, bootstrap, catalog/genbki.pl.
| 문서 (슬러그) | Source anchor | P | 상태 |
|---|---|---|---|
postgres-initdb-bootstrap-genbki | src/bin/initdb, bootstrap/bootstrap.c, catalog/genbki.pl + pg_*.dat → .bki 코드 생성 | 2 | done |
postgres-pg-dump-restore | src/bin/pg_dump/* | 2 | done |
postgres-pg-upgrade | src/bin/pg_upgrade/* | 3 | done |
postgres-pg-basebackup | src/bin/pg_basebackup/* | 3 | done |
postgres-pg-rewind | src/bin/pg_rewind/* | 4 | done |
postgres-pg-waldump | src/bin/pg_waldump/* | 4 | done |
postgres-psql | src/bin/psql/* | 3 | done |
postgres-pg-ctl-controldata | src/bin/{pg_ctl,pg_controldata}, xlog.c의 control-file 처리 | 3 | done |
진화 문서 백로그
섹션 제목: “진화 문서 백로그”진화 문서(doc_type: evolution)는 단일 서브시스템의 아키텍처 변천을 주요 릴리스 단위로 추적한다. ## 절 하나가 하나의 시대(era)를 담당하며, 타임라인 Mermaid 다이어그램, 이전/이후 구조 비교, 현재 상태 모듈 문서 교차 링크를 포함한다. 진화 문서는 서브시스템이 ≥3개의 구조적으로 뚜렷한 시대를 가진 경우에만 작성 근거가 생긴다. 모두 planned 상태이며, 각 서브시스템의 현재 상태 모듈 문서 이후에 위치한다.
| 진화 문서 (슬러그) | 아크 | 상태 |
|---|---|---|
postgres-evolution-replication | WAL 파일 배송 → 스트리밍(9.0) → 동기/캐스케이딩(9.1–9.2) → 논리 디코딩(9.4) → pub/sub 논리 복제(10) → 개선(14–18, failover 슬롯 포함) | done |
postgres-evolution-vacuum-visibility | lazy vacuum → HOT(8.3) → visibility map(8.4) → freeze map(9.6) → 병렬 vacuum(13) → autovacuum + wraparound 강화 | done |
postgres-evolution-partitioning | 상속/제약 제외 → 선언적 파티셔닝(10) → partition-wise join/agg(11) → 런타임 pruning(11) → 이후 개선 | done |
postgres-evolution-parallel-query | 도입(9.6) → 병렬 join/agg(10) → 병렬 인덱스 빌드(11), 병렬 vacuum(13), parallel-aware 노드 | done |
postgres-evolution-statistics | stats-collector 프로세스 → 확장 통계(10) → 공유 메모리 누적 통계(15) | done |
postgres-evolution-pluggable-storage | 고정 힙 → table access method API(12) → 커스텀 AM, 컬럼형 스토리지 환경 | done |
postgres-evolution-io-async | 버퍼 I/O → posix_fadvise 프리페치 → WAL 프리페치(15) → async I/O io_uring/worker(18) | done |
이론 및 README 앵커 전략
섹션 제목: “이론 및 README 앵커 전략”각 모듈 문서의 “Theoretical Background”(§1)와 “Beyond PostgreSQL”(§6)은 우선순위 순으로 네 가지 앵커 소스에서 내용을 가져온다.
- 해당 서브시스템의 in-tree README — CUBRID의 벤더 덱과 유사하지만, 항상 최신이고 정확하다. PostgreSQL의 in-tree README는 일급 설계 문서이며, Theoretical/Approach 절에서 반드시 활용하고
sources:에 인용해야 한다. 확인된 README 목록(모듈별로 존재 여부 확인 필요):access/transam/README(+README.parallel),access/nbtree/README,access/gin/README,access/gist/README,access/spgist/README,access/brin/README,access/hash/README,access/heap/README.HOT,storage/buffer/README,storage/lmgr/README+README-SSI,optimizer/README,replication/README,utils/mmgr/README. knowledge/research/dbms-papers/— 큐레이션된 1차 소스 트리. PG 관련 캡처 중 이미 존재하는 것:aries.md(→ recovery-redo, xlog-wal),systemr.md+systemr-optimizer.md(→ planner, cost-model),occ.md(→ mvcc, ssi),btree.md(→ nbtree),rstar-tree.md(→ gist),scalable-lock-manager.md(→ lock-manager),goes-around.md+fntdb07-architecture.md(→ architecture-overview, design-philosophy).knowledge/research/dbms-general/—database-internals.md,database-system-concepts.md(일반 교재 프레임); 복제/일관성 분야는 Designing Data-Intensive Applications도 참조.- PG 관련 논문 (수록 완료 —
dbms-papers/에 캡처 13편 +raw/dbms/papers/에 원본 PDF): design-of-postgres(→ architecture-overview, design-philosophy, extensibility), implementation-of-postgres(→ storage, no-overwrite/MVCC 계보), postgres-storage-system, postgres-data-model, postgres-next-generation, ssi-ports-grittner + ssi-cahill + making-si-serializable(→ ssi-predicate-locking), berenson-isolation(→ mvcc-snapshots, ssi), gist(→ gist), lehman-yao(→ nbtree), seltzer-yigit-hash(→ hash-index), fong-optimizer(→ planner, cost-model). 13편 모두 수록 완료; 모듈 문서에서 직접 인용 가능하다.
비목표 / 범위 외
섹션 제목: “비목표 / 범위 외”아래 항목은 제약이 변경되지 않는 한 독립 문서를 작성하지 않는다.
contrib/전체. 트리는 코어 전용이다.contrib/postgres_fdw,pg_stat_statements,bloom및 기타 모든 contrib 모듈은 분석 대상이 아니다. 이들이 기반으로 삼는 인코어 메커니즘은 커버된다.postgres-fdw.md는 인코어 FDW 기계(foreign/,fdwapi.h)를 문서화하며postgres_fdw는 정식 예시로 이름만 언급할 수 있다.postgres-hooks.md는pg_stat_statements가 활용하는 hook 전역 변수를 문서화하고 해당 익스텐션 자체는 다루지 않는다.- PG19 전용 기능. 버전 핀은
REL_18_STABLE(커밋273fe94)이다. PG19 전용 항목은 존재한다고 기술해서는 안 된다. 특히XLOG2리소스 매니저와 온라인 데이터 체크섬 워커BackendType(B_DATACHECKSUMSWORKER_*)이 해당된다. PG18 기능(async I/O, WAL 요약, 증분 백업, 누적 통계)은 범위 내다. - 백엔드 libpq 이외의 클라이언트 드라이버.
client-protocol서브카테고리는src/backend/libpq/+tcop/postgres.c의 백엔드(서버 측) FE/BE 와이어 프로토콜, 인증, TLS/GSSAPI를 다룬다. 클라이언트 측 libpq 라이브러리(src/interfaces/libpq), ECPG, 기타 언어 드라이버(JDBC, psqlODBC, Python/Go/Rust 드라이버)는 범위 밖이다. - 테스트 프레임워크. 회귀 테스트 하네스(
src/test/regress,pg_regress), TAP 테스트(src/test/perl,src/bin/**/t/*.pl), isolation tester(src/test/isolation),src/test/modules는 문서화 대상이 아니다. 해당 테스트가 검증하는 엔진 불변성은 테스트 하네스 문서가 아닌 대응 서브시스템 문서에 기술한다. - 심볼 단위 커버리지. 이 맵은 모듈 단위 커버리지를 다룬다. 어떤 함수·구조체가 산문으로 설명되지 않았는지는 추적하지 않는다. 그 역할은 각 문서의 position-hint 테이블이 담당한다.
- 빌드/패키징 및 플랫폼 글루.
src/tools,config/, meson / autoconf 빌드,src/port/src/common은 모듈 문서가 필요로 하는 범위(예: spinlock의port/atomics)에서만 언급되며 독립 문서를 갖지 않는다.
이 맵을 확장하는 방법
섹션 제목: “이 맵을 확장하는 방법”문서의 상태가 변경될 때(예: 저자가 시작하거나 완료할 때):
- 해당 서브카테고리 테이블의 Status 셀을 수정한다(
planned→in progress→done). - 이 문서(및 bilingual 규칙에 따라 KO 미러)의
updated:를 갱신한다. /kb-index knowledge/code-analysis/postgres를 실행하여README.md를 갱신한다.
계획의 카탈로그에 없던 새 모듈이 소스 트리에 등장할 때:
- 13개 서브카테고리 중 하나를 결정한다.
- 슬러그와 소스 앵커를 포함한 planned 행을 추가하고, 두 문서가 동기화 상태를 유지하도록 계획의 모듈 카탈로그(
.omc/plans/postgres-analysis-plan.md§6)에도 결정 사항을 기록한다.
비목표 항목이 목표로 전환될 때(예: 특정 contrib 모듈 분석을 결정할 때):
- 해당 항목을 비목표에서 적절한 서브카테고리 테이블로 이동시키고, planned 행으로 추가하면서 변경 이유를 간략히 기록한다.
인접 문서
섹션 제목: “인접 문서”README.md— 프론트매터summary:에서 자동 생성되는 문서별 카탈로그.postgres-architecture-overview.md— 7축 스파인: 프로세스 모델, 공유 메모리/IPC 기반, WAL 내구성 스파인, 스토리지 및 플러그형 접근 방법, 쿼리 파이프라인, 카탈로그+캐시 레이어, 확장성 인터페이스. 축마다 Mermaid 다이어그램 하나씩, 모든 세부 문서를 forward-reference한다..omc/plans/postgres-analysis-plan.md— 이 맵이 추적하는 운영 저작 계획(축 집합 §4, 분류 체계 §5, 모듈 카탈로그 §6, DoD §8).knowledge/methodology/code-analysis-doc.md— 모듈 문서 작성에 사용하는 7절 플레이북.cubrid-coverage.md— 이 맵의 모델이 된 CUBRID 커버리지 맵.