C++#

KV接口#

KVClient::KVClient()

构造KV缓存客户端实例。

KVClient::~KVClient()

析构KV缓存客户端实例,析构过程中会自动断开与 Worker 的连接,释放客户端持有的资源。

KVClient::Init()

建立与数据系统 Worker 之间的连接并完成初始化。

KVClient::ShutDown()

断开与数据系统 Worker 之间的连接。

KVClient::Create()

创建数据系统共享内存Buffer,可以将数据拷贝到Buffer中,再调用Set接口缓存到数据系统中。

KVClient::Set()

将共享内存数据缓存到数据系统。

KVClient::MCreate()

创建数据系统共享内存Buffer,可以将数据拷贝到Buffer中,再调用Set接口缓存到数据系统中。

KVClient::MSet()

键值对批量设置接口。

KVClient::Get()

获取键对应的数据。

KVClient::Del()

删除指定键值对。

KVClient::DelAll()

异步删除集群中所有的键值对。

KVClient::HealthCheck()

检查连接的 Worker 是否健康。

KVClient::Exist()

批量查询一组键(keys)是否存在。

KVClient::Expire()

批量为一组键(keys)更新过期生命周期。

Hetero接口#

HeteroClient::HeteroClient()

构造Hetero缓存客户端实例。

HeteroClient::~HeteroClient()

析构Hetero缓存客户端实例,析构过程中会自动断开与 Worker 的连接,释放客户端持有的资源。

HeteroClient::Init()

建立与数据系统 Worker 之间的连接并完成初始化。

HeteroClient::ShutDown()

断开与数据系统 Worker 之间的连接。

HeteroClient::MSetD2H()

批量将数据从异构设备(Device)缓存到数据系统主机(Host)侧。

HeteroClient::MGetH2D()

批量从数据系统主机(Host)侧获取数据并直接写入到异构设备(Device)内存中。该接口与 MSetD2H() 配合使用。

HeteroClient::AsyncMSetD2H()

批量将数据从异构设备(Device)异步缓存到数据系统主机(Host)侧,立即返回 std::shared_future< AsyncResult > 对象。

HeteroClient::AsyncMGetH2D()

批量将数据从系统主机(Host)异步获取到异构设备主机(Host)侧,立即返回 std::shared_future< AsyncResult > 对象。与 AsyncMSetD2H() 配合使用。

HeteroClient::DevPublish()

将异构设备上的内存作为数据系统的异构对象发布。异构对象可通过 DevSubscribe 获取。DevPublish 和 DevSubscribe 必须同时使用。

HeteroClient::DevSubscribe()

批量获取异构设备内存上的数据。DevPublish 和 DevSubscribe 必须同时使用。通过 DevSubscribe 获取数据后,数据系统会自动删除该异构对象,并且不再管理与该对象对应的异构设备内存。

HeteroClient::DevMSet()

批量缓存异构设备(Device)数据到数据系统中,缓存成功后其他客户端可通过 key 访问对应的异构设备(Device)数据。

HeteroClient::DevMGet()

批量从异构设备获取数据并将其写入devBlobList。数据直接通过异构设备间通道传输。

HeteroClient::Delete()

批量删除指定key(通过MSetD2H/AsyncMSetD2H缓存进来的key)。key不存在时视为删除成功。

HeteroClient::AsyncDevDelete()

异步删除数据在异构设备的key(通过 DevMSet() 缓存的key)。执行此命令后,数据系统将不再管理与该key对应的设备内存。

HeteroClient::DevDelete()

批量删除数据在异构设备的key(由DevMset缓存的key)。执行此命令后,数据系统将不再管理与该key对应的设备内存。

HeteroClient::DevLocalDelete()

删除当前客户端连接存储在数据系统中的数据副本。

HeteroClient::HealthCheck()

检查连接的 Worker 是否健康。

HeteroClient::Exist()

批量查询一组key是否存在,并返回每个key的存在性状态。支持最多10000个key的查询。

HeteroClient::GetMetaInfo()

批量获取指定租户的key的数据大小和位置。

HeteroClient::GenerateKey()

