문서번호 : 11-4359659
Document Information
•
최초 작성일 : 2026.03.26
•
최종 수정일 : 2026.03.26
•
이 문서는 아래 버전을 기준으로 작성되었습니다.
◦
SinglestoreDB : 9.0.16
Goal
이 문서에서는 USD의 object storage와 로컬 디스크 간 데이터 upload 및 download 변화 추이를 관찰하는 방법을 설명합니다.
Solution
Unlimited Storage Database
USD (Unlimited Storage Database)는 데이터를 object storage에 저장하고, 로컬 디스크와 메모리에서 처리하는 구조로, 저장 공간과 처리 공간을 분리한 데이터베이스입니다. 데이터는 object storage에 저장되므로 로컬 디스크 크기에 제약받지 않고, object storage의 가용량(퍼블릭 클라우드 기준 사실상 무제한)까지 확장할 수 있습니다. 또한 데이터 압축과 비동기 업데이트를 통해 비용 효율성을 높이고, PITR(Point-in-Time Recovery)을 지원해 안정성을 확보합니다.
USD는 object storage, 로컬 디스크, 메모리로 구성된 3-tier 구조로 동작합니다. 따라서 일반적인 LSD(Local Storage Database)의 리소스 모니터링 항목뿐만 아니라, object storage와 로컬 디스크 간 데이터 이동에 대한 모니터링도 함께 필요합니다.
USD에서는 로컬 디스크 영역을 일종의 캐시로 사용하며, 이를 내부적으로는 blob cache 또는 Persistent cache라고 지칭합니다.
주요 모니터링 지표
아래 관측 지표는 v9.0.16 을 기준으로 확인된 지표입니다. 하위 버전의 엔진에서는 조회가 불가한 지표가 포함되어있을 수 있으니 참고하시기 바랍니다.
•
information_schema.MV_BOTTOMLESS_STATUS_EXTENDED
클러스터에 있는 모든 USD 에 대한 세부 정보를 제공하는 view 로 노드가 마지막으로 start 된 후부터 누적된 값이 조회됩니다. (노드를 restart 하면 reset되는 데이터)
컬럼명 | 설명 |
BACKGROUND_THREAD_UPLOADS | background 스레드가 수행한 업로드 수 |
INGEST_THREAD_UPLOADS | ingest 스레드가 수행한 업로드 수 |
UPLOADED_BYTES | object storage 로 업로드된 데이터 사이즈 (단위: bytes) |
UPLOAD_QUEUE_WAIT_SECS | object storage 로 업로드가 지연되는 시간 (단위: secs) |
BLOB_CACHE_DOWNLOADED_BYTES | blob 캐시가 object storage 에서 다운로드한 파일 사이즈 (단위: bytes) |
BLOB_CACHE_DOWNLOADED_FILES | blob 캐시가 object storage 에서 다운로드한 파일 수 |
BLOB_CACHE_DOWNLOAD_MB_PER_SEC | blob 캐시가 object storage 에서 파일을 다운로드하는 속도 (단위: mb/sec) |
BLOB_CACHE_EVICTED_BYTES | blob 캐시에서 삭제한 파일 사이즈 (단위: bytes) |
BLOB_CACHE_EVICTED_FILES | blob 캐시에서 삭제한 파일 수 |
BLOB_CACHE_EVICTION_MB_PER_SEC | blob 캐시에서 파일을 제거하는 속도 (단위: mb/sec) |
IS_BEING_RATE_LIMITED | API request 의 속도 제한 여부 |
NUM_SLOW_DOWNS | API request 가 속도 제한된 경우 속도 저하 발생 횟수 |
UPLOAD_QUEUE_WAIT_SECS | object storage 로 업로드가 지연되는 시간(초) |
주의 - MV_BOTTOMLESS_STATUS_EXTENDED 조회 시 유의 사항
아래 컬럼은 object storage 에 직접 접근하여 값을 조회합니다. 따라서 네트워크 장애 또는 object storage 접근 불가 상황이 발생할 경우, 해당 컬럼을 포함한 쿼리는 응답이 지연되거나 hang 상태처럼 보일 수 있습니다. 따라서 해당 컬럼들을 포함한 조회 시 주의가 필요합니다.
(참고 - MV_BOTTOMLESS_REMOTE_STATS 뷰의 모든 컬럼도 object storage 에 직접 접근하여 값을 조회)
CLEANUP_LSN | LOCAL_LOG_FILES |
REMOTE_LOG_CHUNKS | LOG_FILE_LIST |
REMOTE_SNAPSHOTS | SNAPSHOT_FILE_LIST |
•
information_schema.MV_BOTTOMLESS_API_EVENTS
엔진에서 발생하는 모든 원격 API 호출에 대한 세부 정보를 제공하는 view로 노드가 마지막으로 start 된 후부터 가장 최근의 115,122개 이벤트만 저장됩니다. (노드를 restart 하면 기존 정보가 사라지는 휘발성 데이터)
컬럼명 | 설명 |
EVENT_TYPE | 발생하는 API 이벤트 유형
(List / Delete / Upload / Download / Copy) |
FILE_TYPE | API 이벤트가 처리하는 파일 유형
(Blob / Snapshot / Log Chunk / Milestone / Datetime to Version / Metadata / Backup Blob / Backup Snapshot) |
EVENT_STATE | API 이벤트의 상태
(In Progress / Succeeded / Failed) |
START_UNIX_TIMESTAMP | API 이벤트가 시작된 타임스탬프 |
TIME_TAKEN_SECS | API 이벤트 소요 시간(단위: secs) |
COMPRESSED_BYTES | API 이벤트에서 처리되는 압축된 데이터의 크기 (단위: bytes) |
UNCOMPRESSED_BYTES | API 이벤트에서 처리되는 압축되지 않은 데이터의 크기 (단위: bytes) |
ERROR_CODE | API 이벤트의 오류 코드, 오류가 없으면 NULL |
ERROR_MESSAGE | API 이벤트의 오류 메시지 |
References
History
일자 | 작성자 | 비고 |
2026.03.26 | mk.kang | 최초 작성 |



