C 驱动

C 客户端程序主要提供了数据库、集合空间、集合、游标、复制组、节点、大对象和域级别的操作。

句柄

C 客户端驱动的句柄分为数据库操作和集群操作两类。

数据库操作句柄

SequoiaDB 巨杉数据库中的数据存放分为三个级别:

  • 数据库

  • 集合空间

  • 集合

每一个数据库中的集合空间没有物理上限,每个集合空间在单系统内存放为一个单独的文件,因此集合空间的数量取决于磁盘和内存的大小。每个集合空间最多可以包含 4096 个集合,每个集合可以包含多条记录。

在一台物理系统内,每个集合空间最大 256GB。对比关系型数据库,可以把记录看作关系型数据库的“行”,把集合看作关系型数据库的“表”。因此在数据库操作中,可用三个句柄分别代表连接、集合空间和集合,一个句柄代表游标,一个句柄代表大对象。

句柄 名称 描述
sdbConnectionHandle 数据库连接句柄 代表一个单独的数据库连接
sdbCSHandle 集合空间句柄 代表一个单独的集合空间
sdbCollectionHandle 集合句柄 代表一个单独的集合
sdbCursorHandle 游标句柄 代表一个查询产生的结果集
sdbLobHandle 大对象句柄 代表一个大对象

C 客户端程序需要使用不同的句柄进行操作,例如:读取数据的操作需要游标句柄,而创建集合空间则需要数据库连接句柄。

Note:

  • 对于每一个连接,其产生的集合空间、集合与游标句柄公用一个套接字。因此在多线程系统中,必须确保每个线程不会同时针对同一套接字,在同一时间发送或接收数据。
  • 一般来说,不建议使用多个线程共同操作一个连接句柄与其产生的其它句柄。
  • 如果每个线程使用自己的连接句柄以及其它产生的句柄,则可以保证线程安全。

集群操作句柄

SequoiaDB 巨杉数据库中的集群操作分为三个级别:

  • 复制组

  • 数据节点

Note:

复制组包含编目复制组和数据复制组两种类型。

复制组实例、数据节点实例和域实例可以用以下句柄表示:

句柄 名称 描述
sdbReplicaGroupHandle 复制组句柄 代表一个单独的复制组
sdbNodeHandle 数据节点句柄 代表一个单独的数据节点
sdbDomainHandle 域句柄 代表一个单独的域
  • sdbReplicaGroupHandle 的实例用于管理复制组。其操作包括启动和停止复制组、获取复制组中节点的状态、获取复制组中节点的名称信息和数目信息。

  • sdbNodeHandle 的实例用于管理数据节点。其操作包括启动和停止指定的数据节点、获取指定数据节点实例、获取主从数据节点实例及获取数据节点地址信息。

  • sdbDomainHandle 的实例用于修改和获取域信息。

Note:

与集群相关的操作需要使用复制组及数据节点句柄

错误信息

每个函数都有返回值,返回值的定义如下:

  • SDB_OK (数据值为 0):表示执行成功

  • < 0 :表示数据库错误,具体的错误描述在 C 驱动开发包中 include/ossErr.h 文件中可以找到

  • > 0 :表示系统错误,需要查阅相关系统的错误码信息

回到顶部