Модели процессов согласования реплик в базах данных Nosql



Download 2,9 Mb.
Pdf ko'rish
bet11/67
Sana29.03.2022
Hajmi2,9 Mb.
#516795
TuriАнализ
1   ...   7   8   9   10   11   12   13   14   ...   67
Bog'liq
193-Диссертация

1.3.
 
Функции согласования реплик в базах данных NoSQL 
Несмотря 
на 
разнообразие 
баз 
данных 
NoSQL, 
в 
процессе 
функционирования они выполняют некоторые общие функции, связанные с 
согласованием реплик: 
- размещение реплик записей БД в кластере и обеспечение их согласования 
при обновлении записи, 
- согласование версий реплики (сведение нескольких версий записи к одной 
записи в процессе ведения версий записи),


19 
- согласование (восстановление) реплик после устранения сбоя в узле. 
1.3.1.
 
Размещение реплик записей БД в кластере и обеспечение их 
согласования при обновлении записи 
В базах данных NoSQL в основном используются два способа размещения и 
обновления реплик: по принципу «главный-подчиненный» (master-slave) и «по 
кольцу» (ring). 
Первый способ подразумевает хранение данных на master-узле и их 
репликацию на slave-узлы. Все изменения выполняются на master-узле, и они 
сохраняются в памяти этого узла. Slave-узлы периодически опрашивают master-
узел, читают накопившиеся изменения и сохраняют их в своей памяти. 
Примерами таких баз данных являются MongoBD, HBase, Neo4j и др.
При размещении данных «по кольцу» необходимо определить, сколько в 
нем будет секций (v-узлов). Эти секции распределяются по серверам (по кольцу). 
На рисунке 1.5 показан пример [14]. Здесь определены 64 секции и они по кругу 
размещены по трем физическим серверам A, B, C. База данных выделит каждому 
серверу 21 или 22 секции (64/3). 
При включении записи в базу данных вычисляется хеш ключа, с помощью 
которого определяется номер секции (v-узла), по которому определяется сервер, 
где будет храниться эта запись. Другие реплики записи (их число равно N-1) 
сохраняются на следующих (N-1) серверах, расположенных по кольцу по часовой 
стрелке относительно первого сервера. Примерами баз данных с распределением 
по кольцу являются Riak, Amazon Dynamo и др. 


20 
Рисунок 1.5 – Кольцо с 64 v-узлами и тремя серверами [14]. 
Использование 
виртуальных 
узлов 
(v-узлов) 
имеет 
следующие 
преимущества [26]: 

если узел становится недоступен (из-за сбоев или планового 
обслуживания), 
нагрузка 
равномерно 
распределяется 
между 
оставшимися узлами; 

когда узел снова становится доступным или в систему добавляется 
новый узел, этот узел принимает на себя примерно равную нагрузку от 
каждого из других доступных узлов; 

количество виртуальных узлов, за которые отвечает реальный узел, 
может определяться исходя из мощности сервера, что позволяет 
выровнять нагрузку в неоднородной инфраструктуре. 
Репликация используется для повышения производительности и 
отказоустойчивости. При обновлении записи остальные реплики обновляются не 
сразу, а в течение окна рассогласованности – времени, которое проходит от 
момента обновления записи на каком-либо узле до момента завершения 
обновлений копий записи на всех остальных узлах. Различают следующие виды 
согласованности [27]: 
строгая согласованность
–любой запрос на чтение всегда вернет последнее 
обновление записи; 


