微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对于 Cockroach DB,获取 'Caused by: org.postgresql.util.PSQLException: ERROR: root: memory budget exceeded

如何解决对于 Cockroach DB,获取 'Caused by: org.postgresql.util.PSQLException: ERROR: root: memory budget exceeded

在服务器上部署 CDB v20.2.5 后,一段时间后,我们开始频繁出现此错误

org.springframework.orm.jpa.JpaSystemException: Could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: Could not extract ResultSet
Caused by: org.hibernate.exception.GenericJDBCException: Could not extract ResultSet
Caused by: org.postgresql.util.PsqlException: ERROR: root: memory budget exceeded: 40960 bytes requested,984028160 currently allocated,984028160 bytes in budget

我猜,这里的“预算中的字节数”是指 CDB 的缓存,根据错误,因为它已满,无法处理新请求。

在这错误之后,我们开始获取 CDB 的连接超时。

我的问题:

  • 缓存应该如何工作,理想情况下它应该替换任何新请求的数据
  • 连接超时是否是这些错误的结果。?
  • 本地 JDBC 查询是否会影响此问题,因为那里不存在休眠缓存。

注意:这里的缓存是 CDB 推荐的主存的 0.25 倍

解决方法

缓存应该如何工作,理想情况下它应该替换任何新请求的数据

此错误不涉及任何特定缓存。它一般是指在其限制下运行的 SQL 模块,该限制由 --max-sql-memory 控制。您真的有“大”查询吗?

连接超时是否是这些错误的结果。?

我对此感到惊讶。我希望错误而不是超时。如果你能找到一个好的复制品,我们很乐意看一看。

本地 JDBC 查询是否会影响此问题,因为那里不存在休眠缓存。

不知道,抱歉。或者我不明白这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?