GridDB集群操作出现TXN_REQUEST_IGNORED ERROR 10906问题求助
解决GridDB集群TXN_REQUEST_IGNORED ERROR 10906问题
问题场景
在Ubuntu 20.04环境下,使用Python 3.8连接由5个混合4.4/4.5版本节点组成的GridDB集群时,执行读写事务操作频繁触发TXN_REQUEST_IGNORED ERROR 10906错误,怀疑与版本不匹配有关。执行代码如下:
from griddb_python import StoreFactory, GSException def perform_cluster_operations(): try: factory = StoreFactory.get_default() gridstore = factory.get_store({ "host": "239.0.0.1", "port": 41999, "cluster_name": "defaultCluster", "username": "admin", "password": "admin" }) # Retrieve container for performing transactions container = gridstore.get_container("containerName") if container is None: raise Exception("Container not found") # Attempt a read transaction on the container row = container.get(1) print(f"Row retrieved: {row}") # Perform a write transaction to update a row container.put(2, {"id": 2, "value": "newValue"}) print("Row updated successfully.") except GSException as e: print(f"Transaction failed: {e.what()}") raise if __name__ == "__main__": perform_cluster_operations()
1. 如何验证各节点的GridDB版本?
可以通过以下几种方式在每个集群节点上验证版本:
- 直接查看服务版本:执行终端命令
该命令会直接输出GridDB服务器的具体版本号(如4.4.0或4.5.0)。gs_server --version - 查看安装包版本(Ubuntu系统):
从输出的dpkg -l griddb-serverVersion列可以确认当前节点的安装包版本。 - 集群状态查询:在任意节点上执行集群状态命令,查看所有节点的版本信息:
输出中每个节点的详情里会包含版本字段。gs_stat -c defaultCluster -u admin/admin
2. 版本不匹配是否会引发该10906错误?
是的,GridDB集群要求所有节点版本完全一致。4.4与4.5版本之间存在事务处理协议、内部消息格式的差异,混合版本运行时:
- 不同版本节点无法正确解析对方的事务请求
- 事务同步逻辑在版本不兼容时会被拒绝,直接触发
TXN_REQUEST_IGNORED(错误码10906) - 这类版本不兼容问题还可能引发其他集群同步异常,不仅仅局限于事务操作。
3. 如何升级同步集群版本以规避该错误?
按照以下步骤安全升级所有节点到同一版本(以统一升级到4.5版本为例):
步骤1:全量备份数据
在升级前,务必对集群数据进行备份,防止数据丢失:
# 在任意节点执行集群备份 gs_backup -b /opt/griddb_backup -c defaultCluster -u admin/admin
备份完成后确认备份目录的完整性。
步骤2:逐个节点升级(避免集群不可用)
不要同时停止多个节点,逐个升级才能保证集群持续可用:
- 停止目标节点的GridDB服务:
sudo systemctl stop griddb - 卸载旧版本包:
sudo dpkg -r griddb-server - 安装4.5版本的GridDB包:
先确保GridDB的官方源已配置,然后执行:sudo apt update sudo apt install griddb-server=4.5.0 # 替换为具体的4.5.x版本号 - 启动服务并检查状态:
确认服务正常启动,且节点重新加入集群(可通过sudo systemctl start griddb sudo systemctl status griddbgs_stat命令验证)。 - 重复上述步骤,完成所有节点的升级。
步骤3:验证集群一致性与兼容性
- 执行
gs_stat -c defaultCluster -u admin/admin,确认所有节点版本均为4.5.x - 运行原Python测试代码,检查是否还出现10906错误
- 确保Python客户端
griddb_python的版本与服务器版本匹配(可通过pip show griddb_python查看,若不匹配则升级客户端:pip install griddb_python==4.5.0)
内容的提问来源于stack exchange,提问作者Samar Mohamed
相关产品推荐
相关产品推荐

