sql >> Databáze >  >> NoSQL >> CouchDB

Couchbase XDCR Replication – Krok za krokem – Nejlepší postupy

Co je Couchbase

Couchbase Server je open source, distribuovaná databáze dokumentů JSON. Odhaluje škálovatelné úložiště klíč-hodnota se spravovanou mezipamětí pro operace s daty v řádu milisekund, účelové indexátory pro efektivní dotazy a výkonný dotazovací stroj pro provádění dotazů podobných SQL. Pro mobilní prostředí a prostředí internetu věcí Couchbase také běží nativně na zařízení a spravuje synchronizaci se serverem.

Proč Couchbase?

Couchbase Server je open source, distribuovaná databáze dokumentů JSON. Odhaluje škálovatelné úložiště klíč-hodnota se spravovanou mezipamětí pro operace s daty v řádu milisekund, účelové indexátory pro efektivní dotazy a výkonný dotazovací stroj pro provádění dotazů podobných SQL. Pro mobilní prostředí a prostředí internetu věcí Couchbase také běží nativně na zařízení a spravuje synchronizaci se serverem.

Couchbase Server se specializuje na poskytování správy dat s nízkou latencí pro rozsáhlé interaktivní webové, mobilní a IoT aplikace. Mezi běžné požadavky, které měl Couchbase Server splňovat, patří:

  • Jednotné programovací rozhraní
  • Dotaz
  • Hledat
  • Mobil a IoT
  • Analytics
  • Základní databázový stroj
  • Škálovatelná architektura
  • Architektura na prvním místě v paměti
  • Integrace velkých dat a SQL
  • Zabezpečení celého zásobníku
  • Nasazení kontejnerů a cloudu
  • Vysoká dostupnost

Mnoho databází je schopno splnit jeden nebo více z těchto požadavků, ale vyžadují kompromisy, když běží v produkci s kritickými aplikacemi v měřítku internetu. Jedno řešení může například poskytovat flexibilitu datového modelu, ale může postrádat možnost přidávat nebo odebírat uzly bez dopadu na dobu provozuschopnosti nebo výkon. Jiné řešení může prokázat dobrou škálovatelnost zápisu, aniž by bylo možné indexovat nebo měnit datový model za běhu. Couchbase Server je navržen tak, aby poskytoval produktivní vývojářské a administrační prostředí a zároveň poskytoval výkon ve velkém měřítku, ať už v cloudu, v kontejneru, on-premise nebo na okrajovém zařízení.

Srovnání výkonu Nosql

Nové srovnávací porovnání MongoDB, DataStax a Couchbase Server ukazuje Couchbase jako nejškálovatelnější a nejvýkonnější NoSQL databázi.

Srovnání založené na uzlu.

Podle CAP Theorem Couchbase.

 

Věta o čepici

Couchbase je na diagramu CP a AP.

Podrobnosti diagramu Couchbase CP a AP.

Co je XDCR?

Cross Data Center Replication (XDCR) replikuje data mezi clustery:poskytuje ochranu proti selhání datového centra a také poskytuje vysoce výkonný datový přístup pro globálně distribuované kritické aplikace.

XDCR replikuje data z konkrétního segmentu ve zdrojovém clusteru do konkrétního segmentu v cílovém clusteru. Data ze zdrojového segmentu jsou přenesena do cílového segmentu pomocí agenta XDCR běžícího na zdrojovém clusteru pomocí protokolu Database Change Protocol. Jakýkoli segment (Couchbase nebo Ephemeral) na jakémkoli clusteru může být specifikován jako zdroj nebo cíl pro jednu nebo více definic XDCR.

Úplný popis architektury XDCR je uveden v Cross Data Center Replication (XDCR). Před prováděním postupů uvedených v této části se možná budete chtít seznámit s informacemi zde uvedenými.

Základní struktura Xdcr;

Předběžné požadavky;

  • Potvrďte, že váš cluster má správnou velikost a je schopen zpracovat nové streamy XDCR. Například XDCR potřebuje 1-2 další CPU jádra na stream a v některých případech bude vyžadovat více RAM a síťových zdrojů. Pokud cluster nemá správnou velikost pro stávající pracovní zátěž a nové streamy XDCR, XDCR může soutěžit o serverové zdroje a mít negativní dopad na celkový výkon.
  • Couchbase Server používá port TCP/IP 8091 k výměně informací o konfiguraci clusteru. Pokud komunikujete s cílovým clusterem přes vyhrazené připojení nebo internet, měli byste zajistit, aby všechny uzly v cílovém a zdrojovém clusteru mohly vzájemně komunikovat přes porty 8091 a 8092.
