C++ 客户端驱动提供了数据库、集合空间、集合、游标、复制组、节点、域和大对象级别的操作。
C++ 客户端驱动有和两种类实例。一种用于数据库操作,另一种用于集群操作。
SequoiaDB 巨杉数据库中的数据存放分为三个级别:
数据库
集合空间
集合
在数据库操作中,可用三个类来分别表示数据库连接、集合空间和集合,一个类表示游标,一个类表示大对象。
类 | 名称 | 描述 |
---|---|---|
sdb | 数据库类 | 该类主要用于管理整个数据库,包括建立连接,创建集合空间等 |
sdbCollectionSpace | 集合空间类 | 该类主要用于管理集合 |
sdbCollection | 集合类 | 该类主要用于对数据进行增删改查等操作 |
sdbCursor | 游标类 | 该类主要用于遍历查询、快照返回的结果,游标实例代表一个查询产生的游标 |
sdbLob | 大对象类 | 该类主要用于对大对象进行读写等操作 |
C++ 客户端需要使用不同的实例进行操作,例如:读取数据的操作需要游标实例,而创建集合空间则需要数据库实例。
Note:
- 对于每一个连接,其产生的集合空间、集合与游标句柄共用一个套接字。因此在多线程系统中,必须确保每个线程不会同时针对同一套接字,在同一时间发送或接收数据。
- 一般来说,不建议使用多个线程共同操作一个连接句柄与其产生的其它句柄。
- 如果每个线程使用自己的连接句柄以及其它产生的句柄,则可以保证线程安全。
SequoiaDB 巨杉数据库中的集群操作分为三个级别:
复制组
数据节点
域
Note:
复制组包括编目复制组、协调复制组和数据复制组三种类型。
复制组实例、数据节点实例和域实例可以用以下三种类的实例表示:
类 | 名称 | 描述 |
---|---|---|
sdbReplicaGroup | 复制组类 | 复制组实例代表一个单独的复制组 |
sdbNode | 数据节点类 | 数据节点实例代表一个单独的数据节点 |
sdbDomain | 域类 | 域实例代表一个管理若干个复制组的域 |
sdbReplicaGroup 的实例用于管理复制组。其操作包括启动、停止复制组,获取复制组中节点的状态、名称信息、数目信息。
sdbNode 的实例用于管理数据节点。其操作包括启动、停止指定的数据节点,获取数据节点地址信息。
sdbDomain 的实例用于管理域。其包括修改域、获取域信息等操作。
Note:
与集群相关的操作需要使用复制组及数据节点实例
每个函数都有返回值,返回值的定义如下:
SDB_OK(数据值为0):表示执行成功
< 0 :表示数据库错误,具体的错误描述在 C++ 驱动开发包中 include/ossErr.h
文件中可以找到
> 0 :表示系统错误,需要查阅相关系统的错误码信息