Turgay Can adlı üyeden alıntı
Cache olarak memcached tabanlı geliştirilmiş olan CouchBase önerebilirim, Redis ve Hazelcast gibi muadilleride mevcut.
Mongo vs CouchDB'de ihtiyaç önemlidir. CouchDB daha çok değişen datalar için kullanılma amacı taşır ve bu baz alınarak geliştirilmiştir. Eğer elinizdeki data her gün yada saat değişen bir data ise, CouchDB fakat fazla değişen değilde biriken bir data üzerinden hızlı sorgular çalıştırmak ise amaç MongoDB.
Tavsiyem ;
CouchBase Cache Framework + Couch DB
yada
REDIS + MongoDB
Hazelcast dağıtık sistemler için en iyisidir fakat dağıtık min. 4-5 makien üzerinde datayı tutmayı ve everytime up bir db sistemi ile çalışmayı planlamıyorsanız amacı dışına çıkmış olursunuz yok benim sistemin her ne olursa olsun up olmalı ve dataya her an ulaşabilmeliyim diyorsanız Hazelcast kullanım olarakta basit ve iyidir.
Sabit bir data var aslinda. Tornado web framework kullaniyorum. Backend'de cache olarak couchbase kullanayım couchdb olarak.
Veri eklenecek ama eski veriler değişmeyecek yani yeni verilere açık bir veritabanı. Ancak sanırım mongodb 32 bit sistemler için 2.5 gb'dan fazlasına izin vermiyordu.
Şöyle düşünelim:
Türkiyede, Türkçe, Kürtçe vs. bütün dillerdeki bütün kelimeleri bir veritabanına ekleyeceğiz. Bu ben 3 milyon dedim ama 30 milyon da olabilir. Bu kelimeler 30 milyon ve ben bir sorgu yolladım.
mreabha dnuya
bunu otomatik merhaba dünya'ya çevirecek. merhaba ve dünya veritabanındaki kelimeler. bunun için ngram'dan faydalandım. burada asıl sorun şu.
merhaba ve dunya alfabetik olarak sıralanacaklardır büyük ihtimal çok farklı noktalarda. yani ikisini aynı anda mı arayacak yoksa ilk giren, ilk çıkar mantığıyla ilk kelime, ilk aranan olacak falan mı diyecek.
Kafamı karıştıran burası oluyor işte. Milyonlarca veri barındırıldığı zaman sunucu yükü artıyor işlem zamanı kötüye gidiyor. Cache harici bir de sanırım speed modülü kodlamak gerekiyor. Thread kullanmak gerekebilirs vs.