“CXL 메모리는 DRAM보다 느립니다”라는 설명은 사실이지만 시스템 판단에는 부족합니다. 벡터 스캔은 전체 읽기 대역폭에 제한될 수 있습니다. B+트리 탐색은 앞 노드를 읽어야 다음 주소를 알 수 있어 종속 load 지연에 민감합니다. 선택률이 높은 필터는 컬럼을 읽고 결과 목록을 많이 써야 하므로 쓰기 대역폭이 중요합니다. 완전한 분석 질의는 일부 컬럼을 반복해서 읽지만 기본 테이블의 대부분은 거의 접근하지 않습니다. 평균 지연 비율 하나로 네 경우를 예측할 수 없습니다.
Hasso Plattner Institute, SAP, IT University of Copenhagen, Technical University of Munich 연구진이 쓴 이 PVLDB 논문은 링크에서 전체 데이터베이스까지 측정 범위를 단계적으로 넓힙니다.[1] 서버에는 DDR5-5200 채널 8개와 실물 PCIe 5.0 x16 CXL Type-3 장치 4개가 있습니다. 원시 접근, 벡터 스캔, 동시 B+트리, Hyrise의 TPC-H를 측정합니다. 원거리 메모리가 항상 로컬에 가깝다는 주장이 아니라 배치를 결정하는 방법을 제시합니다.
장치 수로 구분하는 지연과 대역폭
로컬 DRAM은 CPU 가까이 있는 메모리 채널로 확장합니다. CXL은 독립된 컨트롤러와 링크를 추가합니다. 평가 장비에서 DDR 채널 하나의 명목 데이터율은 41.6GB/s이고, x16 CXL 링크 하나의 명목 선속도는 64GB/s입니다. 프로토콜 오버헤드, 장치 컨트롤러, CPU의 요청 생성 능력이 실제 처리량을 결정하므로 두 명목값을 직접 비교할 수는 없습니다.
핵심 실험은 CXL 장치 수를 1개에서 4개까지 바꿉니다. 장치를 늘릴 때 성능이 오르면 CXL 대역폭이나 컨트롤러 큐가 병목이었습니다. 거의 변하지 않으면 종속 지연, CPU 실행, 다른 자원이 제한 요소입니다. 로컬 NUMA 노드 하나와 CXL NUMA 노드 하나만 비교하는 것보다 장치 수 스윕이 더 많은 정보를 줍니다.
CXL 메모리는 64바이트 캐시라인 단위로 호스트의 캐시 일관성 영역에 들어갑니다. CPU 홈 에이전트가 일관성을 처리하고 운영체제는 장치 메모리를 NUMA 노드로 노출합니다. 이 구성은 스위치를 거치는 여러 호스트 풀이 아니라 직접 연결 확장입니다. 풀에 필요한 배치 근거는 제공하지만 스위치 지연, 패브릭 공유, 다른 호스트의 트래픽은 포함하지 않습니다.

벡터 스캔의 읽기·쓰기 구분
스캔 마이크로벤치마크는 스레드마다 4바이트 정수 512MiB 컬럼을 주고 AVX-512의 less-than 조건을 적용합니다. 조건에 맞는 행은 4바이트 튜플 식별자(TID)를 결과 목록에 씁니다. 선택률이 0.1%면 대부분 읽기이고, 100%면 거의 모든 값마다 TID를 씁니다.
데이터를 CPU 메모리에 둘 때 읽기 중심 스캔은 약 260GB/s에 도달합니다. 선택률 100%에서는 결과 쓰기가 제한 요소가 되어 약 84GB/s에서 멈춥니다. 컬럼과 TID를 CXL 장치 하나에 모두 두는 구성이 가장 불리합니다. 장치 4개는 전체 대역폭을 늘려 특히 대역폭 제한 구간을 개선합니다.
더 유용한 배치는 입력과 출력을 분리합니다. 차갑고 읽기 전용인 컬럼은 CXL에 두고 TID 목록은 로컬 DRAM에 남길 수 있습니다. 수명이 짧은 결과에 한정된 CXL 쓰기 대역폭을 쓰지 않는 방식입니다. 이 판단은 다른 연산에도 적용됩니다. 오래 유지하는 읽기 중심 상태와 쓰기가 많은 임시 상태를 같은 연산이 소유한다는 이유로 한 번에 옮기면 안 됩니다.
B+트리에서 달라지는 병목
연구진은 1억 개 레코드를 가진 BTreeOLC에 Zipf 분포의 1억 번 연산을 실행합니다. 한 작업은 읽기 95%, 삽입 5%이고 다른 작업은 비율이 반대입니다. 초기 트리 노드 크기는 1KiB입니다. 노드를 모두 CXL에 둘 때 장치 4개는 1개보다 전체 대역폭이 큽니다.
읽기 중심 작업은 포인터를 따라가는 종속 지연에 계속 민감합니다. 현재 노드를 읽어야 다음 노드를 요청할 수 있어 장치를 늘려도 병렬성을 무한히 만들지 못합니다. 쓰기 중심 작업은 대역폭 제한이 커져 장치 4개의 효과가 더 큽니다. Intel top-down 카운터로 유효 실행, 프런트엔드, 잘못된 추측, 백엔드 정지를 구분하고, 메모리 제한 구간을 지연과 대역폭으로 다시 나눕니다.
노드 크기는 이종 메모리에서 고정된 소프트웨어 세부사항이 아닙니다. 논문은 256바이트에서 4KiB까지 바꿉니다. 작은 노드는 접근 바이트를 줄이지만 종속 탐색 횟수를 늘리고, 큰 노드는 더 많은 데이터를 읽고 수정해 대역폭 제한을 키웁니다. 로컬 DRAM, CXL 장치 1개, 4개에서 처리량이 가장 높은 노드 크기가 서로 다릅니다. 배치가 맞아도 데이터 구조를 그대로 옮기면 CXL의 대역폭을 충분히 쓰지 못할 수 있습니다.
접근 카운터를 배치 정책으로 바꾸는 TPC-H
Hyrise는 오픈소스 컬럼형 인메모리 데이터베이스입니다. 테이블을 청크와 컬럼 세그먼트로 나누고, 다형 메모리 자원(PMR)으로 할당 위치를 정하며, 순차·단조·무작위·점 접근 횟수를 기록합니다. 논문은 페이지 인터리빙과 컬럼 단위 배치를 비교합니다.
더 많은 CXL 장치에 페이지를 round-robin으로 나누면 대역폭이 늘어 TPC-H 처리량이 올라갑니다. CPU와 CXL 사이의 가중 페이지 인터리빙은 로컬 용량과 성능을 교환하지만, 페이지에는 데이터의 중요도가 드러나지 않습니다. 자주 읽는 컬럼과 거의 읽지 않는 컬럼이 같은 비율로 섞일 수 있습니다.
컬럼 배치는 측정한 접근 빈도를 사용합니다. 가장 자주 읽는 컬럼은 CPU 메모리에 두고, 차가운 기본 테이블 컬럼은 CXL 장치로 보냅니다. 질의 실행 중 생성하는 임시 데이터는 로컬에 남깁니다. 논문의 동시 TPC-H 작업에서 이 정책은 테이블 데이터 80% 이상을 CXL에 두면서 전체 로컬 처리량의 85% 이상을 유지합니다. 다른 질의 조합에서는 뜨거운 컬럼과 필요한 로컬 용량이 바뀌므로 보편적인 상수가 아니라 평가한 운용 지점입니다.