生成一个唯一的key,提供给其他接口设置数据使用。

Object接口#

ObjectClient::ObjectClient()

构造Object缓存客户端实例。

ObjectClient::~ObjectClient()

析构Object缓存客户端实例,析构过程中会自动断开与 Worker 的连接,释放客户端持有的资源。

ObjectClient::Init()

建立与数据系统 Worker 之间的连接并完成初始化。

ObjectClient::ShutDown()

断开与数据系统 Worker 之间的连接。

ObjectClient::GIncreaseRef()

为指定的对象的全局引用计数加1。推荐在create对象之前为对象增加引用计数,因为在跨节点访问场景中,未进行引用计数的对象可能刚创造就会被驱逐。

ObjectClient::GDecreaseRef()

为指定的对象的全局引用计数减1。全局引用计数为0时,删除对象。

ObjectClient::QueryGlobalRefNum()

获取指定object key的全局引用计数数量。

ObjectClient::Create()

创建数据系统共享内存Buffer,可以将数据拷贝到Buffer中,再调用Set接口缓存到数据系统中。该接口应用于避免创建临时内存,减少内存拷贝的场景。

ObjectClient::Put()

设置键值对数据缓存到数据系统。

ObjectClient::GetObjMetaInfo()

获取指定租户的object keys的大小和位置。

ObjectClient::GenerateKey()

生成一个唯一的key,提供给Put接口使用。。

ObjectClient::GetPrefix()

获取指定key的前缀。

KVClient::HealthCheck()

检查连接的 Worker 是否健康。

Stream接口#

StreamClient::StreamClient()

构造Stream缓存客户端实例。

StreamClient::~StreamClient()

析构Stream缓存客户端实例,析构过程中会自动断开与 Worker 的连接,释放客户端持有的资源。

StreamClient::Init()

建立与数据系统 Worker 之间的连接并完成初始化。

StreamClient::ShutDown()

断开与数据系统 Worker 之间的连接。

StreamClient::CreateProducer()

创建生产者, 创建生产者时会创建流。

StreamClient::Subscribe()

创建消费者,创建消费者时会创建流。

StreamClient::DeleteStream()

删除数据流。在全局生产者和消费者个数为0时,该数据流不再使用,清理各个worker上及master上与该数据流相关的元信息。

StreamClient::QueryGlobalProducersNum()

指定流的名称,查询流的生产者数量。

StreamClient::QueryGlobalConsumersNum()

指定流的名称,查询流的消费者数量。

Producer::Producer()

构造流缓存生产者实例。

Producer::~Producer()

析构流缓存生产者实例,析构过程中会自动断开与 Worker 的连接,释放流缓存生产者持有的资源。

Producer::Send()

Producer发送数据。

Producer::Send()

Producer发送数据, 可以配置超时时间。

Producer::Close()

关闭生产者会触发刷新数据缓冲区。一旦关闭后,生产者不可再用。

Consumer::Consumer()

构造流缓存消费者实例。注:consumer对象并非线程安全,所以当有多个线程尝试调用同一个consumer做操作时会返回K_SC_STREAM_IN_USE错误码。

Consumer::~Consumer()

析构流缓存消费者实例,析构过程中会自动断开与 Worker 的连接,释放消费者持有的资源。

cpp:func:

Status Consumer::Receive

消费者接收数据带有订阅功能,接收数据会等待接收expectNum个elements的时候返回成功,或者当超时时间timeoutMs到达返回成功。

cpp:func:

Status Consumer::Receive

消费者获取到element后立刻返回。如果没有element,将等待直到超时时间到达。。

Consumer::Ack()

消费者接收完某elementId标识的element后,需要确认已消费完,使得各个worker上可以获取到是否所有消费者都已经消费完的信息,若所有消费者都消费完某个Page, 可以触发内部的内存回收机制。若不Ack,则在消费者退出时候才会自动Ack。

Consumer::Close()

关闭消费者后,它将不再允许调用receive和ack。对已关闭的消费者调用 Close() 方法将返回 K_OK。

Consumer::GetStatisticsMessage()

获取自此消费者构造以来已接收的element的数量,以及未处理的element的数量。