[英]Sharding in orientdb distributed database
我正在orientDB 2.2.6中創建一個具有3個節點(即master1,master2和master3)的分布式數據庫。 我修改了每個節點上的hazelcast.xml和orientdb.server.config.xml文件。 我在所有3個節點上使用了一個通用的default-distributed-db-config.json,如下所示。
{
"autoDeploy": true,
"readQuorum": 1,
"writeQuorum": "majority",
"executionMode": "undefined",
"readYourWrites": true,
"failureAvailableNodesLessQuorum": false,
"servers": {
"*": "master"
},
"clusters": {
"internal": {
},
"address": {
"owner" : "master1",
"servers": [ "master1" ]
},
"address_1": {
"owner" : "master1",
"servers" : [ "master1" ]
},
"ip": {
"owner" : "master2",
"servers" : [ "master2" ]
},
"ip_1": {
"owner" : "master2",
"servers" : [ "master2" ]
},
"id": {
"owner" : "master3",
"servers" : [ "master3" ]
},
"id_1": {
"owner" : "master3",
"servers" : [ "master3" ]
},
"*": {
"servers": [ "<NEW_NODE>" ]
}
}
}
然后,我依次啟動master1機器中的分布式服務器master2和master3,並讓它們同步默認數據庫。 然后,我在master1機器中創建了一個數據庫和三個類(地址,IP,ID)及其屬性和索引。 正如我在default-distributed-db-config.json文件中提到的那樣,Address類具有兩個集群,它們位於master1機器中。 IP類有兩個集群,它們駐留在master2機器中。
當我將值插入Address類時,按照預期的那樣,它們將按照循環策略進入master1計算機的集群中。 但是,當我從master2機器中插入IP值時,它們正在master1中創建一個集群並將其插入新集群。 基本上,所有值都進入master1機器。 當我列出群集時,master2和master3機器中的群集為空。
因此,我無法在三個節點之間分配數據。 它基本上將數據存儲到單台計算機中。 如何分片數據? 我嘗試插入數據的方式是否有問題?
謝謝
在當前的OrientDB版本中,不轉發寫操作(創建/更新/刪除)。 只有讀取。 因此,客戶端應連接到處理您要向其寫入數據的群集的服務器。
通常,這不是問題,因為選擇了本地群集,但是如果要在遠程服務器上的特定群集上寫入,則尚不支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.