메모리 풀링에 앞서 필요한 배치 계층
공유 메모리 풀은 더 큰 스위치보다 먼저 이 배치 계층을 필요로 합니다. 풀링은 용량을 유연하게 만들지만 데이터베이스는 무엇을 옮길 수 있는지, 대역폭을 얼마나 쓸지, 어떤 임시 쓰기를 로컬에 남길지 알아야 합니다.[2][3] 오래됐다는 이유만으로 페이지를 보내면 곧 모든 질의가 스캔할 차가운 컬럼을 잘못 분류할 수 있습니다.
장치가 여러 개면 스트라이핑도 결정해야 합니다. 요청이 병렬이고 다운스트림 경로가 독립적일 때만 인터리빙이 대역폭을 늘립니다. 스위치 기반 풀에서는 두 호스트가 같은 장치에 스트라이핑해 로컬 대역폭 확장을 테넌트 간 경합으로 바꿀 수 있습니다. 따라서 논문의 장치 4개 곡선은 경합하는 풀이 얻을 수 있는 상한에 가깝습니다.
비용 결론은 측정 범위 밖입니다. 논문은 저렴하거나 재사용한 메모리를 CXL로 연결하면 서버 비용을 줄일 수 있다고 설명하지만 장치 4개, 스위치, 케이블, 줄인 로컬 DRAM의 가격을 계산하지 않습니다. Pond와 후속 풀 연구가 데이터센터 수준의 경제성을 모델링합니다.[5] 이 논문은 그 비용 모델에 넣을 응용 성능 함수를 제공합니다.
데이터베이스 수용 시험
먼저 순차 읽기, 순차 쓰기, 무작위 읽기, 혼합 읽기·쓰기에 대해 장치 1개, 2개, 4개를 바꿔 측정합니다. 지연, 대역폭, CPU 정지 카운터를 기록해 장치, 루트 컴플렉스, CPU 요청 생성 중 어디가 병목인지 정합니다.
다음에는 응용 구조의 데이터와 임시 결과를 따로 배치합니다. 스캔은 컬럼과 출력 목록을 분리하고, 인덱스는 노드 크기와 읽기·쓰기 비율을 바꿉니다. 질의 엔진은 컬럼 접근 횟수의 시계열을 유지하고 작업부하가 변한 뒤 배치 제어기가 적응하는지 확인합니다.
마지막으로 이 논문이 다루지 않은 풀 조건을 시험합니다. 두 번째 호스트가 공유 CXL 장치 하나를 포화하게 합니다. 서비스 정책은 데이터베이스의 p99 질의 SLO를 지키거나 영향을 받은 컬럼을 옮겨야 합니다. 간섭과 재균형, 장애에서도 유지될 때만 80%와 85%라는 운용 지점이 의미가 있습니다.
이 논문의 장기적인 통찰은 단순하지만 구현하기 어렵습니다. CXL을 느린 힙 하나로 취급해서는 안 됩니다. 서로 다른 지연을 가진 여러 대역폭 영역이며, 데이터베이스 구조가 입력, 출력, 임시 상태의 의미를 시스템에 드러내야 올바르게 배치할 수 있습니다.
출처와 저작권 안내
이 글은 Silicon & Systems가 작성한 편집 분석입니다. 원문의 주장과 결과를 우리 표현으로 다시 썼고 문장, 도판, 표를 복제하지 않았습니다. 본문 도판 두 장은 이 글을 위해 제작했습니다. 원문은 PVLDB, DOI 10.14778/3746405.3746432에서 CC BY-NC-ND 4.0으로 볼 수 있습니다. 저작권은 저자들에게 있고 출판권은 VLDB Endowment에 허여되었습니다. (c) 2025.