API参考
介绍
本文档描述了UBS IO对外提供的API接口信息,包括API接口参数解释和使用样例等。
-
编程语言
UBS IO主体使用C/C++语言开发,对外提供C API。
-
功能架构
UBS IO结合JuiceFS实现计算侧分布式缓存,降低IO读写时延,提升端到端的整体性能。
-
API参考
介绍应用开发过程中最常用和基础的API,建议使用UBS IO的开发者对这些API都有所了解。
-
错误码
介绍UBS IO的错误码名称、取值及部分常见错误码的处理方法。
BioInitialize
函数定义
UBS IO初始化接口,使用者根据实际应用场景选择合适的工作模式来初始化UBS IO读写缓存服务。
实现方法
CResult BioInitialize(WorkerMode mode, ClientOptionsConfig *optConf)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| mode | WorkerMode | 入参 | 工作模式,有以下两种类型: CONVERGENCE(0):融合模式,适用于AI场景。 SEPARATES(1):分离模式,适用于大数据场景。 |
| optConf | ClientOptionsConfig* | 入参 | UBS IO初始化选项,详细解释参见表2。 |
| 参数 | 结构体字段 | 说明 |
|---|---|---|
| ClientOptionsConfig | LogType logType | 日志类型。 STDOUT_TYPE(0)标准流输出。 FILE_TYPE(1)日志文件输出。 STDERR_TYPE(2)标准错误流输出。 仅分离模式下生效。 |
| char logFilePath[PATH_MAX] | 日志文件输出路径,仅分离模式下生效,使用者需要保证传入的日志路径可访问。 | |
| uint8_t enable | 安全开关。 0:表示关闭。 非0:表示打开。 |
|
| char certificationPath[PATH_MAX] | Client证书路径,安全使能时要求路径有效。 | |
| char caCerPath[PATH_MAX] | CA证书路径,安全使能时要求路径有效。 | |
| char caCrlPath[PATH_MAX] | 吊销证书列表文件路径,可选。安全使能时要求路径有效。 | |
| char privateKeyPath[PATH_MAX] | Client证书私钥路径,安全使能时要求路径有效。 | |
| char privateKeyPassword[PATH_MAX] | Client证书私钥口令密文的文件路径,可以为空,为空时需要提供未加密的私钥路径。不为空时安全使能时要求路径有效。 | |
| char decrypterLibPath[PATH_MAX] | Client证书解密函数so文件路径,可以为空,为空时需要提供明文口令。不为空时安全使能时要求路径有效。 | |
| char opensslLibDir[PATH_MAX] | Client端openssl, crypto的so目录路径,可选,为空时使用默认版本,安全使能时要求路径有效。 |
返回值
表 3 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_ERROR | 操作失败。 |
BioExit
函数定义
UBS IO退出接口,使用者调用该接口退出UBS IO读写缓存服务。
实现方法
void BioExit()
参数说明
无入参。
返回值
无返回值。
BioCreateCache
函数定义
创建Cache实例接口,使用者根据实际应用场景选择合适的缓存策略和数据亲和策略来创建UBS IO Cache实例。
实现方法
CResult BioCreateCache(CacheDescriptor desc)
参数说明
表 1 参数说明
参数名 |
数据类型 |
参数类型 |
描述 |
|---|---|---|---|
desc |
CacheDescriptor |
入参 |
实例参数描述:
|
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EXISTS | Cache实例已存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NO_SPACE | 缓存空间不足,最大缓存数量为1024个。 |
BioGetCache
函数定义
获取Cache实例接口。
实现方法
CResult BioGetCache(uint64_t tenantId, CacheDescriptor *desc)
参数说明
表 1 参数说明
参数名 |
数据类型 |
参数类型 |
描述 |
|---|---|---|---|
tenantId |
uint64_t |
入参 |
租户ID。 |
desc |
CacheDescriptor* |
出参 |
实例参数描述:
|
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
BioDestroyCache
函数定义
销毁Cache实例接口。
实现方法
CResult BioDestroyCache(uint64_t tenantId)
参数说明
表 1 参数说明
参数名 |
数据类型 |
参数类型 |
描述 |
|---|---|---|---|
tenantId |
uint64_t |
入参 |
租户ID。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
BioCalcLocation
函数定义
计算对象位置接口。
实现方法
CResult BioCalcLocation(uint64_t tenantId, uint64_t objectId, ObjLocation *location)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| objectId | uint64_t | 入参 | 对象ID。 |
| location | ObjLocation* | 出参 | 对象位置,由两个uint64_t组成,对使用者透明。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_PT_FAULT | 分区错误,对象位置无法写入。 |
BioPut
函数定义
对象写入接口。
实现方法
CResult BioPut(uint64_t tenantId, const char *key, const char *value, uint64_t length, ObjLocation location)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| key | const char* | 入参 | 对象的key。 |
| value | const char* | 入参 | 待写入的数据buffer,value空间的长度必须和入参length一致。 |
| length | uint64_t | 入参 | 写入数据长度。 |
| location | ObjLocation | 入参 | 对象位置。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_PT_FAULT | 分区错误,对象位置无法写入。 |
| RET_CACHE_ERROR | 操作失败。 |
BioGet
函数定义
对象读取接口。
实现方法
CResult BioGet(uint64_t tenantId, const char *key, uint64_t offset, uint64_t length, ObjLocation location, char *value, uint64_t *realLength)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| key | const char* | 入参 | 对象的key。 |
| offset | uint64_t | 入参 | 待读取数据偏移。 |
| length | uint64_t | 入参 | 读取的数据长度。 |
| location | ObjLocation | 入参 | 对象位置。 |
| value | char* | 入参 | 待读取的数据buffer。 |
| realLength | uint64_t* | 出参 | 实际读取的数据长度。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_READ_EXCEED | 读取数据长度超过写入长度。 |
| RET_CACHE_ERROR | 操作失败。 |
BioDelete
函数定义
对象删除接口。
实现方法
CResult BioDelete(uint64_t tenantId, const char *key, ObjLocation location)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| key | const char* | 入参 | 对象的key。 |
| location | ObjLocation | 入参 | 对象位置。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_PT_FAULT | 分区错误,对象位置无法写入。 |
| RET_CACHE_ERROR | 操作失败。 |
BioLoad
函数定义
对象加载接口,该接口是异步接口。
实现方法
CResult BioLoad(uint64_t tenantId, const char *key, uint64_t offset, uint64_t length, ObjLocation location, BioLoadCallback callback, void *context)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| key | const char* | 入参 | 对象的key。 |
| offset | uint64_t | 入参 | 待加载数据的偏移。 |
| length | uint64_t | 入参 | 待加载的数据长度。 |
| location | ObjLocation | 入参 | 对象位置。 |
| callback | BioLoadCallback | 入参 | 异步回调函数。 |
| context | void* | 入参 | 回调上下文。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_PT_FAULT | 分区错误,对象位置无法写入。 |
| RET_CACHE_ERROR | 操作失败。 |
BioListAll
函数定义
对象列举接口,要求使用者调用BioFreeListResources接口释放列举结果的内存资源。
实现方法
CResult BioListAll(uint64_t tenantId, const char *prefix, ObjStat **objs, uint64_t *objNum)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| prefix | const char* | 入参 | 待匹配的对象前缀。 |
| objs | ObjStat** | 出参 | 列举对象结果。 |
| objNum | uint64_t* | 出参 | 列举对象的数量。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_NO_SPACE | 内存空间不足。 |
| RET_CACHE_ERROR | 操作失败。 |
BioFreeListResources
函数定义
释放列举对象结果内存资源接口。
实现方法
void BioFreeListResources(ObjStat **objs, uint64_t objNum)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| objs | ObjStat** | 入参 | 列举对象结果。 |
| objNum | uint64_t | 入参 | 列举对象的数量。 |
返回值
无返回值。
BioStat
函数定义
查询对象信息接口。
实现方法
CResult BioStat(uint64_t tenantId, const char *key, ObjLocation location, ObjStat *stat)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| key | const char* | 入参 | 对象的key。 |
| location | ObjLocation | 入参 | 对象位置。 |
| stat | ObjStat* | 出参 | 对象信息。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_PT_FAULT | 分区错误,对象位置无法写入。 |
| RET_CACHE_ERROR | 操作失败。 |
BioNotifyUpgradePrepare
函数定义
通知升级准备接口,使用者调用该接口后将停止UBS IO读写缓存服务,缓存数据逐渐淘汰到后端存储,后续前台IO直接写入后端存储中。
实现方法
CResult BioNotifyUpgradePrepare(uint64_t tenantId)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_ERROR | 操作失败。 |
BioNotifyUpgradeFinish
函数定义
通知升级完成接口,使用者调用该接口后将重启UBS IO读写缓存服务,后续前台IO直接写入后端缓存中。
实现方法
CResult BioNotifyUpgradeFinish(uint64_t tenantId)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_ERROR | 操作失败。 |
BioCheckUpgradeReady
函数定义
检查升级就绪接口。使用者调用该接口返回成功则表示允许进行离线升级;返回失败则需要延时等待后再次检查。
实现方法
CResult BioCheckUpgradeReady(uint64_t tenantId)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_ERROR | 操作失败。 |
BioAllocCacheSpace
函数定义
申请缓存空间接口,该接口配合免拷贝写使用。
实现方法
CResult BioAllocCacheSpace(uint64_t tenantId, uint64_t objectId, uint64_t length, CacheSpaceDesc *space)
参数说明
表 1 参数说明
参数名 |
数据类型 |
参数类型 |
描述 |
|---|---|---|---|
tenantId |
uint64_t |
入参 |
租户ID。 |
objectId |
uint64_t |
入参 |
对象ID。 |
length |
uint64_t |
入参 |
待申请缓存空间长度,最大值为4,194,304(4M)。 |
space |
CacheSpaceDesc* |
出参 |
缓存空间信息描述:
|
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_PT_FAULT | 分区错误,对象位置无法写入。 |
| RET_CACHE_ERROR | 操作失败。 |
BioPutWithCopyFree
函数定义
对象免拷贝写入接口。
实现方法
CResult BioPutWithCopyFree(uint64_t tenantId, const char *key, CacheSpaceDesc *space)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| tenantId | uint64_t | 入参 | 租户ID。 |
| key | const char * | 入参 | 对象的key。 |
| space | CacheSpaceDesc* | 入参 |
调用BioAllocCacheSpace成功后返回的缓存空间,所有CacheAddress address[CACHE_SPACE_ADDRESS_SIZE]中的size和最大值为4,194,304(4M)。 缓存空间信息描述:
|
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_PT_FAULT | 分区错误,对象位置无法写入。 |
| RET_CACHE_ERROR | 操作失败。 |
BioReadHook
函数定义
拦截读接口。
实现方法
int BioReadHook(uint64_t inode, char *buff, uint64_t count, uint64_t offset, int *readLen)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| inode | uint64_t | 入参 | 文件inode。 |
| buff | char* | 入参 | 待读取数据buffer。 |
| count | uint64_t | 入参 | 待读取的数据长度。 |
| offset | uint64_t | 入参 | 待读取的数据偏移。 |
| readLen | int* | 出参 | 实际读取数据长度。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| 0 | 操作成功。 |
| 非0 | 操作失败。 |
BioWriteHook
函数定义
劫持写接口。
实现方法
int BioWriteHook(uint64_t inode, char *buff, uint64_t count, uint64_t offset, uint64_t fh)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| inode | uint64_t | 入参 | 文件inode。 |
| buff | char* | 入参 | 待写入的数据。 |
| count | uint64_t | 入参 | 待写入数据的长度。 |
| offset | uint64_t | 入参 | 待写入数据的偏移。 |
| fh | uint64_t | 入参 | 文件描述符。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| 0 | 操作成功。 |
| 非0 | 操作失败。 |
BioWriteCopyFreeHook
函数定义
劫持免拷贝写接口。
实现方法
int BioWriteCopyFreeHook(uint64_t inode, uint64_t offset, uint64_t count, CacheSpaceDesc *space)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| inode | uint64_t | 入参 | 文件inode。 |
| offset | uint64_t | 入参 | 待写入数据的偏移。 |
| count | uint64_t | 入参 | 待写入数据的长度。 |
| space | CacheSpaceDesc* | 入参 | 调用BioAllocCacheSpace成功后返回的缓存空间。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| 0 | 操作成功。 |
| 非0 | 操作失败。 |
BioRegisterInterceptorRead
函数定义
注册拦截读接口。
实现方法
void BioRegisterInterceptorRead(ReadHook rh)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| rh | ReadHook | 入参 | 读钩子函数。 |
返回值
无返回值。
BioRegisterInterceptorWrite
函数定义
注册劫持写接口。
实现方法
void BioRegisterInterceptorWrite(WriteHook wh)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| wh | WriteHook | 入参 | 写钩子函数。 |
返回值
无返回值。
BioRegisterInterceptorWriteCopyFree
函数定义
注册劫持免拷贝写接口。
实现方法
void BioRegisterInterceptorWriteCopyFree(WriteCopyFreeHook wh)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| wh | WriteCopyFreeHook | 入参 | 免拷贝写钩子函数。 |
返回值
无返回值。
BioConvertLocation
函数定义
转换对象位置描述接口。
实现方法
CResult BioConvertLocation(ObjLocation location, ObjLocationDetail *detailLoc)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| location | ObjLocation | 入参 | 原始对象位置。 |
| detailLoc | ObjLocationDetail* | 出参 | 对象位置详细描述的结构参数解释参见表2。 |
| 参数 | 结构体字段 | 说明 |
|---|---|---|
| ObjLocationDetail | hostMaster | 主副本的主机名数组。 |
| hostSlave | 从副本的主机名数组。 | |
| portMaster | 主副本主机端口。 | |
| portSlave | 从副本主机端口。 |
返回值
表 3 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_ERROR | 操作失败。 |
BioShowCacheResource
函数定义
查询系统缓存资源使用情况接口后,需要使用者调用BioFreeCacheResourcePtr接口释放查询结果的内存资源。
实现方法
CResult BioShowCacheResource(CacheResourcesDesc **nodeDesc, uint64_t *nodeNum)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| nodeDesc | CacheResourcesDesc** | 出参 | 节点缓存资源使用情况,参数解释参见表2 详细参数说明。 |
| nodeNum | uint64_t* | 出参 | 节点数量。 |
| 参数 | 结构体字段 | 说明 |
|---|---|---|
| CacheResourcesDesc | nodeId | 节点ID。 |
| rCacheMemCapacity | 读缓存内存容量。 | |
| rCacheDiskCapacity | 读缓存磁盘容量。 | |
| wCacheMemCapacity | 写缓存内存容量。 | |
| wCacheDiskCapacity | 写缓存磁盘容量。 | |
| rCacheMemUsedSize | 读缓存内存使用情况。 | |
| rCacheDiskUsedSize | 读缓存磁盘使用情况。 | |
| wCacheMemUsedSize | 写缓存内存使用情况。 | |
| wCacheDiskUsedSize | 写缓存磁盘使用情况。 |
返回值
表 3 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_READY | TurboIO服务未就绪。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_NO_SPACE | 空间不足。 |
| RET_CACHE_ERROR | 操作失败。 |
BioFreeCacheResourcePtr
函数定义
释放缓存资源的内存接口。
实现方法
void BioFreeCacheResourcePtr(CacheResourcesDesc **nodeDesc, uint64_t nodeNum)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| nodeDesc | CacheResourcesDesc** | 入参 | 节点缓存资源使用情况。 |
| nodeNum | uint64_t | 入参 | 节点数量。 |
返回值
无返回值。
BioShowCacheHitRatio
函数定义
查询系统缓存命中率接口,查询结果的内存资源要求使用者调用BioFreeCacheHitPtr接口进行释放。
实现方法
CResult BioShowCacheHitRatio(CacheHitFinalDesc *desc, CacheHitFinalDesc **nodeDesc, uint64_t *nodeNum)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| desc | CacheHitFinalDesc* | 出参 | 所有节点缓存命中率。参数解释参见表2 详细参数说明。 |
| nodeDesc | CacheHitFinalDesc** | 出参 | 各节点的缓存命中率。 |
| nodeNum | uint64_t* | 出参 | 节点数量。 |
| 参数 | 结构体字段 | 说明 |
|---|---|---|
| CacheHitFinalDesc | nodeId | 节点ID。当所有节点命中率为参数时,该字段为无效信息。 |
| rCacheHitMemCount | 读缓存内存命中数。 | |
| rCacheHitDiskCount | 读缓存磁盘命中数。 | |
| rCacheHitCount | 读缓存命中总数。 | |
| rCacheTotalCount | 读缓存查询总数。 | |
| wCacheHitMemCount | 写缓存内存命中数。 | |
| wCacheHitDiskCount | 写缓存磁盘命中数。 | |
| wCacheHitCount | 写缓存命中总数。 | |
| wCacheTotalCount | 写缓存查询总数。 | |
| backendHitCount | 后端命中数。 |
返回值
表 3 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| RET_CACHE_NO_SPACE | 空间不足。 |
| RET_CACHE_ERROR | 操作失败。 |
BioFreeCacheHitPtr
函数定义
释放缓存命中率相关的内存资源。
实现方法
void BioFreeCacheHitPtr(CacheHitFinalDesc **nodeDesc, uint64_t nodeNum)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| nodeDesc | CacheHitFinalDesc** | 入参 | 各节点缓存命中率。 |
| nodeNum | uint64_t | 入参 | 节点数量。 |
返回值
无返回值。
BioAddDisk
函数定义
新增加盘接口。
实现方法
CResult BioAddDisk(const char *diskPath)
参数说明
表 1 参数说明
| 参数名 | 数据类型 | 参数类型 | 描述 |
|---|---|---|---|
| diskPath | const char * | 入参 | 新增块设备路径,必须是有效的路径。 |
返回值
表 2 返回值说明
| 返回值 | 描述 |
|---|---|
| RET_CACHE_OK | 操作成功。 |
| RET_CACHE_EPERM | 传入参数错误。 |
| RET_CACHE_NOT_READY | UBS IO服务未就绪。 |
| RET_CACHE_PT_FAULT | 分区故障。 |
| RET_CACHE_NEED_RETRY | 需要外部重试。 |
| RET_CACHE_ERROR | 操作失败。 |
错误码
表 1 错误码
| 错误码数 | 错误码 | 含义 |
|---|---|---|
| 0 | RET_CACHE_OK | 操作成功。 |
| 1 | RET_CACHE_PROTECTED | 写缓存保护。 |
| 2 | RET_CACHE_ERROR | 操作失败。 |
| 3 | RET_CACHE_EPERM | 传入参数错误。 |
| 4 | RET_CACHE_BUSY | 缓存忙碌,需要外部重试。 |
| 5 | RET_CACHE_NEED_RETRY | 需要外部重试。 |
| 6 | RET_CACHE_NOT_READY | 缓存未就绪。 |
| 7 | RET_CACHE_NOT_FOUND | Cache实例不存在。 |
| 8 | RET_CACHE_CONFLICT | 对象冲突。 |
| 9 | RET_CACHE_MISS | 缓存未命中。 |
| 10 | RET_CACHE_NO_SPACE | 空间不足。 |
| 11 | RET_CACHE_UNAVAILABLE | 缓存服务不可用。 |
| 12 | RET_CACHE_EXCEED_QUOTA | 超出配额限制。 |
| 13 | RET_CACHE_PT_FAULT | 分区故障。 |
| 14 | RET_CACHE_READ_EXCEED | 超出读取限制。 |
| 15 | RET_CACHE_EXISTS | Cache实例已存在。 |
| 16 | RET_CACHE_DISK_FAULT | 磁盘故障。 |
| 17 | RET_CACHE_UFS_FAULT | 后端存储故障。 |
版权说明
Copyright (c) Huawei Technologies Co., Ltd. 2026. All rights reserved.