我正在寻找一个分布式文件(或其他存储)系统来管理大量可变文档。每个文档可能相当大(1-100MB)。有些读取需要保证从最新数据开始工作,有些读取可以从最终一致的复制数据中读取。每个文档都可以是一个自包含文件(例如,SQLite数据库或其他自定义文件格式)。
为获得最佳性能,每个文档发生写入的分布式文件系统的节点必须不同。换句话说,服务器A是文档1的主服务器,服务器B正在复制它,但服务器B是文档2的主服务器,服务器A正在复制它。对于我的应用程序,单个服务器无法处理整个系统的所有写入流量,因此不能接受所有数据的单个主服务器。
应该在一些服务器上复制每个文档(例如,3)。因此,如果我有1000个文档和10个服务器,每个服务器将拥有300个文档的副本,并且是其中100个文档的主文档。理想情况下,群集会自动将服务器提升为主服务器崩溃的文档的主服务器,并在新服务器添加到群集时重新平衡存储负载。
我意识到这是一个非常高的命令......有哪些东西能满足我的大部分核心需求吗?