【问题标题】:Using the Heroku ephemeral filesystem as Ehcache disk storage使用 Heroku 临时文件系统作为 Ehcache 磁盘存储
【发布时间】:2019-03-06 23:00:29
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java caching heroku filesystems ehcache


    【解决方案1】:

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

    1. 我的假设是否正确,即在 dyno(s) 运行时,在请求期间不会丢弃临时文件系统?仅当测功机停止或重新启动时?

    是的,你是对的。

    1. 能否谈谈临时文件系统的性能?尤其是在我将其用作缓存磁盘存储的用例中。

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

    1. 临时文件系统的大小是多少?我似乎在文档中找不到。

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

    【讨论】:

    • 感谢@codefinger 为您提供详细说明。这听起来应该是可行的。我想我最多只需要 100MB 或 200MB 应该没问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2013-02-02
    • 2023-03-17
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多