捆绑下载限制?

问题描述

遇到一些我需要解决的问题。 OPA Engine版本是0.23.2,我正在尝试下载捆绑软件,但是我收到以下错误消息“捆绑软件下载失败:捆绑软件超出最大大小(1073741824字节)”

解决方法

1GB的限制是硬编码的(到目前为止)https://github.com/open-policy-agent/opa/blob/63560e0d1e767a8c973bfa217d3c734adea6d5f7/bundle/bundle.go#L42

请记住,当未压缩的加载到内存中时,1GB的json压缩数据很可能会占用大量内存。给出为什么存在这个限制的一些背景...经验法则是,它类似于原始JSON的20倍->内存中的golang / opa数据结构,并且gzip压缩的差异更大,但我认为比例为5:1相当合理。餐巾纸上的数学运算可以为OPA加载100GB内存以加载1GB捆绑包(1 5 20)。大多数OPA用例不太可能能够/不想发生这种情况,因此会出现错误。

编辑:1GB的限制原来不是压缩包大小,而是未压缩的JSON文件。因此,内存扩展没有上限(但是上面的示例对于1GB 压缩大小的捆绑包仍然适用)

我建议提出一个问题,看来我们可能可以公开一个config选项,以增加可接受的内存使用情况的用例限制(gzip的比率较低,结构上的开销较小等)。 JSON数据上