Libelektra: mmap:不断变化的环境

创建于 2019-04-06  ·  4评论  ·  资料来源: ElektraInitiative/libelektra

作为#1433 的后续,我假设 mmap 插件也受到影响。 例如,假设 $HOME 更改并且新的配置文件也比 mmap 缓存文件旧。 然后将采用缓存文件,尽管它实际上已过期。

我不希望我们可以轻松解决这个问题,但如果您能描述我们的要求,以免发生此类问题,那就太好了。

question

所有4条评论

你是对的,目前缓存只检查插件 kdbOpen 中的 ENV。 它可以很容易地动态检查,但这会调用解析器,我怀疑它对性能有很大影响。

编辑:附带说明:检查配置的确切时间戳(纳秒粒度),但问题仍然存在并且对于默认解析器也是如此。

解决此错误的方法是我们还将解析的文件名存储在 mmap 缓存中。 但总的来说,它无济于事,我们需要以某种方式捕获所有可能有影响的变量(或避免在我们的插件中使用任何环境变量,无论如何这可能是更优雅的解决方案)。

我没有考虑过这种情况,但实际上我们将解析的文件名存储在 mmap 缓存中。 如果路径改变,它会产生缓存未命中。

尽管如此,如果 $HOME 在 KDB 句柄打开时发生更改,它不会将缓存重新定位到新主目录。

我没有考虑过这种情况,但实际上我们将解析的文件名存储在 mmap 缓存中。 如果路径改变,它会产生缓存未命中。

完美的! 无论如何,这是最重要的情况。 Afaik 我们目前除了解析器之外没有环境变量。 (不过,并非所有环境变量实际上都会影响文件名。例如 curlresolver 使用 HTTP_PROXY。)

尽管如此,如果 $HOME 在 KDB 句柄打开时发生更改,它不会将缓存重新定位到新主目录。

好的,但这是一个旧错误(#1433)。 所以我会关闭这个错误,因为 mmap 似乎不会让情况变得更糟。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

darddan picture darddan  ·  4评论

markus2330 picture markus2330  ·  3评论

markus2330 picture markus2330  ·  3评论

mpranj picture mpranj  ·  4评论

e1528532 picture e1528532  ·  4评论