簡體   English   中英

OrientDB分布式數據庫中的分片

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM