Bitirme tezim “Intelligent Query Routing for Polyglot Persistence”, her bir veritabanı sorgusu için iki veritabanından hangisinin onu daha hızlı yanıtlayacağının makine öğrenmesiyle önceden tahmin edilip edilemeyeceğini araştırıyor. Gerçeğe yakın uygulama alanı olarak yaklaşık 1,14 milyon kayıt içeren bir e-ticaret platformu kullanılıyor.
Temel: Polyglot Persistence
Aynı veri kümesi iki dünyada modelleniyor: ilişkisel olarak PostgreSQL’de (EAV bileşenli 3NF) ve belge tabanlı olarak MongoDB’de (gömülü dokümanlar). Karşılaştırmanın güvenilir kalması için ikisi de aynı, adil koşullarda çalışıyor (konteynerlerde aynı CPU ve RAM sınırları).
Yöntem
- Benchmark: 18 sorgu şablonu, 2.000 eşdeğer SQL/MongoDB çifti üretir. Her ölçümden önce otomatik bir eşdeğerlik kontrolü, iki tarafın da tam olarak aynı sonucu döndürdüğünü doğrular (2.000/2.000).
- Öznitelikler: sorgu başına 8 öznitelik; SQL AST (sqlglot) ve
EXPLAINplanından çıkarılır (tahmini satır sayısı, join’ler, tablolar ve daha fazlası). - Modeller: Random Forest, XGBoost ve MLP; tabakalı 80/20 ayrımı ve 10 katlı çapraz doğrulamayla eğitilir, holdout, Wilson güven aralıkları ve bootstrap ile desteklenir.
- Değerlendirme: yönlendirme stratejilerinin karşılaştırılması, t-testi ve Wilcoxon, etki büyüklükleri, regret ve Gini, permütasyon ile SHAP üzerinden öznitelik önemi.
Sonuçlar
- Akıllı yönlendirme, herhangi bir sabit tek veritabanından ölçülebilir biçimde daha hızlı (+%6,64, regret yalnızca %0,12).
- Random Forest, daha hızlı veritabanını %96,5 doğrulukla tahmin ediyor.
- Dört hipotezden ikisi yanlışlandı (join ve tablo sayısı yerine tahmini satır sayısı baskın; Random Forest ile XGBoost eşdeğer). Çürütülen bir hipotez burada geçerli bir sonuçtur: değerlendirilen şey, doğrulanan varsayım sayısı değil, yöntemdir.
- Bir CLI prototipi tüm zinciri canlı çalıştırır (öznitelik çıkarımı → model → hedef veritabanı), yaklaşık 3,2 ms ek yükle.
Tüm kurulum tekrarlanabilir olacak şekilde tasarlandı: sabit seed’ler, sürümlenmiş yapılandırma, her ölçüm adımı için bir commit ve yalnızca betikle üretilen grafikler.
Teknik olarak PostgreSQL ve MongoDB’ye karşı çalışan, Docker’daki bir Python değerlendirme hattı (pandas, scikit-learn, XGBoost, sqlglot), baştan sona bir laboratuvar günlüğüyle belgelenmiş.