21 
слабая согласованность
– система не гарантирует, что запрос на чтение 
всегда вернет последнее обновление записи;
согласованность в конечном счете
– особая форма слабой согласованности: 
система хранения гарантирует, что, если впоследствии не будет никаких новых 
обновлений записи, в конечном счете запрос на чтение вернет последнее 
обновление.
Согласованность тесно связана с доступностью системы, а также с 
устойчивостью к потере связности. Эту связь изложил Эрик Брювер в так 
называемой теореме CAP [28]. В теореме утверждается, что можно создать 
распределенную систему, которая будет 1) согласованной (Consistent), 2) 
доступной (Available) и 3) устойчивой к потере связности (Partition tolerant), но 
одновременно можно гарантировать только два из этих трех свойств. При 
согласованности в конечном счете гарантируются свойства 2 и 3. 
В дальнейшем в работе рассматривается строгая согласованность реплик и 
согласованность реплик в конечном счете (КС-согласованность). Ведем 
следующие обозначения: 
N – количество узлов, на которые в конечном счете будет реплицирована 
запись (с некоторой задержкой);
W – количество узлов (реплик), на которые данные должны быть 
фактически записаны перед тем, как пользователю (или приложению) будет 
отправлен ответ об успешном завершении операции (если Wеще продолжает реплицировать данные на оставшиеся N-W узлов);
R – количество узлов, от которых база данных ожидает ответа для 
успешного завершения чтения записи. 
В одних базах данных NoSQL указанные выше параметры задаются явно, в 
других – не явно, т.е. в зависимости от режима репликации (таблица 1.1). 
Явно задать параметры N, W, R непросто – это сложная задача, 
возникающая на этапе проектирования хранилища NoSQL. 


22 
Таблица 1.1 – Параметры N, W, R согласования реплик для разных баз данных NoSQL 
БД NoSQL 
Тип БД 
Тип (режим) 
репликации 
Механизм репликации 
Значения N, W, R 
Согласованность реплик 
Riak [19] 
Ключ-
значение 
С управляемыми 
параметрами 
репликации на уровне 
сегмента или запроса 
Выполняется обновление N 
реплик. 
N назначается для каждого сегмента 
записей, W и R назначаются на уровне 
сегмента или для каждой операции 
записи/чтения. 
КС- согласованность (W+R≤N). 
Строгая согласованность (W+R>N, 
если w=quorum и r= quorum). 
Amazon 
Dynamo [12] 
N, W, R назначаются для экземпляра 
целиком (per-instance). 
КС- согласованность (W+R≤N). 
Строгая согласованность (W+R>N) 
Casandra
[29] 
Семейство 
столбцов 
N назначается для каждого сегмента 
записей (REPLICATION_FACTOR), 
W и R назначаются на уровне 
сегмента или для каждой операции 
записи/чтения. 
КС- согласованность (W+R≤N). 
Строгая согласованность (W+R>N, 
если w=quorum и r=quorum). 
MongoDB 
[24] 
Документная 1. Replica sets 
(подмножество 
серверов, 
организованных как
master-slave) 
2. master-slave 
1.
А) запись и чтение выполняется 
через primary-реплику.
Б) запись выполняется через 
primary-реплику, чтение – через 
secondary-реплику. 
В) ReadConcern =«majority», 
WriteConcern= «majority» 
2.
Запрос на обновление 
выполняется только master-
узлом, slave-узлы опрашивают 
главный узел; возможно чтение 
из slave-узлов 
1. 
А) N=1 (primary-узел), 
W=1, R=1. 
Б) N= число серверов в replica sets
W=1, R=1. 
(это для каждой записи в primary-
реплике; еще необходимо учитывать 
задержку на интервал опроса primary-
узла). 
В) N=число серверов в replica sets; W 
и R вычисляются автоматически так, 
чтобы W+R>N. 
2.
N=число серверов в кластере, 
W=R=1 (это для каждой записи БД; 
еще необходимо учитывать задержку 
на интервал опроса master-узла) 
1.
А) Строгая согласованность 
(W+R>N). 
Б) КС- согласованность (W+R≤N). 
В) см. 1.А. 
2. См. 1.Б. 


23 

Download 2,9 Mb.

Do'stlaringiz bilan baham:
1   ...   7   8   9   10   11   12   13   14   ...   67




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish