동적 I/O 효율 플래너 스카이라인 범위 쿼리: 최악 사례 보장과 공간 최적화
초록
이 논문은 평면 상의 3면 직교 스카이라인 보고 쿼리를 완전 동적으로 지원하는 I/O‑효율 자료구조를 제시한다. 쿼리와 업데이트 모두 최악 사례에서 각각 O(log_{2B^ε} n + t/B^{1‑ε}) 와 O(log_{2B^ε} n) I/O를 보장하며, 사용 메모리는 O(n/B^{1‑ε}) 블록에 불과하다. 핵심은 Sundar의 “attrition” 우선순위 큐를 확장해 DeleteMin·CatenateAndAttrite 연산을 O(1) 최악 I/O(또는 메모리 상에 상수 블록이 적재돼 있을 때 O(1/B) 평균)로 수행하도록 만든 것이다. 또한 4면 스카이라인(지배 최대점) 정적 구조에 대해 공간 하한 Ω(n log n / log log n) 을 증명한다.
상세 분석
본 연구는 외부 메모리 모델에서 평면 점 집합에 대한 동적 3‑면 직교 스카이라인 보고 쿼리를 최초로 최악 사례 시간 보장을 제공하는 구조로 구현한다는 점에서 의미가 크다. 기존 연구들은 정적 상황이나 평균‑case 분석에 머물렀으며, 동적 업데이트 시 I/O 비용이 로그‑선형 혹은 비정형적이었다. 저자들은 이를 극복하기 위해 두 가지 핵심 아이디어를 도입한다. 첫째, Sundar가 제안한 “priority queue with attrition”(PQA)을 외부 메모리 환경에 맞게 변형한다. PQA는 삽입·삭제·attrition(작은 원소를 제거) 연산을 O(1) I/O로 처리하도록 설계된 구조인데, 여기서는 DeleteMin와 CatenateAndAttrite 연산을 추가로 지원하도록 확장한다. DeleteMin은 현재 최소 원소를 반환하고 제거하며, CatenateAndAttrite는 두 큐를 연결하면서 동시에 작은 원소들을 attrition(제거)한다. 이러한 연산을 O(1) 최악 I/O, 혹은 메모리 상에 상수 개수의 블록이 이미 로드돼 있을 경우 O(1/B) 평균 I/O로 구현함으로써, 대규모 데이터에서도 메모리 접근을 최소화한다.
둘째, 이 확장된 PQA를 B‑트리 기반의 다중 레벨 인덱스와 결합한다. 데이터는 x‑좌표를 기준으로 B‑트리 형태로 정렬하고, 각 노드에 해당 서브트리의 y‑좌표에 대한 스카이라인 정보를 PQA 형태로 저장한다. 3‑면 쿼리(예: