当前事务快照

描述

事务快照 SDB_SNAP_TRANSACTIONS_CURRENT 列出当前会话在数据库中正在进行的事务信息。

当前会话在每一个数据节点上正在进行的事务为一条记录。(一般每个会话在每个数据节点上只有一个事务记录)

Note:

默认情况下,事务功能是关闭的。

如要打开事务功能需要在节点的配置文件中配置参数:transactionon = TRUE;在创建数据节点时,增加 JSON 类型的参数:{ “transactionon”: “YES” } 或 { “transactionon”: true }。

标示

SDB_SNAP_TRANSACTIONS_CURRENT

字段信息

字段名类型描述
NodeName字符串节点名(”主机名:端口号”)
SessionID长整型会话 ID
TransactionID字符串事务 ID
TransactionIDSN长整型事务序列号
IsRollback布尔型表示这个事务是否处于回滚中
CurrentTransLSN长整型事务当前的日志LSN
BeginTransLSN长整型事务开始的日志LSN
WaitLockBSON对象正在等待的锁
TransactionLocksNum整型事务已经获得的锁
RelatedID字符串内部标示
GotLocksBSON数组事务已经获得的锁列表

锁对象信息

WaitLock 和 GetLocks 字段中锁对象的信息:

字段名类型描述
CSID整型锁对象所在集合空间的 ID
CLID整型锁对象所在集合的 ID
ExtentID整型锁对象所在记录的ID
Offset整型锁对象所在记录的偏移量
Mode字符串锁的类型,对应有”IS”,”IX”,”S”,”U”和”X”
Count整型锁计数器(只在GetLocks中存在)
Duration整型锁的持有或等待时间,单位:毫秒

锁对象的描述

锁对象每个字段取值不同表示不同的锁对象:

锁对象CSIDCLIDExtentIDOffset备注
没有锁对象-165535-1-1一般在WaitLock为没有锁对象时,表示当前事务没有在等待锁
集合空间锁>= 065535-1-1
集合锁>= 0>= 0-1-1
记录锁>= 0>= 0>= 0>= 0

示例

  1. > db.snapshot( SDB_SNAP_TRANSACTIONS_CURRENT )
  2. {
  3. "NodeName": "ubuntu1604-xjh:20000",
  4. "SessionID": 89,
  5. "TransactionID": "03e80000000001",
  6. "TransactionIDSN": 1,
  7. "IsRollback": false,
  8. "CurrentTransLSN": 491325292,
  9. "BeginTransLSN": 491325292,
  10. "WaitLock": {},
  11. "TransactionLocksNum": 3,
  12. "RelatedID": "c0a81457c35000006b75",
  13. "GotLocks": [
  14. {
  15. "CSID": 1,
  16. "CLID": 0,
  17. "ExtentID": 9,
  18. "Offset": 36,
  19. "Mode": "U",
  20. "Count": 1,
  21. "Duration": 1137053
  22. },
  23. {
  24. "CSID": 1,
  25. "CLID": 0,
  26. "ExtentID": -1,
  27. "Offset": -1,
  28. "Mode": "IS",
  29. "Count": 1,
  30. "Duration": 1137053
  31. },
  32. {
  33. "CSID": 1,
  34. "CLID": 65535,
  35. "ExtentID": -1,
  36. "Offset": -1,
  37. "Mode": "IS",
  38. "Count": 1,
  39. "Duration": 1137053
  40. }
  41. ]
  42. }