CouchDB
 sql >> Teknologi Basis Data >  >> NoSQL >> CouchDB

Replikasi Couchbase XDCR – Langkah demi Langkah – Praktik Terbaik

Apa itu Couchbase

Couchbase Server adalah database dokumen JSON open source, terdistribusi. Ini memperlihatkan penyimpanan nilai kunci skala-out dengan cache terkelola untuk operasi data sub-milidetik, pengindeks yang dibuat khusus untuk kueri yang efisien dan mesin kueri yang kuat untuk mengeksekusi kueri seperti SQL. Untuk lingkungan seluler dan Internet of Things, Couchbase juga berjalan secara native di perangkat dan mengelola sinkronisasi ke server.

Mengapa Couchbase?

Couchbase Server adalah database dokumen JSON open source, terdistribusi. Ini memperlihatkan penyimpanan nilai kunci skala-out dengan cache terkelola untuk operasi data sub-milidetik, pengindeks yang dibuat khusus untuk kueri yang efisien dan mesin kueri yang kuat untuk mengeksekusi kueri seperti SQL. Untuk lingkungan seluler dan Internet of Things, Couchbase juga berjalan secara native di perangkat dan mengelola sinkronisasi ke server.

Couchbase Server dikhususkan untuk menyediakan manajemen data latensi rendah untuk aplikasi web, seluler, dan IoT interaktif berskala besar. Persyaratan umum yang dirancang untuk dipenuhi oleh Couchbase Server meliputi:

  • Antarmuka Pemrograman Terpadu
  • Permintaan
  • Telusuri
  • Seluler dan IoT
  • Analitik
  • Mesin basis data inti
  • Arsitektur yang diperluas
  • Arsitektur yang mengutamakan memori
  • Integrasi data besar dan SQL
  • Keamanan full-stack
  • Penempatan Container dan Cloud
  • Ketersediaan Tinggi

Banyak database yang dapat memenuhi satu atau lebih persyaratan ini tetapi memerlukan pengorbanan saat dijalankan dalam produksi dengan aplikasi misi kritis skala internet. Misalnya, satu solusi mungkin memberikan fleksibilitas model data tetapi mungkin tidak memiliki kemampuan untuk menambah atau menghapus node tanpa berdampak pada waktu aktif atau kinerja. Solusi lain mungkin menunjukkan skalabilitas penulisan yang baik tanpa dapat mengindeks atau dan mengubah model data dengan cepat. Couchbase Server dirancang untuk memberikan pengalaman administrasi dan pengembang yang produktif sekaligus memberikan kinerja dalam skala besar, baik di cloud, dalam container, di lokasi, atau di perangkat edge.

Tolok Ukur Kinerja Nosql

Tolok Ukur Baru Membandingkan MongoDB, DataStax, dan Server Couchbase Menunjukkan Couchbase sebagai Basis Data NoSQL yang Paling Dapat Diskalakan dan Berperforma Terbaik.

Tolok ukur berbasis simpul .

Menurut Couchbase Teorema CAP .

 

Teorema Cap

Couchbase ada di diagram CP dan AP.

Detail diagram CP dan AP Sofa.

Apa itu XDCR?

Cross Data Center Replication (XDCR) mereplikasi data antar cluster:ini memberikan perlindungan terhadap kegagalan pusat data, dan juga menyediakan akses data berkinerja tinggi untuk aplikasi misi-kritis yang didistribusikan secara global.

XDCR mereplikasi data dari bucket tertentu di cluster sumber ke bucket tertentu di cluster target. Data dari bucket sumber didorong ke bucket target melalui agen XDCR, yang berjalan di cluster sumber, menggunakan Database Change Protocol. Bucket apa pun (Couchbase atau Ephemeral) di cluster mana pun dapat ditetapkan sebagai sumber atau target untuk satu atau beberapa definisi XDCR.

Deskripsi arsitektur lengkap XDCR disediakan di Cross Data Center Replication (XDCR). Anda mungkin ingin membiasakan diri dengan informasi yang diberikan di sana, sebelum melakukan rutinitas yang disediakan di bagian ini.

