使用 Heroku 临时文件系统作为 Ehcache 磁盘存储

Using the Heroku ephemeral filesystem as Ehcache disk storage

正如 Heroku Dyno ephemeral filesystem documentation 解释的那样,当 dyno 停止或重新启动时,文件系统将被丢弃。这意味着它不能用作持久(磁盘)存储。

我的用例是我想使用 Ehcache 缓存一些参考数据。我正在考虑使用一些(有限的)堆内存来获得最佳性能,如果它不足以回退到磁盘存储。 使用 Ehcache,这可以在每个缓存的基础上很好地配置,例如在堆内存中存储最多 1000 个条目,例如磁盘上 25MB。

根据 Heroku 文档,在 dyno 运行ning 期间,临时文件系统似乎将保持完整。 在我的情况下,当应用程序停止或重新启动时它被丢弃并不重要。 在我的用例中,当我 运行 3 dyno 时它们在堆和磁盘中都有自己的缓存也没有关系。

  1. 我的假设是否正确,即在 dyno(s) 运行ning 期间,临时文件系统不会在请求期间被丢弃?仅当测功机停止或重新启动时?
  2. 能否谈谈临时文件系统的性能?特别是在我将其用作缓存磁盘存储的用例中。
  3. 临时文件系统的大小是多少?我似乎无法在文档中找到它。

总体而言,您将 Ehcache 写入磁盘的计划似乎不错。每次 dyno 重新启动后,您当然会支付一些开销,但这是大多数缓存系统的预期。

  1. Is my assumption correct that the ephemeral filesystem will not be discarded during the requests while the dyno(s) is running? Only when a dyno is stopped or restarted?

是的,你是对的。

  1. Can something be said about the performance of the ephemeral filesystem? Especially in my use case to use it as cache disk store.

您可以期待与写入 AWS EC2 实例中的文件系统类似的性能。太好了。

  1. What is the size of the ephemeral filesystem? I cannot seem to find that in the documentation.

我认为没有已发布的限制。它还取决于您的测功机(即它是像业余测功机那样的多租户还是像性能-m 一样专用)。我猜想只要你写的小于 1GB 就应该没有问题。