파티션
파티션 화면에서는 테이블의 데이터가 클러스터 노드에 얼마나 고르게 나뉘어 있는지 확인할 수 있습니다. SingleStore는 테이블을 여러 파티션으로 쪼개 노드에 분산하는데, 이 분산이 한쪽으로 치우치면 특정 노드만 일을 더 많이 하게 됩니다. 이 화면은 치우침을 평균 대비 편차로 보여 줘서 균형이 깨진 테이블을 찾도록 돕습니다.
파티션이 무엇인가
쉽게 말하면 파티션은 큰 테이블을 여러 조각으로 나눠 노드에 흩어 두는 단위입니다. 데이터가 고르게 흩어지면 노드들이 일을 나눠 처리할 수 있어 빠릅니다. 반대로 한 노드에 조각이 몰리면 그 노드가 병목이 됩니다. 그래서 분산 데이터베이스에서는 파티션이 고르게 퍼져 있는지가 중요합니다.
파티션 배치도(호스트별)
화면 상단에서 클러스터를 선택하면, 데이터베이스별로 파티션이 어느 호스트(리프 노드)에 배치됐는지 격자로 보여 줍니다. 데이터베이스마다 전체 파티션 수(예: PARTITIONS=16)가 표시되고, 각 파티션 칸의 색으로 쏠림 상태를 구분합니다. 전체 호스트·전체 DB 필터로 범위를 좁힐 수 있습니다.
| 상태 | 의미 |
|---|---|
| Hot | 평균 대비 2배 이상 |
| Warning | 평균 대비 1.5배 이상 |
| Normal | 정상 범위 |
| Empty | 행이 없는 파티션(rows=0) |
| Offline | 오프라인 파티션 |
Table-level Partition Distribution
화면 중심에는 테이블별 파티션 분산 현황 표가 있습니다. 각 테이블이 노드에 얼마나 고르게 분산됐는지를 Avg Deviation으로 보여 줍니다. Avg Deviation은 Max / Avg, 즉 가장 큰 파티션이 평균의 몇 배인지를 나타내는 배수입니다. 값이 1배에 가까울수록 고르게 분산된 상태이고, 클수록 특정 파티션에 쏠려 있다는 뜻입니다. 표는 기본적으로 Avg Deviation 기준 내림차순으로 정렬되어, 가장 치우친 테이블이 위로 올라옵니다.
표의 컬럼은 다음과 같습니다.
| Column | Description |
|---|---|
Table | 데이터베이스.테이블 이름 |
Storage | 스토리지 엔진(ROWSTORE / COLUMNSTORE) |
Shard Key | 데이터를 노드에 나누는 기준 컬럼 |
Cardinality | Shard Key의 고유값 수 |
Partitions | 전체 파티션 수 |
Used Parts | 데이터가 들어 있는 파티션 수 |
Total Rows | 전체 행 수 |
Total Size | 전체 크기 |
Max Part Size | 가장 큰 파티션 크기 |
Avg Deviation | 노드 간 쏠림 배수(Max / Avg) |
Shard Key와 Cardinality를 함께 보면 쏠림의 원인을 짚을 수 있습니다. Shard Key의 고유값이 적으면(낮은 Cardinality) 같은 값이 한 파티션에 몰려 쏠림이 생기기 쉽습니다.
상태는 Avg Deviation 값으로 다음과 같이 구분합니다.
| 상태 | 기준 |
|---|---|
| Healthy | < 1.5x |
| Warning | 1.5x ~ 2x |
| Critical | ≥ 2x 또는 빈 파티션 존재 |
노드별 통계 수집 기준에 미치지 못하는 테이블은 분산을 평가하기 어려워 N/A로 처리하며 표에서 제외합니다. 신뢰할 수 있는 데이터만 비교하기 위한 동 작입니다. 전체 상태·Top 5 필터로 표시 범위를 조절할 수 있습니다.
Row Count Growth (Top 5 Hot Partitions)
행 수가 빠르게 늘어나는 파티션 상위 5개를 추이로 보여 줍니다. 각 항목은 P#파티션번호 테이블 (노드) 형식으로 표시됩니다(예: P#9 merge_active_demo (LF-153)). 데이터가 급격히 늘어나는 파티션은 머지않아 분산 균형이 깨질 수 있어 미리 살펴보면 도움이 됩니다.
파티션 상세 드로어
표에서 테이블 행을 클릭하면 파티션 상세 드로어가 열립니다. 드로어는 디스크와 메모리 사용량을 두 영역으로 나눠 게이지로 보여 주며, 행 수·크기·스큐 같은 핵심 지표(KPI)를 함께 표시합니다.
조회 시점
화면은 범위 타임셀렉터(RangeTimeSelector)를 사용하며 기본 범위는 금일(00:00부터 다음 날 00:00까지)입니다. Quick 버튼으로 6시간·12시간·금일·어제·2일 전·7일 전·30일 전을 빠르게 선택할 수 있습니다.
파티션 데이터는 1시간 단위로 수집됩니다. 조회 범위를 1시간보다 짧게 설정하면 데이터가 보이지 않을 수 있어 1시간 이상으로 설정하는 것을 권장합니다.
조회 범위가 1시간 미만이거나 24시간을 초과하면 화면에 안내 박스가 나타납니다. 표시되는 값은 범위 내 마지막 수집값(LAST-ONLY)입니다.