update more languages

Signed-off-by: Alex Jenkins <kjenkins60@gatech.edu>
This commit is contained in:
Alex Jenkins 2026-04-11 01:08:44 +00:00
parent 835acaa70e
commit 16c2f12a54
249 changed files with 117186 additions and 186 deletions

View file

@ -8,6 +8,7 @@ GraphQL sorgu hizmeti, Cassandra'da depolanan yapılandırılmış verileri sorg
## Hedefler
<<<<<<< HEAD
**Dinamik Şema Desteği**: Hizmeti yeniden başlatmaya gerek kalmadan yapılandırmadaki şema değişikliklerine otomatik olarak uyum sağlayın.
**GraphQL Standartlarına Uygunluk**: Mevcut GraphQL araçları ve istemcileriyle uyumlu, standart bir GraphQL arayüzü sağlayın.
**Verimli Cassandra Sorguları**: GraphQL sorgularını, bölüm anahtarlarını ve dizinleri dikkate alarak verimli Cassandra CQL sorgularına dönüştürün.
@ -32,6 +33,32 @@ Cassandra tablolarını sorgulamak için standart bir GraphQL arayüzü.
TrustGraph yapılandırmasından dinamik olarak GraphQL şemaları oluşturma.
GraphQL sorgularını Cassandra CQL'ye verimli bir şekilde dönüştürme.
Alan çözümleyicileri aracılığıyla ilişki çözümlemesini destekleme.
=======
**Dinamik Şema Desteği**: Hizmeti yeniden başlatmadan yapılandırmadaki şema değişikliklerine otomatik olarak uyum sağlama
**GraphQL Standartlarına Uygunluk**: Mevcut GraphQL araçları ve istemcileriyle uyumlu, standart bir GraphQL arayüzü sağlama
**Verimli Cassandra Sorguları**: GraphQL sorgularını, bölüm anahtarlarını ve dizinleri dikkate alarak verimli Cassandra CQL sorgularına çevirme
**İlişki Çözümleme**: Farklı nesne türleri arasındaki ilişkiler için GraphQL alan çözümleyicilerini destekleme
**Tür Güvenliği**: Şema tanımlarına dayalı olarak tür güvenli sorgu yürütme ve yanıt oluşturma
**Ölçeklenebilir Performans**: Uygun bağlantı havuzu ve sorgu optimizasyonu ile eşzamanlı sorguları verimli bir şekilde işleme
**İstek/Yanıt Entegrasyonu**: TrustGraph'ın Pulsar tabanlı istek/yanıt kalıbıyla uyumluluğu koruma
**Hata İşleme**: Şema uyumsuzlukları, sorgu hataları ve veri doğrulama sorunları için kapsamlı hata raporlama sağlama
## Arka Plan
Yapılandırılmış veri depolama uygulaması (trustgraph-flow/trustgraph/storage/objects/cassandra/), nesneleri TrustGraph'ın yapılandırma sisteminde depolanan şema tanımlarına göre Cassandra tablolarına yazar. Bu tablolar, koleksiyonlar içindeki verimli sorguları etkinleştiren bileşik bir bölüm anahtarı yapısı ve şema tanımlı birincil anahtarlar kullanır.
Bu özellik tarafından ele alınan mevcut sınırlamalar:
Cassandra'da depolanan yapılandırılmış veri için bir sorgu arayüzünün olmaması
Yapılandırılmış veri için GraphQL'in güçlü sorgu yeteneklerinden yararlanamama
İlişkili nesneler arasındaki ilişki geçişi için destek eksikliği
Yapılandırılmış veri erişimi için standart bir sorgu dilinin olmaması
GraphQL sorgu hizmeti, bu boşlukları aşağıdaki şekilde dolduracaktır:
Cassandra tablolarını sorgulamak için standart bir GraphQL arayüzü sağlama
TrustGraph yapılandırmasından dinamik olarak GraphQL şemaları oluşturma
GraphQL sorgularını verimli bir şekilde Cassandra CQL'ye çevirme
Alan çözümleyicileri aracılığıyla ilişki çözümlemeyi destekleme
>>>>>>> 82edf2d (New md files from RunPod)
## Teknik Tasarım
@ -44,6 +71,7 @@ GraphQL sorgu hizmeti, yerleşik kalıpları izleyen yeni bir TrustGraph akış
**Ana Bileşenler**:
1. **GraphQL Sorgu Hizmeti İşlemcisi**
<<<<<<< HEAD
Temel FlowProcessor sınıfını genişletir.
Mevcut sorgu hizmetlerine benzer bir istek/yanıt kalıbını uygular.
Şema güncellemeleri için yapılandırmayı izler.
@ -72,6 +100,36 @@ GraphQL sorgu hizmeti, yerleşik kalıpları izleyen yeni bir TrustGraph akış
N+1 sorgularından kaçınmak için verimli toplu yükleme gerçekleştirir.
Çözümlenen ilişkileri istek bağlamı içinde önbelleğe alır.
Hem ileri hem de geri ilişki geçişini destekler.
=======
Temel FlowProcessor sınıfını genişletir
Mevcut sorgu hizmetlerine benzer bir istek/yanıt kalıbını uygular
Şema güncellemeleri için yapılandırmayı izler
GraphQL şemasını yapılandırmayla senkronize tutar
2. **Dinamik Şema Oluşturucu**
TrustGraph RowSchema tanımlarını GraphQL türlerine dönüştürür
Uygun alan tanımlarıyla GraphQL nesne türleri oluşturur
Koleksiyon tabanlı çözümleyicilerle kök Sorgu türünü oluşturur
Yapılandırma değiştiğinde GraphQL şemasını günceller
3. **Sorgu Yürütücüsü**
Gelen GraphQL sorgularını Strawberry kütüphanesi kullanarak ayrıştırır
Sorguları mevcut şemaya göre doğrular
Sorguları yürütür ve yapılandırılmış yanıtlar döndürür
Ayrıntılı hata mesajlarıyla hataları zarif bir şekilde işler
4. **Cassandra Sorgu Çevirmeni**
GraphQL seçimlerini CQL sorgularına dönüştürür
Mevcut dizinlere ve bölüm anahtarlarına göre sorguları optimize eder
Filtrelemeyi, sayfalama ve sıralamayı işler
Bağlantı havuzunu ve oturum yaşam döngüsünü yönetir
5. **İlişki Çözümleyici**
Nesne ilişkileri için alan çözümleyicilerini uygular
N+1 sorgularından kaçınmak için verimli toplu yükleme gerçekleştirir
Çözümlenen ilişkileri istek bağlamı içinde önbelleğe alır
Hem ileri hem de geri ilişki geçişini destekler
>>>>>>> 82edf2d (New md files from RunPod)
### Yapılandırma Şeması İzleme
@ -84,7 +142,11 @@ self.register_config_handler(self.on_schema_config)
Şemalar değiştiğinde:
1. Yapılandırmadan yeni şema tanımlarını ayrıştırın.
2. GraphQL türlerini ve çözümleyicileri yeniden oluşturun.
<<<<<<< HEAD
3. Çalıştırılabilir şemayı güncelleyin.
=======
3. Uygulanabilir şemayı güncelleyin.
>>>>>>> 82edf2d (New md files from RunPod)
4. Şemaya bağlı tüm önbellekleri temizleyin.
### GraphQL Şema Oluşturma
@ -129,7 +191,11 @@ Yapılandırmadaki her RowSchema için aşağıdaki öğeleri oluşturun:
CQL sorgusunu Cassandra'ya karşı yürütün.
Sonuçları GraphQL yanıt yapısına eşleyin.
Herhangi bir ilişki alanını çözün.
<<<<<<< HEAD
Yanıtı GraphQL spesifikasyonuna göre biçimlendirin.
=======
Yanıtı GraphQL belirtimine göre biçimlendirin.
>>>>>>> 82edf2d (New md files from RunPod)
5. **Yanıt Teslimi**:
Sonuçlarla ObjectsQueryResponse oluşturun.
@ -138,7 +204,11 @@ Yapılandırmadaki her RowSchema için aşağıdaki öğeleri oluşturun:
### Veri Modelleri
<<<<<<< HEAD
> **Not**: `trustgraph-base/trustgraph/schema/services/structured_query.py`'da mevcut bir StructuredQueryRequest/Response şeması bulunmaktadır. Ancak, bu şemada kritik alanlar (kullanıcı, koleksiyon) eksiktir ve alt optimal türler kullanılmaktadır. Aşağıdaki şemalar, önerilen gelişmeyi temsil etmektedir; bu şemalar ya mevcut şemaları değiştirmeli ya da yeni ObjectsQueryRequest/Response türleri olarak oluşturulmalıdır.
=======
> **Not**: `trustgraph-base/trustgraph/schema/services/structured_query.py`'da mevcut bir StructuredQueryRequest/Response şeması bulunmaktadır. Ancak, bu şema kritik alanları (kullanıcı, koleksiyon) içermemekte ve alt optimal türler kullanmaktadır. Aşağıdaki şemalar, önerilen gelişmeyi temsil etmektedir; bunlar ya mevcut şemaları değiştirmeli ya da yeni ObjectsQueryRequest/Response türleri olarak oluşturulmalıdır.
>>>>>>> 82edf2d (New md files from RunPod)
#### İstek Şeması (ObjectsQueryRequest)
@ -154,7 +224,11 @@ class ObjectsQueryRequest(Record):
```
**Mevcut StructuredQueryRequest'ten yapılan değişikliklerin gerekçesi:**
<<<<<<< HEAD
Diğer sorgu hizmetlerinin kalıbına uygun olarak `user` ve `collection` alanları eklendi.
=======
Diğer sorgu hizmetlerinin kalıbına uygun olması için `user` ve `collection` alanları eklendi.
>>>>>>> 82edf2d (New md files from RunPod)
Bu alanlar, Cassandra anahtar alanını ve koleksiyonu tanımlamak için gereklidir.
Değişkenler şu anda Map(String()) olarak kalmaktadır, ancak ideal olarak tüm JSON türlerini desteklemelidir.
@ -299,11 +373,19 @@ Aracılık karar akışlarıyla entegrasyon
## Güvenlik Hususları
<<<<<<< HEAD
**Sorgu Derinliği Sınırlaması**: Performans sorunlarına neden olabilecek derinlemesine iç içe sorguları önleme
**Sorgu Karmaşıklığı Analizi**: Kaynak tükenmesini önlemek için sorgu karmaşıklığını sınırlama
**Alan Düzeyi İzinleri**: Kullanıcı rollerine göre alan düzeyinde erişim kontrolü için gelecekteki destek
**Giriş Temizleme**: Enjeksiyon saldırılarını önlemek için tüm sorgu girişlerini doğrulama ve temizleme
**Hız Sınırlaması**: Kullanıcı/koleksiyon başına sorgu hız sınırlaması uygulama
=======
**Sorgu Derinliği Sınırlandırması**: Performans sorunlarına neden olabilecek derinlemesine iç içe sorguları önleme
**Sorgu Karmaşıklığı Analizi**: Kaynak tükenmesini önlemek için sorgu karmaşıklığını sınırlama
**Alan Düzeyi İzinleri**: Kullanıcı rollerine göre alan düzeyinde erişim kontrolü için gelecekteki destek
**Giriş Temizleme**: Enjeksiyon saldırılarını önlemek için tüm sorgu girişlerini doğrulama ve temizleme
**Hız Sınırlandırması**: Kullanıcı/koleksiyon başına sorgu hız sınırlandırması uygulama
>>>>>>> 82edf2d (New md files from RunPod)
## Performans Hususları
@ -352,7 +434,11 @@ Bu yeni bir özellik olduğu için herhangi bir geçiş gerekli değildir. Hizme
1-2. Hafta: Temel hizmet uygulaması ve şema oluşturma
3. Hafta: Sorgu yürütme ve CQL çevirisi
4. Hafta: İlişki çözümü ve optimizasyon
<<<<<<< HEAD
5. Hafta: Test etme ve performans ayarlaması
=======
5. Hafta: Test ve performans ayarlaması
>>>>>>> 82edf2d (New md files from RunPod)
6. Hafta: Ağ geçidi entegrasyonu ve dokümantasyon
## Açık Sorular
@ -362,8 +448,13 @@ Bu yeni bir özellik olduğu için herhangi bir geçiş gerekli değildir. Hizme
Seçenek: Aynı anda birden fazla şema sürümünü destekleyin
2. **Önbellekleme Stratejisi**: Sorgu sonuçları önbelleğe alınmalı mı?
<<<<<<< HEAD
Dikkat edilmesi gerekenler: Zaman tabanlı son kullanma tarihi
Dikkat edilmesi gerekenler: Olay tabanlı geçersiz kılma
=======
Dikkate alınması gerekenler: Zaman tabanlı son kullanma tarihi
Dikkate alınması gerekenler: Olay tabanlı geçersiz kılma
>>>>>>> 82edf2d (New md files from RunPod)
3. **Federasyon Desteği**: Hizmet, diğer veri kaynaklarıyla birleştirme için GraphQL federasyonunu desteklemeli mi?
Yapılandırılmış ve grafik veriler arasında birleşik sorguları etkinleştirir