App Fabric能够缓存文件或只是数据库查询吗?

时间:2011-10-04 15:39:10

标签: appfabric distributed-computing hpc

我有一个驻留在每个节点上的函数。该函数需要访问用于访问文件(而不是数据库)的文件夹路径。目前,我同步每个节点上的文件夹,以便我们避免访问单个共享驱动器。我可以避免此同步步骤并在文件夹上使用App Fabric缓存吗?或者缓存仅用于正式的数据库查询?任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:3)

你可以在AppFabric,中缓存任何类型的对象,只要它是可序列化的(或者如果你在美国可以序列化:-))(我假设它可以在它之间编组)服务器正确)。因此,如果将每个文件缓存为字节数组,那么可以将文件夹中的所有文件放入AppFabric缓存中。

仅仅因为你可以,并不意味着你应该。你还没有说过你是在阅读这些文件还是写这些文件;如果您只是阅读,在第一次阅读时,您的代码将从缓存中获取字节数组,将其反序列化到磁盘,然后读取它,但在后续读取时,您为什么还要再次获取缓存版本?如果您正在编写,要更新文件,您将再次获取缓存数据,将其作为文件重新放回磁盘,更新文件,然后重新序列化以更新缓存并在像这样的分布式环境中我会担心需要多长时间以及其他服务器是否会对同一数据进行并发更新。当然,你可以通过引入AppFabrics悲观并发来解决这个问题,但是你必须自己确定这些好处是否超过了它可能产生的潜在影响。

您可能仍然需要每个节点上的文件集,或者您尝试避免依赖的共享文件夹,以便填充缓存的第一个节点实际上具有填充数据!

我认为我首先会看到folder replication之类的内容,以便在AppFabric缓存之前保持节点同步。