Struktur Dasar Xdcr;

Persyaratan sebelumnya;

  • Konfirmasi bahwa kluster Anda berukuran tepat dan mampu menangani aliran XDCR baru. Misalnya, XDCR membutuhkan 1-2 inti CPU tambahan per aliran dan dalam beberapa kasus akan membutuhkan lebih banyak RAM dan sumber daya jaringan juga. Jika ukuran cluster tidak sesuai untuk beban kerja yang ada ditambah aliran XDCR baru, XDCR dapat bersaing untuk sumber daya server dan berdampak negatif pada kinerja secara keseluruhan.
  • Couchbase Server menggunakan port TCP/IP 8091untuk bertukar informasi konfigurasi cluster. Jika Anda berkomunikasi dengan cluster tujuan melalui koneksi khusus atau Internet, Anda harus memastikan bahwa semua node di cluster tujuan dan sumber dapat berkomunikasi satu sama lain melalui port 8091 dan 8092.
Port Terdaftar menurut Jalur Komunikasi

XDCR (cluster-to-cluster)

  • Versi 1 (CAPI)
    • Tidak terenkripsi :8091, 8092
  • Versi 2 (XMEM)
    • Tidak terenkripsi :8091, 8092, 11210
    • Terenkripsi :11207, 18091, 18092

Couchbase menyimpan data baik di disk maupun di RAM. Perilaku default adalah menulis dokumen ke disk pada waktu yang berubah-ubah (biasanya dengan cepat) setelah disimpan dalam RAM. Ini meninggalkan jendela pendek di mana kegagalan node dapat mengakibatkan hilangnya data.

Bagaimanapun, setelah menulis ke RAM, dokumen pada akhirnya akan ditulis ke disk. Couchbase menyimpan antrean penulisan disk yang dapat Anda periksa di halaman laporan metrik di konsol manajemen. Sekarang, CB menyinkronkan penulisan di seluruh cluster, dan saya yakin penulisan akan disinkronkan di seluruh cluster sebelum Couchbase akan mengakui bahwa penulisan telah terjadi (mis. sebelum metode penulisan kembali ke pemanggil).

Jika Anda memiliki lebih banyak dokumen daripada RAM yang tersedia, hanya dokumen yang paling sering diakses yang akan disimpan dalam RAM untuk pengambilan cepat, dengan semua dokumen lainnya "dihapus" ke disk.

Saran;

Saat ukuran bucket dikurangi dari 200 gb menjadi 10 gb di sumber, replikasi menjadi cukup cepat. Dengan kata lain, jika ukuran bucket tinggi dan meskipun semua data ada dalam ram, saya telah melihat bahwa replikasi memiliki jeda 10 detik.

Source dan target harus setting linux yang sama dan resource yang sama. Ini hanya saran.

Penduduk bucket prod harus %100. Karena kecepatan replikasi itu penting.

Bucket replication best settings ;

XDCR Source Nozzles per Node: 2 --> 8

XDCR Target Nozzles per Node: 2 --> 24

(Nozzles=Channel=parallel , as  cpu core)

XDCR Checkpoint Interval (sn): 1800 --> 60

Control frequency is low, but not as much as waiting in the queue. The higher this value, the longer it takes for XDCR queues to grow.

XDCR Batch Count: 500 --> 2000

It is beneficial to increase by 2.3 times. It also sends so many data groups at the same time.

XDCR Batch Size (kB): 2048 --> 8192

It is beneficial to increase by 2.3 times. At the same time, it sends such a large amount of data.

XDCR Failure Retry Interval: 10 --> 10

It is used for retry attempts in network errors.

XDCR Optimistic Replication Threshold: 256 --> 1024 --> 256 --> 128 

Increasing or decreasing this value appropriately can speed up replication, collect data above 1 mb and send it in bulk. But collection can be a waste of time and waiting in the queue.

