Какво е Couchbase
Couchbase Server е разпределена JSON база данни с документи с отворен код. Той разкрива мащабно хранилище за ключ-стойност с управляван кеш за операции с данни под милисекунда, специално изградени индексатори за ефективни заявки и мощен двигател за заявки за изпълнение на заявки, подобни на SQL. За мобилна среда и среди за Интернет на нещата Couchbase също работи вградено на устройството и управлява синхронизирането със сървъра.
Защо Couchbase?
Couchbase Server е разпределена JSON база данни с документи с отворен код. Той разкрива мащабно хранилище за ключ-стойност с управляван кеш за операции с данни под милисекунда, специално изградени индексатори за ефективни заявки и мощен двигател за заявки за изпълнение на заявки, подобни на SQL. За мобилна среда и среди за Интернет на нещата Couchbase също работи вградено на устройството и управлява синхронизирането със сървъра.
Couchbase Server е специализиран да предоставя управление на данни с ниска латентност за широкомащабни интерактивни уеб, мобилни и IoT приложения. Общите изисквания, които Couchbase Server е проектиран да удовлетвори, включват:
- Унифициран програмен интерфейс
- Запитване
- Търсене
- Мобилни устройства и интернет на нещата
- Анализ
- Основна база данни
- Архитектура на мащабиране
- Първа архитектура на паметта
- Интеграции с големи данни и SQL
- Пълна сигурност на стека
- Внедряване на контейнер и облак
- Висока наличност
Много бази данни са в състояние да задоволят едно или повече от тези изисквания, но изискват компромиси, когато работят в производство с критични за мисия приложения в интернет мащаб. Например, едно решение може да осигури гъвкавост на модела на данни, но може да липсва възможността за добавяне или премахване на възли без въздействие върху времето на работа или производителността. Друго решение може да демонстрира добра мащабируемост при запис, без да може да се индексира или променя моделът на данни в движение. Couchbase Server е проектиран да предоставя продуктивно изживяване за разработчици и администриране, като същевременно осигурява производителност в мащаб, независимо дали в облака, в контейнер, на място или на крайно устройство.
Сравнение на производителността на Nosql
Нов бенчмарк, сравняващ MongoDB, DataStax и Couchbase сървър, демонстрира Couchbase като най-мащабируемата, най-добре работеща NoSQL база данни.
Сравнение на базата на възли .
Съгласно CAP Theorem Couchbase .
Теорема за капачката
Couchbase е на CP и AP диаграма.
Детайл на диаграмата на Couchbase CP и AP.
Какво е XDCR?
Cross Data Center Replication (XDCR) репликира данни между клъстери:това осигурява защита срещу повреда на центъра за данни и също така осигурява високопроизводителен достъп до данни за глобално разпределени, критични за мисия приложения.
XDCR репликира данни от конкретна кофа в изходния клъстер към конкретна кофа в целевия клъстер. Данните от изходната кофа се изтласкват към целевата кофа с помощта на XDCR агент, работещ в изходния клъстер, използвайки протокола за промяна на базата данни. Всяка кофа (Couchbase или Ephemeral) във всеки клъстер може да бъде посочена като източник или цел за една или повече XDCR дефиниции.
Пълно архитектурно описание на XDCR се предоставя в Репликация на кръстосани центрове за данни (XDCR). Може да пожелаете да се запознаете с предоставената там информация, преди да изпълните процедурите, предоставени в този раздел.
Основна структура на Xdcr;
Предварителни изисквания;
- Потвърдете, че вашият клъстер е с подходящ размер и може да обработва нови XDCR потоци. Например, XDCR се нуждае от 1-2 допълнителни CPU ядра на поток и в някои случаи ще изисква и повече RAM и мрежови ресурси. Ако клъстерът не е правилно оразмерен за съществуващото работно натоварване плюс новите XDCR потоци, XDCR може да се конкурира за сървърни ресурси и да има отрицателно въздействие върху цялостната производителност.
- Couchbase Server използва TCP/IP порт 8091 за обмен на информация за конфигурацията на клъстера. Ако комуникирате с целеви клъстер през специална връзка или интернет, трябва да се уверите, че всички възли в клъстерите местоназначение и източник могат да комуникират помежду си през портове 8091 и 8092.
Портове, изброени по комуникационен път
XDCR (клъстер към клъстер) |
|
Couchbase съхранява данни както на диск, така и в RAM. Поведението по подразбиране е документът да се запише на диск в произволно време (обикновено бързо) след съхраняване в RAM. Това оставя кратък прозорец, в който повредата на възел може да доведе до загуба на данни.
Във всеки случай, след запис в RAM, документът в крайна сметка ще бъде записан на диск. Couchbase поддържа опашка за запис на диск, която можете да проверите на страницата с отчети с показатели в конзолата за управление. Сега CB синхронизира записите в клъстера и вярвам, че записът ще бъде синхронизиран в клъстер, преди Couchbase да потвърди, че записването се е случило (напр. преди методът на запис да се върне към повикващия).
Ако имате повече документи от наличната RAM, само най-често използваните документи ще се съхраняват в RAM за бързо извличане, а всички останали ще бъдат „изгонени“ на диска.
Съвет;
Когато размерът на сегмента е намален от 200 gb на 10 gb в източника, репликацията става достатъчно по-бърза. С други думи, ако размерът на кофата е голям и въпреки че всички данни са в ram, видях, че репликацията има 10 секунди интервал.
Източникът и целта имат една и съща настройка на Linux и същите ресурси. Това е само съвет.
Резидентът на кофата на продукта трябва да е %100. Тъй като скоростта на репликация е важна.
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
Съвет;
Препоръчвам източникът и целта да са еднакви настройки и да имат едни и същи ресурси.
Това са настройка на кофа , настройка на клъстер , процесор , памет , качество на диска и т.н.
Xdcr репликацията е просто репликация на данни. Преди репликация трябва да създадете метаданни на сегмента.
Ако искате, създавате потребител, индекс, изглед, събитие и т.н.
Като допълнителна информация;
Можете да направите xdcr репликация на общностна версия.
Можете да направите xdcr репликация на корпоративна версия. Това изисква допълнителен лиценз. Ако не използвате режим на готовност като продукт, това не е висока такса.
Други конектори на Couchbase за XDCR; Elasticsearch, Hadoop, Kafka, Spark, Talend, SQL (ODBC / JDBC)
Управлението на Couchbase може да се извърши чрез WEB UI, REST API и CLI. По-специално, уеб потребителският интерфейс е много прост и ясен за използване. Можете да правите много оперативни транзакции и заявки чрез потребителския интерфейс.
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
Настройките на паметта за настройките на клъстера Xdcr се дават според стойността на паметта на сървъра.
Трябва да е свободен размер за памет на сървъра.
Xdcr се нуждае от допълнителна памет в продуктовия клъстер.
Възможно е копиране на кофа с множество дивани.
Примерна проста операция за репликация на XDCR;
Избран раздел Xdcr на началната страница на дивана.
Раздел „Добавяне на отдалечен клъстер“ е избран в избрания раздел xdcr.
Операцията за добавяне на отдалечен клъстер се извършва по следния начин.
Раздел за добавяне на репликация е избран в избрания раздел xdcr.
Операцията за добавяне на репликация на пакет се извършва по следния начин.
Най-добрите параметри за производителност на xdcr. Но може да се настрои отново за вашата система.
Състояние на репликация в раздела xdcr на източника (prod)
Статистически данни за репликация на кофа
Ефективност на репликацията при цел;
Ефективност на репликация при източник;
Препратки;
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 – Couchbase Certifications