1. 数据库配置
sequoiadb支持命令行和配置文件两种方式,当共存时命令行会覆盖配置文件。
2. 监控
1)快照
上下文快照(等等)
列出当前数据库节点中所有绘画所对应的上下文。每个会化为一条记录,如果一个会话中包括一个或一个以上的上下文时,Contexts数组字段对每个上下文产生一个对象。
标示
SDB_SNAP_CONTEXTS
字段信息
字段名 | 类型 | 描述 |
---|---|---|
SessionID | 字符串 | 会话 ID(主机名:端口号:ID) |
Contexts.ContextID | 长整型 | 上下文 ID |
Contexts.Type | 字符串 | 上下文类型,如:DUMP |
Contexts.Description | 字符串 | 上下文的描述信息,如:包含当前的查询条件 |
Contexts.DataRead | 长整型 | 所读数据 |
Contexts.IndexRead | 长整型 | 所读索引 |
Contexts.QueryTimeSpent | 浮点数 | 查询总时间(秒) |
Contexts.StartTimestamp | 时间戳 | 创建时间 |
示例
> db.snapshot(SDB_SNAP_CONTEXTS) { "SessionID": "vmsvr2-suse-x64:11820:28", "Contexts": [ { "ContextID": 12, "Type": "DUMP", "Description": "BufferSize:0", "DataRead": 0, "IndexRead": 0, "QueryTimeSpent": 0, "StartTimestamp": "2013-09-27-18.06.37.079570" } ] }
2)列表
集合空间列表(等等)
集合列表
描述
集合快照列出当前数据库节点中所有的非临时集合(协调节点中列出用户集合),每个集合为一条记录。
标示
SDB_LIST_COLLECTIONS
字段信息
由于数据节点与编目节点保存的集合信息不同,集合列表在协调节点与其它节点所返回的结构有所不同:
非协调节点字段信息
字段名 | 类型 | 描述 |
---|---|---|
Name | 字符串 | 集合完整名 |
Details.ID | 整型 | 集合 ID,范围0~4095,集合空间内唯一 |
Details.LogicalID | 整型 | 集合逻辑 ID |
Details.Sequence | 整型 | 序列号 |
Details.Indexes | 整型 | 该集合所包含的索引数量 |
Details.Status | 字符串 | 集合当前状态
|
协调节点字段信息
字段名 | 类型 | 描述 |
---|---|---|
Name | 字符串 | 集合完整名 |
非协调节点示例
> db.list(SDB_LIST_COLLECTIONS) { "Name": "foo.test", "Details": [ { "ID": 0, "Logical ID": 0, "Sequence": 1, "Indexes": 2, "Status": "Normal" } ] }
协调节点示例
> db.list(SDB_LIST_COLLECTIONS) { "Name": "foo.bar" }
3. 引擎调度单元
引擎调度单元
概念
引擎调度单元(Engine Dispatchable Unit)是 SequoiaDB 数据库中任务运行的载体,一般来说一个 EDU 意味着一个单独的线程。
每个 EDU 可以用来执行用户的请求,或者执行系统内部的维护任务。
EDU 之间相互独立,不同 EDU 单独负责不同的用户会话。一个用户会话与一个 EDU,在一个数据节点中相互绑定。
每个 EDU 拥有一个进程内唯一的64位整数标示,称作“EDU ID”。
EDU 可以分为用户 EDU 与系统 EDU,分别代表执行用户任务的线程,与执行系统任务的线程。
用户 EDU
用户 EDU 为执行用户任务的线程,一般又叫作代理(Agent)线程。
在 SequoiaDB 中,主要存在下列代理线程类型:
名称 类型 描述 Agent 代理 代理线程负责由 svcname 服务传入的请求,一般来说该请求由用户直接传入 ShardAgent 分区代理 分区代理线程负责由 shardname 服务传入的请求,一般来说该请求由协调节点传入数据节点 CoordAgent 协调代理 协调代理线程负责由svcname服务传入的请求,一般来说该请求由用户直接传入,仅作用于协调节点 ReplAgent 复制代理 复制代理线程负责由 replname 服务传入的请求,一般来说该请求由数据主节点传向从节点,多作用于非协调节点 HTTPAgent HTTP 代理 HTTP 代理线程负责由 httpname 服务传入的 REST 请求,一般来说该请求由用户直接传入 系统 EDU
系统 EDU 为系统内部维护数据结构及一致性的线程,一般来说对用户完全透明。
在 SequoiaDB 中,存在但不局限于下列系统 EDU:
名称 类型 描述 TCPListener 服务监听 该线程负责监听 svcname 服务,并启动 Agent 代理线程 HTTPListener HTTP 监听 该线程负责监听 httpname 服务,并启动 Agent 代理线程 Cluster 集群管理 集群管理线程用于维护集群的基本框架,启动 ReplReader 与 ShardReader 线程 ReplReader 复制监听 复制监听线程负责由 replname 服务传入的请求,并启动 ReplAgent 代理线程 ShardReader 分区监听 分区监听线程负责由 shardname 服务传入的请求,并启动 ShardAgent 代理线程 LogWriter 日志写 日志写线程用于将日志缓冲区中的数据写入日志文件 WindowsListener Windows 事件监听 Windows 环境特有,用于监听 Windows 中 SequoiaDB 定义事件 Task 后台任务处理 后台任务处理线程,一般来说用于处理后台任务请求,例如数据切分 CatalogMC 编目主控 编目主控线程用于接收和分发编目节点接收到的请求 CatalogNM 编目节点控制 编目节点控制线程用于处理编目节点内部集群信息相关的请求 CatalogManager 编目控制 编目控制线程用于处理编目节点内部元数据相关的请求 CatalogNetwork 编目网络监听 编目网络监听线程用于监听编目服务 catalogname 下的请求 CoordNetwork 协调网络监听 协调网络监听线程用于监听分区的请求 监控
用户可以使用会话快照监控系统与用户 EDU。