Kami mengusulkan Cassandra untuk diimplementasikan sebagai backend database untuk solusi pengarsipan yang besar (jumlah penulisan yang besar dibandingkan dengan pembacaan). Kami mencari masukan tentang replikasi dan strategi penerapan Cassandra agar sesuai dengan kasus penggunaan kami.
Pilihan Cassandra didasarkan pada faktor-faktor berikut:
- Mendukung throughput besar untuk operasi 'tulis' - ribuan penulisan simultan per detik
- Kesesuaian untuk data Teknik (terutama data rangkaian waktu)
- Ketersediaan tinggi untuk mendukung pengoperasian teleskop secara berkelanjutan
- Dukungan alat mis. Analisis, Pelaporan
Perkiraan Data
- Pertumbuhan 250 TB per tahun (masa pakai Sistem 50 tahun)
Kasus Penggunaan
Kami memiliki dua pusat data - Operasi DC dan Analytics DC (untuk mengisolasi beban kerja baca dan tulis). Di akhir postingan ini terdapat diagram yang menggambarkan arsitektur yang diusulkan. Karena keterbatasan penyimpanan, kami tidak dapat menyimpan data yang dihasilkan sepanjang masa pakai di Operations DC. Oleh karena itu, kami berencana untuk memindahkan data dari Operations DC ke Analytics DC sesuai kebijakan yang ditentukan (misalnya setelah 1 minggu).
Pertanyaan
- Apakah mungkin untuk melakukan replikasi satu arah di Cassandra antar Pusat Data? Data dari Operations DC dipindahkan ke Analytics DC. Namun data yang disimpan setelah pemrosesan di Analytics DC tidak boleh direplikasi ke Operations DC.
- Apakah Cassandra memberikan kendali atas apa yang direplikasi? Kami tidak ingin kedua DC selaras. Kami ingin mengonfigurasi apa yang direplikasi (sebenarnya dipindahkan) ke Analytics DC. Mungkinkah secara inheren terjadi pada Cassandra? Jika saya ingin menentukan bahwa hanya data satu minggu terakhir yang harus direplikasi dari Pusat Data Operasi ke Pusat Data Analytics.
Kami berencana menggunakan fitur time-to-live bawaan Cassandra untuk menghapus data (hanya dari operasi DC). Data yang dihapus dari Operations DC tidak boleh dihapus dari Analytics DC. Bagaimana cara mencegah replikasi data yang dihapus?
Saya telah membaca bahwa satu node Cassandra dapat menangani data hingga 2-3 TB. Referensi terdokumentasi apa pun tentang implementasi Cassandra yang lebih besar akan membantu.
Berapa banyak node Cassandra yang harus dikerahkan untuk menangani pertumbuhan tersebut? Dan apa strategi penerapan yang direkomendasikan?
Pertimbangan kinerja: Meskipun penyimpanan di Operations DC akan terbatas (data 3-7 hari, sekitar 5-10 TB), penyimpanan data di Analytics DC bersifat kumulatif dan terus bertambah seiring waktu. Apakah pertumbuhan basis data di DC analitik akan memengaruhi replikasi dan menurunkan kinerja Operasi DC.
Tujuannya di sini adalah untuk mengetahui apakah fitur bawaan Cassandra dapat digunakan untuk mendukung persyaratan di atas. Saya mengetahui solusi yang paling jelas. Tidak ada replikasi antara dua DC. Buang data satu minggu terakhir dari Operations DC dan pindahkan ke Analytics DC.