Porty uvedené podle komunikační cesty

XDCR (cluster-to-cluster)

  • Verze 1 (CAPI)
    • Nešifrováno :8091, 8092
  • Verze 2 (XMEM)
    • Nešifrováno :8091, 8092, 11210
    • Šifrováno :11207, 18091, 18092

Couchbase ukládá data jak na disk, tak do RAM. Výchozí chování je zapsat dokument na disk v libovolném čase (obvykle rychle) po uložení do paměti RAM. Tím zůstane krátké okno, kde může selhání uzlu způsobit ztrátu dat.

Každopádně po zápisu do RAM se dokument nakonec zapíše na disk. Couchbase udržuje frontu zápisu na disk, kterou můžete zkontrolovat na stránce sestavy metrik v konzole pro správu. Nyní CB synchronizuje zápisy napříč clusterem a věřím, že zápis bude synchronizován napříč clusterem, než Couchbase potvrdí, že k zápisu došlo (např. předtím, než se metoda zápisu vrátí volajícímu).

Pokud máte více dokumentů, než je dostupná paměť RAM, budou do paměti RAM uloženy pouze ty nejčastěji používané dokumenty pro rychlé vyhledání, přičemž všechny ostatní budou „vystěhovány“ na disk.

Rada;

Když se velikost bloku snížila z 200 gb na 10 gb ve zdroji, replikace se dostatečně zrychlila. Jinými slovy, pokud je velikost segmentu velká a přestože  jsou všechna data v paměti RAM, viděl jsem, že replikace měla 10 sekund mezeru.

Zdroj a cíl mají stejné linuxové nastavení a stejné zdroje. To je jen rada.

Rezidentní segment produktů musí být %100. Protože rychlost replikace je důležitá.

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


Rada;

Doporučuji, aby zdroj a cíl měly stejné nastavení a měly stejné zdroje.

Jedná se o nastavení bucketu, nastavení clusteru, CPU, paměti, kvality disku atd.

Replikace Xdcr je pouze replikace dat. Před replikací musíte vytvořit metadata segmentu.

Pokud chcete, můžete vytvořit uživatele, index, zobrazení, událost atd.

Jako další informace;

Replikaci xdcr můžete provést na komunitní verzi.

Replikaci xdcr můžete provést na podnikové verzi. To vyžaduje další licenci. Pokud nepoužíváte pohotovostní režim jako produkt, není to vysoký poplatek.

Další konektory Couchbase pro XDCR; Elasticsearch, Hadoop, Kafka, Spark, Talend, SQL (ODBC / JDBC)

Couchbase management lze provádět přes WEB UI, REST API a CLI. Zejména webové uživatelské rozhraní je velmi jednoduché a přímočaré na ovládání. Prostřednictvím uživatelského rozhraní můžete provádět mnoho provozních transakcí a dotazů.

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


Nastavení paměti pro nastavení clusteru Xdcr jsou dána podle hodnoty paměti serveru.

Měla by být volná velikost paměti serveru.

Xdcr potřebuje další paměť v prod clusteru.

Je možná replikace vícenásobného segmentu pohovky.

Příklad jednoduché operace replikace XDCR;

 

Na domovské stránce couchbase byla vybrána karta Xdcr.

Na vybrané kartě xdcr je vybrána karta Přidat vzdálený cluster.

Operace přidání vzdáleného clusteru se provádí následovně .

Na vybrané kartě xdcr je vybrána karta Přidat replikaci.

Operace replikace přidání segmentu se provádí následovně .

Nejlepší parametry pro výkon xdcr . Pro váš systém to ale lze znovu nastavit.

Stav replikace na kartě xdcr zdroje (prod)

Statistika replikace segmentu

Cílový výkon replikace;

Výkon replikace na zdroji;

Reference;

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 – certifikace Couchbase


  1. Jak spravovat databáze a sbírky v MongoDB

  2. Co je pole __v v Mongoose

  3. Jak odstranit ladění z aplikace Express?

  4. Použití UUID místo ObjectID v MongoDB