我正在研究一些利用磁盘存储的OPA示例就像这个。我删除了临时目录以支持永久目录(就像在生产系统中一样),并且我注意到了一些奇怪的行为。如果我第一次写这个例子记录
"authz": {
"tenants": {
"acmecorp.openpolicyagent.org": {
"tier": "gold"
},
"globex.openpolicyagent.org" :{
"tier": "silver"
}
}
}然后用000001.sst、000001.vlog、DISCARD、KEYREGISTRY和MANIFEST文件填充目录。但是,在以后的每次读取时,都会添加一个新的.sst和.vlog文件,并添加一个递增的数字,例如000002.sst。在写、尤其是读时继续编写新文件似乎效率很低,为什么会这样呢?
另外,我是否期望在另一个线程上进行自己的垃圾收集,或者这是OPA或Badger内置的东西?
发布于 2022-04-20 07:33:16
在写、尤其是读时继续编写新文件似乎效率很低,为什么会这样呢?
从使用OPA的角度来看,这应该被看作是一个实现细节。我不能评论这些文件的必要性,除了这是獾是如何做到的。獾本身并不简单,它是一个多层系统,包含自己的缓存等等--太复杂了(对我来说!)以任何方式来判断它在磁盘上的行为。
另外,我是否期望在另一个线程上进行自己的垃圾收集,或者这是OPA或Badger内置的东西?
您是,不希望做任何这样的事情。事实上,OPA有一个运行的goroutine,它将定期调用建议的GC例程,这是密码。
如果您发现需要进一步挖掘,獾社区可能是另一个很好的场所,请参阅D图语篇范畴。(当然,我们也可以在OPA松懈的情况下讨论这个问题。)
https://stackoverflow.com/questions/71927473
复制相似问题