apache / incubator-hugegraph

A graph database that supports more than 100+ billion data, high performance and scalability (Include OLTP Engine & REST-API & Backends)
https://hugegraph.apache.org
Apache License 2.0
2.63k stars 517 forks source link

不同机器上启动start-hugegraph.sh,但配制文件指向同一个后端是否可行? #96

Open zhouyang209117 opened 6 years ago

zhouyang209117 commented 6 years ago

操作步骤:

  1. 在机器A上下载hugegraph-0.7.4.zip,解压,修改配制文件指向一个mysql实例,执行start-hugegraph.sh启动
  2. 在机器B上下载hugegraph-0.7.4.zip,解压,修改配制文件指向和上一步同样的mysql实例,执行start-hugegraph.sh启动 增,删,查,改的请求可能发到机器A,也可能发到机器B。

这样做的目的: A,B两个机器上都执行start-hugegraph.sh且指向同一个后端,为了防止某一个机器上的start-hugegraph.sh启动的进程挂了导致服务不可用。 2个机器上都有hugegraph.sh启动的进程,就避免了一个机器上的start-hugegraph.sh启动的进程挂了导致图数据库服务不可用。 这样实现『高可用』是否可行?是否会用数据不一致或死锁问题? 如果可行,那是不是可以在100台机器上都启动start-hugegraph.sh,都指向同一个mysql后端。这样只要100台机器不同时挂,图数据库服务就一直可用?

zhoney commented 6 years ago

@zhouyang209117 启动多个HugeGraphServer服务指向相同存储后端,是有可能导致数据不一致的。

因为每一个HugeGraphServer内部都实现了缓存,用来存放访问频繁的元数据和部分图数据。当其中一个HugeGraphServer修改数据时,并不会通知其他HugeGraphServer更新缓存或者缓存失效。这时其他HugeGraphServer中的数据就是过期数据了。

learn-xujun commented 5 years ago

@zhouyang209117 启动多个HugeGraphServer服务指向相同存储后端,是有可能导致数据不一致的。

因为每一个HugeGraphServer内部都实现了缓存,用来存放访问频繁的元数据和部分图数据。当其中一个HugeGraphServer修改数据时,并不会通知其他HugeGraphServer更新缓存或者缓存失效。这时其他HugeGraphServer中的数据就是过期数据了。

请问是否可以通过设置不缓存来解决数据不一致的问题?

Ghosttttt commented 5 years ago

@zhoney 同问

@zhouyang209117 启动多个HugeGraphServer服务指向相同存储后端,是有可能导致数据不一致的。 因为每一个HugeGraphServer内部都实现了缓存,用来存放访问频繁的元数据和部分图数据。当其中一个HugeGraphServer修改数据时,并不会通知其他HugeGraphServer更新缓存或者缓存失效。这时其他HugeGraphServer中的数据就是过期数据了。

请问是否可以通过设置不缓存来解决数据不一致的问题?