Operations¶
이 페이지는 AkasicDB Vector Edition, Vector Index 제한, index 처리 상태를 확인하는 SQL interface를 다룹니다.
vectoron_edition(): AkasicDB vector edition 조회vectoron_max_indexes(): vector index 개수 제한 조회vectoron_max_vectors_per_index(): index당 vector 수 제한 조회fence_vector_index(...): index 관련 background work가 끝날 때까지 대기vectoron_index_stat: SQL에서 vector index 상태 조회alter_vector_index(...): 지원되는 runtime index option 변경
Edition 및 Limit 확인¶
사용 중인 AkasicDB의 Vector Edition과 Vector Index의 개수 및 항목 수 제한은 아래 SQL 함수를 통해 확인할 수 있습니다.
SELECT
vectoron_edition() AS edition,
vectoron_max_indexes() AS max_indexes,
vectoron_max_vectors_per_index() AS max_vectors_per_index;
| Function | 반환값 |
|---|---|
vectoron_edition() |
AkasicDB vector edition |
vectoron_max_indexes() |
vector index 최대 개수 (NULL: limit 미설정) |
vectoron_max_vectors_per_index() |
index당 최대 vector 수 (NULL: limit 미설정) |
인덱스 처리 대기¶
fence_vector_index는 지정한 AkasicDB vector index의 현재 작업이 끝날 때까지 대기합니다. 인덱스 생성 직후 상태를 확인하거나 측정 쿼리를 실행하기 전에 사용합니다.
Note
Vamana 예제는 vector_l2_ops와 <->를 사용합니다.
CREATE INDEX items_embedding_vamana_idx
ON items
USING vectoron (embedding vector_l2_ops)
WITH (options = $$
[indexing.vamana]
alpha = 1.2
r = 32
l_search = 64
phase = 1
$$);
SELECT fence_vector_index('items_embedding_vamana_idx'::regclass);
fence_vector_index는 성능을 바꾸지 않습니다. 인덱스 작업이 끝난 뒤 상태 확인이나 측정 쿼리를 실행해야 할 때 사용합니다.
인덱스 상태 확인¶
vectoron_index_stat는 AkasicDB vector index 상태를 보여줍니다.
SELECT
tablename,
indexname,
idx_status,
idx_indexing,
idx_tuples,
idx_size
FROM vectoron_index_stat
WHERE indexname = 'items_embedding_vamana_idx';
| Column | Type | 설명 |
|---|---|---|
tablerelid |
oid |
table OID |
indexrelid |
oid |
index OID |
tablename |
name |
table 이름 |
indexname |
name |
index 이름 |
idx_status |
text |
index 상태 |
idx_indexing |
bool |
index 작업 진행 여부 |
idx_tuples |
int8 |
segment 전체의 indexed vector 수 |
idx_sealed |
int8[] |
sealed segment별 vector 수 |
idx_growing |
int8[] |
growing segment별 vector 수 |
idx_write |
int8 |
write buffer의 vector 수 |
idx_size |
int8 |
segment 전체 크기(byte) |
idx_options |
text |
serialized index option |
Segment 상태 확인¶
Segment field는 background work가 진행되는 동안 indexed vector가 어느 segment에 있는지 보여줍니다.
SELECT
indexname,
idx_indexing,
idx_sealed,
idx_growing,
idx_write
FROM vectoron_index_stat
WHERE indexname = 'items_embedding_vamana_idx';
완료 여부는 idx_indexing으로 확인합니다. Segment 분포는 idx_sealed, idx_growing, idx_write로 확인합니다.
Optimization Worker Count 변경¶
alter_vector_index로 기존 vector index의 background optimization worker 수를 변경합니다. 값을 늘리면 segment merge와 optimization 작업의 병렬도가 높아지고 CPU 사용량이 증가합니다. 인덱스를 다시 만들 필요는 없습니다.