【发布时间】:2020-06-26 07:38:17
【问题描述】:
今天存在一个系统,它会在数据包捕获文件进入时将它们写入本地磁盘。出于容错原因,将这些文件作为第一步删除到本地磁盘被认为是可取的。如果客户端死机并需要重新连接或在其他地方启动,我们可以享受从磁盘重播的能力。
数据管道的下一步是尝试将这些登陆到磁盘的数据发送到远程客户端。假设有足够的磁盘空间,我觉得使用本地磁盘(以及它上面的页面缓存)作为持久的无限先进先出非常方便。还希望使用文件系统来保持生产者和消费者之间的低耦合。
在我的研究中,我没有找到很多关于这种架构的指导。更具体地说,我没有在流行的开源库/框架中看到用于在文件被写入流式传输时读取文件的成熟模式。
我的问题:
此架构中是否存在我没有注意到或间接淡化的缺陷?
是否有建议在文件写入时使用它,并在文件中有更多可用数据时有效地阻塞和/或异步通知?
目标是显式或隐式地让消费者从页面缓存温暖中受益。有没有关于如何对此进行优化的建议?
【问题讨论】:
标签: c++ file-io streaming posix disk-io