问题
我一直在开发一个应用程序,该应用程序需要支持异步读取数据对象并附加写入。换句话说,一个缓冲区。在任何给定时间都会有许多数据对象。
我一直在研究可用的分布式文件系统,以找到一个支持在写入文件时读取文件的系统,但我的搜索一无所获。根据经验,我知道 Amazon S3 不支持这一点,而我不确定其他的,例如 HadoopDFS。
解决方案:分块?
我曾考虑将数据分块作为一种解决方案,这将涉及将传入的写入拆分为 n 字节块以将其作为一个整体写入 DFS。不再需要的块可以被删除而不会干扰正在写入的新数据,因为它们是 DFS 上的单独文件。
这种策略的问题是,当缓冲区读取器消耗数据的速度比缓冲区写入器创建它的速度快时,它会导致暂停。较小的块会减轻这种影响,但并不完美。
总结问题
- 是否存在支持将对象作为缓冲区读取/写入的 DFS?
- 如果不是,在 DFS 上分块数据是模拟缓冲区的最佳方式吗?