我一直在开发一个应用程序,它需要支持对数据对象的读取,并附加写入。换句话说,一个缓冲区。在任何给定时间都会有许多数据对象。
我一直在研究可用的分布式文件系统,以找到一个支持在写入时读取文件的系统,但我的搜索没有提供任何内容。我知道Amazon S3不支持这种体验,而我不确定HadoopDFS等其他人。
我已经考虑过将数据分块作为解决方案,这将涉及将传入的写入分成n字节块以作为整体写入DFS。可以删除不再需要的块而不会干扰正在写入的新数据,因为它们是DFS上的单独文件。
此策略的问题是当缓冲区读取器比缓冲区编写器创建数据时更快地消耗数据时会导致暂停。较小的块会减轻这种影响,但不是很完美。
答案 0 :(得分:0)
Lustre(lustre.org)支持并发连贯读写,包括O_APPEND写入。并发由Lustre分布式锁管理器(LDLM)控制,该管理器向客户端授予扩展锁定并撤消冲突锁定。支持多个读取器和多个并发写入同一文件,它们将看到一致的文件数据,就像本地文件系统一样。