2026-04-10 23:20:41 -04:00
---
layout: default
title: "Vektör Depolama Yaşam Döngüsü Yönetimi"
parent: "Turkish (Beta)"
---
2026-04-11 01:49:52 +00:00
# Vektör Depolama Yaşam Döngüsü Yönetimi
2026-04-10 23:20:41 -04:00
> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
2026-04-11 01:49:52 +00:00
## Genel Bakı ş
Bu belge, TrustGraph'ı n farklı arka uç uygulamaları (Qdrant, Pinecone, Milvus) arası nda vektör depolama koleksiyonları nı nası l yönettiğini açı klamaktadı r. Tasarı m, sabit boyut değerleri kullanmadan farklı boyutlara sahip gömülmeleri destekleme zorluğunu ele almaktadı r.
## Problem Tanı mı
Vektör depoları , koleksiyonlar/indeksler oluşturulurken gömme boyutunun belirtilmesini gerektirir. Ancak:
Farklı gömme modelleri farklı boyutlar üretir (örneğin, 384, 768, 1536).
Boyut, ilk gömme oluşturulana kadar bilinmemektedir.
Tek bir TrustGraph koleksiyonu, birden fazla modelden gömmeler alabilir.
Bir boyutu (örneğin, 384) sabit kodlamak, diğer gömme boyutları yla uyumsuzluğa neden olur.
## Tasarı m İlkeleri
1. **Gecikmeli Oluşturma** : Koleksiyonlar, koleksiyon yönetimi işlemlerinin aksine, ilk yazma sı rası nda talep üzerine oluşturulur.
2. **Boyut Tabanlı İsimlendirme** : Koleksiyon adları , gömme boyutunu bir sonek olarak içerir.
3. **Nazik Bozulma** : Var olmayan koleksiyonlara yapı lan sorgular, hatalar yerine boş sonuçlar döndürür.
4. **Çok Boyutlu Destek** : Tek bir mantı ksal koleksiyon, birden fazla fiziksel koleksiyona (her biri bir boyut için bir tane) sahip olabilir.
## Mimari
### Koleksiyon İsimlendirme Kuralı
Vektör depolama koleksiyonları , birden fazla gömme boyutunu desteklemek için boyut soneklerini kullanı r:
**Belge Gömme:**
Qdrant: `d_{user}_{collection}_{dimension}`
Pinecone: `d-{user}-{collection}-{dimension}`
Milvus: `doc_{user}_{collection}_{dimension}`
**Graf Gömme:**
Qdrant: `t_{user}_{collection}_{dimension}`
Pinecone: `t-{user}-{collection}-{dimension}`
Milvus: `entity_{user}_{collection}_{dimension}`
Örnekler:
`d_alice_papers_384` - 384 boyutlu gömmelere sahip Alice'in makale koleksiyonu
`d_alice_papers_768` - Aynı mantı ksal koleksiyon, 768 boyutlu gömmelerle
`t_bob_knowledge_1536` - 1536 boyutlu gömmelere sahip Bob'un bilgi grafiği
### Yaşam Döngüsü Aşamaları
#### 1. Koleksiyon Oluşturma İsteği
**İstek Akı şı :**
```
User/System → Librarian → Storage Management Topic → Vector Stores
```
**Davranı ş:**
Kütüphaneci, `create-collection` isteklerini tüm depolama arka uçları na yayı nlar.
Vektör depolama işlemcileri isteği kabul eder, ancak **fiziksel koleksiyonlar oluşturmaz** .
Yanı t, başarı yla birlikte hemen döndürülür.
Gerçek koleksiyon oluşturma, ilk yazma işlemine kadar ertelenir.
**Gerekçe:**
Boyut, oluşturma zamanı nda bilinmemektedir.
Yanlı ş boyutlara sahip koleksiyonları n oluşturulması engellenir.
Koleksiyon yönetimi mantı ğı nı basitleştirir.
#### 2. Yazma İşlemleri (Gecikmeli Oluşturma)
**Yazma Akı şı :**
```
Data → Storage Processor → Check Collection → Create if Needed → Insert
```
**Davranı ş:**
1. Vektörden gömme boyutunu çı karı n: `dim = len(vector)`
2. Boyut sonekiyle koleksiyon adı nı oluşturun
3. Belirli o boyuta sahip koleksiyonun var olup olmadı ğı nı kontrol edin
4. Yoksa:
Doğru boyuta sahip bir koleksiyon oluşturun
Kaydı tutun: `"Lazily creating collection {name} with dimension {dim}"`
5. Gömme değerini, boyutuna özel koleksiyona ekleyin
**Örnek Senaryo:**
```
1. User creates collection "papers"
→ No physical collections created yet
2. First document with 384-dim embedding arrives
→ Creates d_user_papers_384
→ Inserts data
3. Second document with 768-dim embedding arrives
→ Creates d_user_papers_768
→ Inserts data
Result: Two physical collections for one logical collection
```
#### 3. Sorgu İşlemleri
**Sorgu Akı şı :**
```
Query Vector → Determine Dimension → Check Collection → Search or Return Empty
```
**Davranı ş:**
1. Sorgu vektöründen boyutu çı karı n: `dim = len(vector)`
2. Boyut sonekiyle koleksiyon adı nı oluşturun
3. Koleksiyonun var olup olmadı ğı nı kontrol edin
4. Varsa:
Benzerlik araması yapı n
Sonuçları döndürün
5. Yoksa:
Kaydı tutun: `"Collection {name} does not exist, returning empty results"`
Boş bir liste döndürün (hata yükseltilmez)
**Aynı Sorguda Birden Fazla Boyut:**
Sorgu farklı boyutlardaki vektörler içeriyorsa
Her boyut, ilgili koleksiyonunu sorgular
Sonuçlar birleştirilir
Eksik koleksiyonlar atlanı r (hata olarak değerlendirilmez)
**Gerekçe:**
Boş bir koleksiyonu sorgulamak geçerli bir kullanı m durumudur
Boş sonuçlar döndürmek anlamsal olarak doğrudur
Sistem başlatı lı rken veya veri yüklemesinden önce hataları önler
#### 4. Koleksiyon Silme
**Silme Akı şı :**
```
Delete Request → List All Collections → Filter by Prefix → Delete All Matches
```
**Davranı ş:**
1. Önek kalı bı nı oluştur: `d_{user}_{collection}_` (sonundaki alt çizgiye dikkat edin)
2. Vektör deposundaki tüm koleksiyonları listele
3. Öneğe uyan koleksiyonları filtrele
4. Tüm eşleşen koleksiyonları sil
5. Her silme işlemini kaydet: `"Deleted collection {name}"`
6. Özet günlük: `"Deleted {count} collection(s) for {user}/{collection}"`
**Örnek:**
```
Collections in store:
- d_alice_papers_384
- d_alice_papers_768
- d_alice_reports_384
- d_bob_papers_384
Delete "papers" for alice:
→ Deletes: d_alice_papers_384, d_alice_papers_768
→ Keeps: d_alice_reports_384, d_bob_papers_384
```
**Gerekçe:**
Tüm boyut varyantları nı n tamamen temizlenmesini sağlar.
Desen eşleştirme, yanlı şlı kla ilgili olmayan koleksiyonları n silinmesini önler.
Kullanı cı açı sı ndan atomik bir işlem (tüm boyutlar birlikte silinir).
## Davranı şsal Özellikler
### Normal İşlemler
**Koleksiyon Oluşturma:**
✓ Hemen başarı döndürür.
✓ Herhangi bir fiziksel depolama alanı ayrı lmaz.
✓ Hı zlı işlem (arka uç G/Ç yok).
**İlk Yazma:**
✓ Doğru boyuta sahip koleksiyon oluşturur.
✓ Koleksiyon oluşturma ek yükü nedeniyle biraz daha yavaştı r.
✓ Aynı boyuta yapı lan sonraki yazmalar hı zlı dı r.
**Herhangi Bir Yazmadan Önce Sorgular:**
✓ Boş sonuçlar döndürür.
✓ Herhangi bir hata veya istisna oluşmaz.
✓ Sistem kararlı kalı r.
**Farklı Boyutlara Yazma:**
✓ Otomatik olarak her boyut için ayrı koleksiyonlar oluşturur.
✓ Her boyut kendi koleksiyonunda izole edilir.
✓ Herhangi bir boyut çakı şması veya şema hatası oluşmaz.
**Koleksiyon Silme:**
✓ Tüm boyut varyantları nı kaldı rı r.
✓ Tam temizleme.
✓ Herhangi bir yetim koleksiyon kalmaz.
### Sı nı r Durumlar
**Çoklu Gömülü Model:**
```
Scenario: User switches from model A (384-dim) to model B (768-dim)
Behavior:
- Both dimensions coexist in separate collections
- Old data (384-dim) remains queryable with 384-dim vectors
- New data (768-dim) queryable with 768-dim vectors
- Cross-dimension queries return results only for matching dimension
```
**Eşzamanlı İlk Yazma İşlemleri:**
```
Scenario: Multiple processes write to same collection simultaneously
Behavior:
- Each process checks for existence before creating
- Most vector stores handle concurrent creation gracefully
- If race condition occurs, second create is typically idempotent
- Final state: Collection exists and both writes succeed
```
**Boyutları n Taşı nması :**
```
Scenario: User wants to migrate from 384-dim to 768-dim embeddings
Behavior:
- No automatic migration
- Old collection (384-dim) persists
- New collection (768-dim) created on first new write
- Both dimensions remain accessible
- Manual deletion of old dimension collections possible
```
**Boş Koleksiyon Sorguları :**
```
Scenario: Query a collection that has never received data
Behavior:
- Collection doesn't exist (never created)
- Query returns empty list
- No error state
- System logs: "Collection does not exist, returning empty results"
```
## Uygulama Notları
### Depolama Arka Ucu Özellikleri
**Qdrant:**
Varlı k kontrolleri için `collection_exists()` kullanı lı r.
Silme sı rası nda listeleme için `get_collections()` kullanı lı r.
Koleksiyon oluşturma `VectorParams(size=dim, distance=Distance.COSINE)` gerektirir.
**Pinecone:**
Varlı k kontrolleri için `has_index()` kullanı lı r.
Silme sı rası nda listeleme için `list_indexes()` kullanı lı r.
İndeks oluşturma, "hazı r" durumunu bekleme gerektirir.
Sunucusuz yapı landı rma, bulut/bölge ile yapı lı r.
**Milvus:**
Doğrudan sı nı flar (`DocVectors` , `EntityVectors` ), yaşam döngüsünü yönetir.
Performans için dahili önbellek `self.collections[(dim, user, collection)]` .
Koleksiyon adları , yalnı zca alfanümerik ve alt çizgi içeren şekilde temizlenir.
Otomatik artan kimliklere sahip şema desteği.
### Performans Hususları
**İlk Yazma Gecikmesi:**
Koleksiyon oluşturma nedeniyle ek yük.
Qdrant: ~100-500ms
Pinecone: ~10-30 saniye (sunucusuz sağlama)
Milvus: ~500-2000ms (indekslemeyi içerir)
**Sorgu Performansı :**
Varlı k kontrolü, minimum ek yük ekler (~1-10ms).
Koleksiyon mevcut olduğunda performans üzerinde etkisi yoktur.
Her boyut koleksiyonu, bağı msı z olarak optimize edilir.
**Depolama Yükü:**
Her koleksiyon için minimum meta veri.
Ana yük, boyut başı na depolamadı r.
Dengeleme: Depolama alanı ile boyut esnekliği.
## Gelecek Hususlar
**Otomatik Boyut Birleştirme:**
Kullanı lmayan boyut varyantları nı belirlemek ve birleştirmek için arka plan işlemi eklenebilir.
Yeniden gömme veya boyut azaltma gerektirecektir.
**Boyut Keşfi:**
Bir koleksiyon için kullanı lan tüm boyutları listelemek için bir API açı labilir.
Yönetim ve izleme için kullanı şlı dı r.
**Varsayı lan Boyut Tercihi:**
Her koleksiyon için "birincil" boyut izlenebilir.
Boyut bağlamı kullanı lamadı ğı nda sorgular için kullanı lı r.
**Depolama Kotaları :**
Her koleksiyon için boyut limitleri gerekebilir.
Boyut varyantları nı n yayı lması nı önler.
## Geçiş Notları
**Ön Boyut-Sonek Sisteminden:**
Eski koleksiyonlar: `d_{user}_{collection}` (boyut soneki yok)
Yeni koleksiyonlar: `d_{user}_{collection}_{dim}` (boyut soneki ile)
Otomatik geçiş yok - eski koleksiyonlar erişilebilir durumda kalı r.
Gerekirse, manuel bir geçiş betiği düşünülmelidir.
Her iki adlandı rma şeması de aynı anda kullanı labilir.
## Referanslar
Koleksiyon Yönetimi: `docs/tech-specs/collection-management.md`
Depolama Şeması : `trustgraph-base/trustgraph/schema/services/storage.py`
Kütüphaneci Hizmeti: `trustgraph-flow/trustgraph/librarian/service.py`