Доброго времени суток.
Допустим вы имеете базу данных Oracle NoSQL и столкнулись с проблемой чтения данных из базы. Как решить эту проблему? Давайте добавим новых узлов в шард (увеличим репликационный фактор) - тем самым мы увеличим колличество узлов с которых можно читать одни и те же данные.
Допустим у вас есть четырехузловая конфигурация (2 шарда, репликационный фактор 2), как показано на картинке:
Создавалась такая конфигурация следующим скриптом:
[root@datanode1 ~]# cat deploy_rf2.txt
configure -name "FilDB"
plan deploy-datacenter -name "FilDC" -rf 2 -wait
plan deploy-sn -dc dc1 -host datanode1 -port 5011 -wait
plan deploy-admin -sn sn1 -port 5001 -wait
plan deploy-sn -dc dc1 -host datanode2 -port 5012 -wait
plan deploy-sn -dc dc1 -host datanode3 -port 5013 -wait
plan deploy-sn -dc dc1 -host datanode4 -port 5014 -wait
pool create -name FilPool
pool join -name FilPool -sn sn1
pool join -name FilPool -sn sn2
pool join -name FilPool -sn sn3
pool join -name FilPool -sn sn4
topology create -name topo -pool FilPool -partitions 300
plan deploy-topology -name topo -wait
[root@datanode1 ~]# kvadmin load -file deploy_rf2.txt
Просто выполним скрипт:
[root@datanode1 ~]# cat change_rf.txt
plan deploy-sn -dc dc1 -host datanode5 -port 5015 -wait
plan deploy-sn -dc dc1 -host datanode6 -port 5016 -waitpool join -name FilPool -sn sn5
pool join -name FilPool -sn sn6
topology clone -current -name NewTopo
topology change-repfactor -name NewTopo_chrf -pool FilPool -rf 3 -dc dc1
plan deploy-topology -name NewTopo_chrf -wait
[root@datanode1 ~]# kvadmin load -file change_rf.txt
Таким образом мы добавили 2 ноды в кластер и увеличили репликационный фактор системы до 3х (тем самым увеличив пропускную способность на чтение). Колличество шардов, при этом не поменялось. Новые ноды будут отрабытывать запросы на чтение.
Комментариев нет:
Отправить комментарий