You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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版本?

可以通过以下几种方式在每个集群节点上验证版本:

  • 直接查看服务版本:执行终端命令
    gs_server --version
    
    该命令会直接输出GridDB服务器的具体版本号(如4.4.0或4.5.0)。
  • 查看安装包版本(Ubuntu系统):
    dpkg -l griddb-server
    
    从输出的Version列可以确认当前节点的安装包版本。
  • 集群状态查询:在任意节点上执行集群状态命令,查看所有节点的版本信息:
    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:逐个节点升级(避免集群不可用)

不要同时停止多个节点,逐个升级才能保证集群持续可用:

  1. 停止目标节点的GridDB服务:
    sudo systemctl stop griddb
    
  2. 卸载旧版本包:
    sudo dpkg -r griddb-server
    
  3. 安装4.5版本的GridDB包:
    先确保GridDB的官方源已配置,然后执行:
    sudo apt update
    sudo apt install griddb-server=4.5.0  # 替换为具体的4.5.x版本号
    
  4. 启动服务并检查状态:
    sudo systemctl start griddb
    sudo systemctl status griddb
    
    确认服务正常启动,且节点重新加入集群(可通过gs_stat命令验证)。
  5. 重复上述步骤,完成所有节点的升级。

步骤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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 02:25:11