This is the compressed document size in bytes. 0 - 2097152 Bytes (20MB). Default is 256 Bytes. XDCR retrieves metadata for documents larger than this size at once before copying the uncompressed document to a destination set. This option improves XDCR latency.

XDCR Statistics Collection Interval (ms): 1000 --> 1000

XDCR Logging Level: info --> info


Saran;

Saya merekomendasikan  sumber dan target  setelan yang sama dan memiliki sumber daya yang sama.

Ini adalah pengaturan bucket , pengaturan cluster , cpu , memori , kualitas disk dll.

Replikasi Xdcr hanyalah replikasi data. Sebelum replikasi , Anda harus membuat  metadata bucket.

Jika mau, Anda dapat membuat pengguna, indeks, tampilan, acara, dll.

Sebagai informasi tambahan;

Anda dapat membuat replikasi xdcr pada versi komunitas.

Anda dapat membuat replikasi xdcr pada versi perusahaan. Ini membutuhkan lisensi tambahan. Jika Anda tidak menggunakan standby sebagai prod, itu bukan biaya tinggi.

Konektor lain dari Couchbase untuk XDCR; Elasticsearch, Hadoop, Kafka, Spark, Talend, SQL (ODBC / JDBC)

Manajemen Couchbase dapat dilakukan melalui WEB UI, REST API dan CLI. Secara khusus, antarmuka pengguna web sangat sederhana dan mudah digunakan. Anda dapat melakukan banyak transaksi dan kueri operasional melalui antarmuka pengguna.

Replication Summary;

Stby=Xdcr=Target=Remote same term.

A different name xdcr cluster is established with the same features.

The buckets with the same name with the same features are created in the xdcr cluster.

In Prod, add remote server and xdcr information are entered in the xdcr tab.

Prod in xdcr tab with add remote cluster;

Cluster Name= Xdcr couchbase name

IP/Hostname= Xdcr ip / hostname

Username=Xdcr Admin username

Password=Xdcr Admin user password




Prod in xdcr tab with add bucket replication;

Replicate From Bucket = Bucket name in the prod

Remote Cluster = Added Xdcr name

Remote Bucket = Bucket name added in Xdcr


Pengaturan memori untuk pengaturan cluster Xdcr diberikan sesuai dengan nilai memori server.

Harus ukuran bebas untuk memori server.

Xdcr membutuhkan memori tambahan di prod cluster.

Beberapa replikasi bucket couchbase dimungkinkan.

Contoh Operasi Sederhana Replikasi XDCR;

 

Tab Xdcr dipilih di beranda couchbase.

Tambahkan tab kluster jarak jauh dipilih pada tab xdcr yang dipilih .

Operasi penambahan cluster jarak jauh dilakukan setelah .

Tambahkan tab replikasi dipilih pada tab xdcr yang dipilih .

Operasi replikasi penambahan bucket selesai setelah .

Parameter terbaik untuk kinerja xdcr . Tapi itu bisa diatur lagi untuk sistem Anda.

Status replikasi pada tab xdcr sumber (prod)

Statistik Replikasi Bucket

Kinerja Replikasi Sesuai Target;

Kinerja Replikasi Pada Sumber;

Referensi;

1-) https://resources.couchbase.com/nosql_comparison_web/altoros-nosql-performance-benchmark

2-) https://docs.couchbase.com/

3-) https://www.businesswire.com/news/home/20140625005778/en/Couchbase-Blows-Past-Competition-in-NoSQL-Performance-Benchmark

4-) https://www.quora.com/What-is-the-relation-between-SQL-NoSQL-the-CAP-theorem-and-ACID

Fatih Gençali – Sertifikasi Couchbase


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sinkronisasi gaya CouchDB dan resolusi konflik di Postgres dengan Hasura

  2. Replikasi Couchbase XDCR – Langkah demi Langkah – Praktik Terbaik

  3. Memulai dengan CouchDB

  4. Instal CouchDB di Debian 9

  5. Menginstal Apache CouchDB pada CentOS 7