0

我正在编写一个应用程序,它通过 gui 读取文件,将其转换为不同的格式,将两个文件保存在 MySQL DB 中,并将转换后的文件作为下载选项提供给用户。

我想知道可以使用哪些缓存技术/设计模式来缓解这种潜在的瓶颈。例如,在转换后立即缓存两个文件(@CacheResult ?)并尽快将缓存的文件返回给用户,然后才将文件保存到 DB。

我正在使用 JBoss 并且可以使用 Infinispan 进行缓存。我猜这种用例必须有既定的模式,我只是不知道它们是什么!

4

1 回答 1

0

你的瓶颈在于写入,而不是读取。

您的操作系统将缓存文件供您阅读。缓存的唯一原因是如果您想更好地控制缓存文件的生命周期,而不是依赖于固有的文件系统缓存。

至于写入,您可以简单地转换为内存,然后稍后在后台将其保存到磁盘。但是你没有 ACIDity 那样做——失去系统,你失去了转换和原始数据。

真正的解决方案是在后端拥有不错的 I/O,例如高端 SAN/NAS 设备或简单的现代 SSD。

于 2013-02-03T22:45:36.937 回答