Pertanyaan ini adalah tentang membuat pilihan arsitektur sebelum menggali rincian eksperimen dan implementasi. Ini tentang kesesuaian, dalam skalabilitas dan kinerja, dari elasticsearch vs MongoDB, untuk tujuan yang agak spesifik.
Secara hipotetis keduanya menyimpan objek data yang memiliki bidang dan nilai, dan memungkinkan untuk menanyakan objek tersebut. Jadi mungkin menyaring subset objek sesuai dengan bidang yang dipilih ad-hoc, adalah sesuatu yang cocok untuk keduanya.
Aplikasi saya akan berputar di sekitar memilih objek sesuai dengan kriteria. Ini akan memilih objek dengan memfilter secara simultan oleh lebih dari satu bidang, dengan kata lain, kriteria penyaringan kueri biasanya akan terdiri dari antara 1 dan 5 bidang, mungkin lebih dalam beberapa kasus. Sedangkan bidang yang dipilih sebagai filter akan menjadi bagian dari jumlah bidang yang jauh lebih besar. Bayangkan sekitar 20 nama bidang yang ada, dan setiap kueri adalah upaya untuk memfilter objek berdasarkan beberapa bidang dari keseluruhan 20 bidang (Bisa kurang dari atau lebih dari 20 nama bidang keseluruhan yang ada, saya hanya menggunakan nomor ini untuk menunjukkan rasio dari bidang ke bidang yang digunakan sebagai filter dalam setiap permintaan diskrit). Pemfilteran bisa dengan keberadaan bidang yang dipilih, serta oleh nilai bidang, misalnya memfilter objek yang memiliki bidang A, dan bidang B di antara x dan y,
Aplikasi saya akan terus melakukan pemfilteran semacam ini, sedangkan tidak akan ada atau sedikit konstanta dalam hal bidang mana yang digunakan untuk pemfilteran setiap saat. Mungkin dalam indeks pencarian elastics perlu didefinisikan, tetapi mungkin bahkan tanpa indeks kecepatan setara dengan MongoDB.
Sesuai data yang masuk ke toko, tidak ada detail khusus tentang itu .. objek akan hampir tidak pernah berubah setelah dimasukkan. Mungkin objek lama perlu dijatuhkan, saya ingin mengasumsikan bahwa dukungan data store kedaluwarsa menghapus hal-hal secara internal atau oleh permintaan aplikasi yang dibuat. (Lebih jarang, objek yang cocok dengan kueri tertentu juga perlu dijatuhkan).
Bagaimana menurut anda? Dan, sudahkah Anda mencoba aspek ini?
Saya tertarik pada kinerja dan skalabilitasnya, dari masing-masing dari dua penyimpanan data, untuk tugas semacam ini. Ini adalah semacam pertanyaan desain arsitektur, dan rincian opsi khusus toko atau pilar permintaan yang harus membuatnya menjadi arsitek dapat diterima sebagai demonstrasi dari saran yang dipikirkan sepenuhnya.
Terima kasih!