OxiDB'nin çekirdeğindeki doküman motoru: MongoDB tarzı sorgular ve aggregation, index'ler ve planlayıcı, disk-first depolama, WAL, OCC transaction'lar ve okuma snapshot'ları. Hepsi gerçek bir sunucuda çalıştırılmış örneklerle.
$ ls tags/oxidb
#oxidb
12 yazı
OxiDB'nin arama katmanı: BM25 sıralaması, 18 dilde Snowball kök bulma ve Türkçe örnekler, vurgulu parçalar, PDF/DOCX/XLSX içinde arama, mmap'li inverted index, HNSW ile k-NN ve gerçek recall ölçümleri.
OxiDB'nin doküman motoruna coğrafi sorguları ve graf aşamalarını nasıl koyduğumu, İstanbul'daki gerçek yerler ve küçük bir uçuş ağıyla anlatıyorum: cömert ama asla yanlış olmayan geohash index, BFS ve tembel Dijkstra.
OxiDB'ye belge motorunun yanında kendi WAL'ı ve dosyaları olan ikinci bir SQL motoru ekledim: gerçekten uygulanan kısıtlar, CTE'ler, pencere fonksiyonları, Cobra ile saklı prosedürler, değiştirilmemiş psql/psycopg ve EF Core.
OxiDB'nin zaman serisi motoru oxidb-tsdb: Gorilla sıkıştırmasını bit bit, tipli alanları, satır protokolünü, toplamaları, çökmeye dayanıklı rollup'ları ve kendi sensör verimde ölçtüğüm gerçek sıkıştırma oranlarını anlatıyorum.
OxiDB'nin içine RESP konuşan bir anahtar-değer katmanı yazdım: beş veri tipi, TTL, pub/sub, WATCH, Lua, anlık görüntüler. redis-cli ve redis-py ile gerçek oturumlar, Redis 8.6 ile ölçümler ve dürüst sınırlar.
OxiDB'nin S3 katmanı: multipart, range ve koşullu okumalar, SSE-S3/SSE-C, SigV4 ve presigned URL'ler, yaşam döngüsü, blob'ların diskte nasıl durduğu ve yüklenen dosyaların içinde tam metin arama. Hepsi gerçek oturumlarla.
OxiDB'nin içindeki MQTT 3.1.1 ve AMQP 0-9-1 broker'ları: dürüst QoS 1/2, kill -9 sonrası sağ çıkan oturumlar ve kalıcı kuyruklar, MQTT'den koleksiyona ingest ve bir sensörün MQTT yayınını tüketen AMQP worker'ı.
OxiDB'nin log motoru: UDP üzerinden GELF ve MessagePack alımı, parçalı mesaj birleştirme, alan başına dinamik indeksleme, koleksiyon bazlı saklama, webhook'lu eşik alarmları ve oxidb-tail. Gerçek paketlerle denendi, bulunan kusurlarla birlikte.
Borsa yevmiyeleri için yazdığım oxidb-ledger crate'i: 40 baytlık sabit kayıtlar, motorun atadığı sıra numaraları, mmap'li segmentler, dosya silerek retention ve akış başına fsync. Gerçek ölçümler ve bulduğum iki hata ile.
OxiDB'nin dördüncü motoru oxidb-rec: sepetleri anında sayaçlara çeviren, "bunu alanlar şunu da aldı" listesini Dunning LLR ile skorlayan gerçek zamanlı öneri motoru. Zaman kovaları, elle LLR hesabı, disk düzeni ve gerçek bir sunucuda 12 bin siparişle denemeler.
Bu blogun kendi araçlarımla nasıl kurulduğuna kısa bir bakış: Rill ile yazılmış sunucu, dört motorlu OxiDB veritabanı ve zap arayüzü.










