MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Apakah ada yang bekerja dengan Aerospike? Bagaimana perbandingannya dengan MongoDB?

Saya telah menggunakan Aerospike, MongoDB dan Redis dan telah menguji banyak database NoSQL lainnya. Saya akan mengatakan Aerospike sangat bagus dalam apa yang dilakukannya tetapi berbeda dari MongoDB. Semuanya tergantung pada apa yang Anda rencanakan untuk menggunakan database. Saya dapat memberi Anda contoh untuk apa saya menggunakan basis data saya yang berbeda. Saya juga dapat membahas perbedaan di antara mereka dan mendiskusikan manfaat Aerospike.

MongoDB

Saya menggunakan MongoDB sebagai alternatif SQL. Dalam database MongoDB saya, saya memiliki banyak bidang yang berbeda. Seringkali bidang berubah dan saya secara acak perlu menanyakan berbagai bidang. Ini adalah database yang sangat tidak terstruktur dan MongoDB luar biasa dalam hal itu. Saya juga telah menggunakan MongoDB sebagai penyimpanan nilai kunci standar. Ini berkinerja baik tetapi saya telah membuat MongoDB berkinerja kurang optimal pada skala transaksi dan skala ukuran basis data. Memang, database mungkin telah dioptimalkan sedikit lebih baik tetapi saya merasa sangat sulit untuk menemukan dokumentasi tentang konfigurasi MongoDB dengan benar dalam situasi yang berbeda.

Merah

Redis adalah penyimpanan nilai kunci murni. Masalah terbesar Redis adalah bahwa itu murni dalam memori (ini akan menggunakan disk sebagai cadangan tetapi Anda tidak dapat menyimpan lebih banyak informasi daripada memori yang tersedia). Hal ini sangat cepat untuk apa yang digunakan untuk. Saya pribadi menggunakannya untuk database transaksional kecil:Saya melakukan fungsi yang sangat sederhana pada tombol seperti menghitung berapa kali suatu peristiwa terjadi untuk pengguna tertentu. Saya juga melakukan pencarian cepat di dalam memori yang saya perlukan untuk dipetakan ke nilai yang berbeda. Redis adalah alat yang hebat untuk kumpulan data kecil dan sangat cepat. Konfigurasi juga sangat mudah.

Aerospike

Saya pribadi menggunakan Aerospike untuk menggantikan Redis ketika saatnya untuk menskalakan. Dari pemahaman saya, itu bisa digunakan untuk lebih banyak. Seperti Redis, Aerospike adalah toko bernilai kunci. Saya percaya edisi open source juga mendukung indeks sekunder yang Redis tidak (saya belum menggunakan indeks sekunder dalam produksi tetapi telah melakukan sedikit pengujian pada mereka).

Fitur terbaik Aerospike adalah kemampuannya untuk menskala. Masalah terbesar yang perlu saya pecahkan saat melihat Aerospike adalah menskalakan sistem saya untuk menangani kumpulan data besar sambil tetap sangat cepat. Proyek yang saya gunakan untuk Aerospike memiliki persyaratan kecepatan yang sangat ketat. Saya biasanya membuat 3-4 pencarian basis data ditambah pemrosesan lainnya dan perlu memiliki waktu transaksi di bawah 50 md. Beberapa pencarian dilakukan pada kumpulan data yang berukuran 300GB+. Saya tidak dapat menemukan solusi untuk menyimpan data ini dan membuatnya dapat diakses dalam waktu yang wajar. Redis jelas tidak akan berfungsi kecuali saya memiliki mesin yang memiliki 300GB+ RAM. MongoDB mulai berkinerja sangat buruk pada ukuran yang jauh lebih rendah dari 300GB. Jadi saya mencoba Aerospike, dan itu mampu menangani semuanya dengan sangat baik. Hal terbaik tentang Aerospike:seiring bertambahnya kumpulan data saya, saya tidak perlu melakukan lebih dari sekadar membuat kotak baru saat dibutuhkan. Kecepatannya tetap konsisten.

Saya juga menemukan dokumentasi Aerospikes sangat bagus. Tidak terlalu sulit untuk mengonfigurasinya dan cukup mudah menemukan jawaban untuk setiap masalah yang muncul.

Kesimpulan

Jadi, apakah Aerospike sebagus yang mereka klaim? Secara pribadi, saya telah melihat tidak kurang dari apa yang telah diklaim. Saya tidak harus menskalakan hingga 1 juta TPS, tetapi saya yakin dengan perangkat keras yang cukup itu akan mungkin. Saya juga percaya angka-angka yang menunjukkan perbedaan kecepatan antara Aerospike dan MongoDB. Aerospike adalah database yang jauh lebih "dikonfigurasi" dan "direncanakan" daripada MongoDB. Karena Aerospike ini akan jauh lebih cepat dalam skala daripada MongoDB. Itu hanya perlu khawatir tentang satu (atau dalam kasus indeks sekunder, beberapa ratus) indeks tidak seperti MongoDB yang dapat berubah secara dinamis. Pertanyaan yang benar-benar perlu Anda tanyakan adalah apa yang ingin Anda capai dengan database Anda. Kemudian lihat database mana yang paling sesuai dengan kebutuhan Anda. Jika Anda membutuhkan basis data penyimpanan yang terukur, cepat, dan bernilai kunci, saya akan mengatakan bahwa Aerospike mungkin adalah yang terbaik di luar sana.

Beri tahu saya jika Anda memiliki pertanyaan khusus atau perlu sesuatu yang diklarifikasi. Saya mungkin bisa membantu Anda.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menyimpan dokumen dalam agregasi dengan $unwind

  2. 'autoIndexID' bukan opsi pengumpulan yang valid - mongoDB

  3. Desain skema database MongoDB

  4. Agregasi MongoDB $ bagi bidang yang dihitung

  5. Bagaimana cara menggabungkan beberapa bidang dalam koleksi?