- $SNAPSHOT_TRANS
- 描述
- 标示
- 字段信息
- 锁对象信息
- 锁对象的描述
- 示例
$SNAPSHOT_TRANS
描述
事务快照 $SNAPSHOT_TRANS 列出数据库中正在进行的事务信息。
每一个数据节点上正在进行的每一个事务为一条记录。
Note:
默认情况下,事务功能是关闭的。
如要打开事务功能需要在节点的配置文件中配置参数:transactionon = TRUE;在创建数据节点时,增加 JSON 类型的参数:{ "transactionon": "YES" } 或 { "transactionon": true }。
标示
$SNAPSHOT_TRANS
字段信息
字段名 | 类型 | 描述 |
---|---|---|
NodeName | 字符串 | 节点名("主机名:端口号") |
SessionID | 长整型 | 会话 ID |
TransactionID | 字符串 | 事务 ID |
TransactionIDSN | 长整型 | 事务序列号 |
IsRollback | 布尔型 | 表示这个事务是否处于回滚中 |
CurrentTransLSN | 长整型 | 事务当前的日志LSN |
BeginTransLSN | 长整型 | 事务开始的日志LSN |
WaitLock | BSON对象 | 正在等待的锁 |
TransactionLocksNum | 整型 | 事务已经获得的锁 |
RelatedID | 字符串 | 内部标示 |
GotLocks | BSON数组 | 事务已经获得的锁列表 |
锁对象信息
WaitLock 和 GetLocks 字段中锁对象的信息:
字段名 | 类型 | 描述 |
---|---|---|
CSID | 整型 | 锁对象所在集合空间的 ID |
CLID | 整型 | 锁对象所在集合的 ID |
ExtentID | 整型 | 锁对象所在记录的 ID |
Offset | 整型 | 锁对象所在记录的偏移量 |
Mode | 字符串 | 锁的类型,对应有"IS","IX","S","U"和"X" |
Count | 整型 | 锁计数器(只在GetLocks中存在) |
Duration | 整型 | 锁的持有或等待时间,单位:毫秒 |
锁对象的描述
锁对象每个字段取值不同表示不同的锁对象:
锁对象 | CSID | CLID | ExtentID | Offset | 备注 |
---|---|---|---|---|---|
没有锁对象 | -1 | 65535 | -1 | -1 | 一般在WaitLock为没有锁对象时,表示当前事务没有在等待锁 |
集合空间锁 | >= 0 | 65535 | -1 | -1 | |
集合锁 | >= 0 | >= 0 | -1 | -1 | |
记录锁 | >= 0 | >= 0 | >= 0 | >= 0 |
示例
- > db.exec( "select * from $SNAPSHOT_TRANS" )
- {
- "NodeName": "hostname:42000",
- "SessionID": 20,
- "TransactionID": "00040000000003",
- "TransactionIDSN": 3,
- "IsRollback": false,
- "CurrentTransLSN": 3314225876,
- "BeginTransLSN": 3314225744,
- "WaitLock": {},
- "TransactionLocksNum": 3,
- "RelatedID": "c0a8143ec35000005f33",
- "GotLocks": [
- {
- "CSID": 906,
- "CLID": 0,
- "ExtentID": 9,
- "Offset": 128,
- "Mode": "X",
- "Count": 2,
- "Duration": 907829
- },
- {
- "CSID": 906,
- "CLID": 0,
- "ExtentID": -1,
- "Offset": -1,
- "Mode": "IX",
- "Count": 2,
- "Duration": 907830
- },
- {
- "CSID": 906,
- "CLID": 65535,
- "ExtentID": -1,
- "Offset": -1,
- "Mode": "IS",
- "Count": 2,
- "Duration": 907830
- }
- ]
- }