C驱动概述

C 客户端程序主要提供了数据库,集合空间,集合,游标,副本组,节点,大对象,域这8个级别的操作。更多信息可参考 C API

句柄

C 客户端驱动的句柄分为两类。一类用于数据库操作,另一类用于集群操作。

  • 数据库操作句柄

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

    1)数据库

    2)集合空间

    3)集合

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

    每个集合空间可以包含最多4096个集合。

    每个集合可以包含多条记录。

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

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

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

    Note:

    (1)对于每一个连接,其产生的集合空间,集合,与游标句柄公用一个套接字。因此在多线程系统中,必须确保每个线程不会同时针对同一套接字,在同一时间发送或接收数据。

    (2) 一般来说,不建议使用多个线程共同操作一个连接句柄与其产生的其它句柄。

    (3) 如果每个线程使用自己的连接句柄以及其它产生的句柄,则可以保证线程安全。

  • 集群操作句柄

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

    1)分区组

    2)数据节点

    3)域

    Note:

    分区组包二种类型:编目分区组、数据分区组。

    分区组实例,数据节点实例,域实例可以用以下句柄表示。

    句柄名称描述
    sdbReplicaGroupHandle分区组句柄代表一个单独的分区组
    sdbNodeHandle数据节点句柄代表一个单独的数据节点
    sdbDomainHandle域句柄代表一个单独的域

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

    • sdbReplicaGroupHandle 的实例用于管理分区组。其操作包括启动、停止分区组,获取分区组中节点的状态、名称信息、数目信息。

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

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

错误信息

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

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

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

> 0 :表示系统错误,请查阅相关系统的错误码信息。