해시 인덱스를 제외한 각 힙 및 인덱스 관계에는 관계에서 사용 가능한 공간을 추적하기 위한 FSM(Free Space Map)이 있습니다. 이는 관계의 파일 노드 번호와 a의 이름을 딴 별도의 관계 포크에 기본 관계 데이터와 함께 저장됩니다._fsm접미사. 예를 들어 관계의 파일 노드가 12345인 경우 FSM은라는 파일에 저장됩니다.12345_fsm, 기본 관계 파일과 동일한 디렉터리에 있습니다.
자유 공간 지도는 다음 트리로 구성됩니다.FSM페이지. 최저 수준FSM페이지는 각 페이지를 나타내기 위해 1바이트를 사용하여 각 힙(또는 인덱스) 페이지에서 사용 가능한 여유 공간을 저장합니다. 상위 수준은 하위 수준의 정보를 집계합니다.
각각 내에서FSM페이지는 노드당 1바이트의 배열에 저장된 이진 트리입니다. 각 리프 노드는 힙 페이지 또는 하위 수준을 나타냅니다.FSM페이지. 리프가 아닌 각 노드에는 자식 값 중 더 높은 값이 저장됩니다. 따라서 리프 노드의 최대값은 루트에 저장됩니다.
참조src/backend/storage/freespace/README방법에 대한 자세한 내용은FSM구성되어 있으며 업데이트 및 검색 방법을 설명합니다. 그만큼pg_freespacemap모듈은 자유 공간 지도에 저장된 정보를 조사하는 데 사용할 수 있습니다.