我正在编写一个通过gui读取文件的应用程序,将其转换为其他格式,将这两个文件保存在MySQL数据库中,并将转换后的文件作为下载选项呈现给用户。
我想知道可以使用什么缓存技术/设计模式来缓解这种潜在的瓶颈。例如,立即缓存转换后的两个文件(@CacheResult?)并将缓存的文件返回给用户ASAP,然后才将文件保存到DB。
我正在使用JBoss并可以使用Infinispan进行缓存。我猜这种用例必须有既定的模式,我只是不知道它们是什么!
答案 0 :(得分:0)
你的瓶颈在写,而不是读。
您的操作系统会缓存文件供您阅读。缓存的唯一原因是您希望更多地控制缓存文件的生命周期,而不是依赖于固有的文件系统缓存。
至于写作,您可以简单地转换为内存,然后在后台将其保存到磁盘。但你没有ACIDity这样做 - 失去系统,你失去了转换和原始数据。
真正的解决方案是在后端提供合适的I / O,例如高端SAN / NAS设备或简单的现代SSD。