长期支持版本

    社区创新版本

      Memory Fabric用户指南

      简介

      内存池套件是基于内存型介质和新型网络技术,构建高性能的分布式内存资源池,并通过BigMemory、MemPlog、MemKV等语义对应用提供服务。

      内存池套件使用和管理的资源来自计算节点或者单独资源节点提供的可共享的DRAM/Persistent Memory/内存盘等(不支持普通disk直接互联池化),结合新型互联协议(RDMA,CXL,UBUS)us级传输时延,期望内存池套件通过极低的软件时延和节点CPU开销带来整体性能提升。

      部署

      Memory Fabric需要根据节点类型、资源分布情况和应用需求做到多场景应用集成部署,具体描述如下:

      • 计算和MF资源共节点时支持client和server同节点部署,如图1node1、node2所示。
      • 资源独立提供时也支持client、server分离节点部署,如图1node3、node4所示。
      • 支持同节点部署和分离节点部署两种场景混合部署。
      • 节点内支持多client,也支持多server模式部署,如图1node2所示。
      • client与同节点的server通信使用IPC,配置支持连接远端server时使用RPC通信。
      • server端接入集群管理服务中,用于统一的节点编号和资源信息广播。

      图 1 集成部署

      启动

      Memory Fabric启动分为server和client两个部分。在节点上优先启动server端,完成集群注册、监控流程,然后启动本地资源注册(总容量通过配置文件获取)和通信建链流程,初始化完成后支持本地多client与server建立连接,可对外启动业务服务。

      接口

      接口

      说明

      int BM_Init(char *ockPath, int flags);

      int BM_InitWithExtAttr(char *ockPath, int flags, void *attr);

      int BM_Exit(void);

      初始化

      带属性的初始化

      退出

      int BM_CreateNSSec(const char *poolName, const char *ns, int attribute, const char *secId);

      int BM_DestroyNSSec(const char *poolName, const char *ns, const char *secId);

      int BM_QueryNSCache(QueryNsCache *buff, size_t buffLen);

      Namespace创建和销毁、查询

      int BM_AllocSec(BmInfo *bminfo, size_t size, int flags, BmAffinity* affinity);

      int BM_FreeSec(BmInfo *bminfo, int flags);

      int BM_BatchFreeSec(char *bmIdArray[], int num, int flags, const char *ns, const char *secId);

      Bigmemory对象申请和释放

      int BM_ExpandSec(BmInfo *bminfo, size_t size, int flags);

      bigMemory扩容

      int BM_MapSec(BmInfo *bminfo, int prot, int flags, void **ptr);

      int BM_Unmap(char *bmId, void *ptr);

      bigMemory到连续虚拟空间map和unmap

      int BM_CopySec(BmInfo *srcBM, size_t srcOffset, BmInfo *dstBM, size_t dstOffset, size_t length, int flags);

      bigMemory对象间拷贝

      int BM_SpecificObjSwapInSec(DiskFileDesc *file, BmInfo *bminfo, int flags, size_t offset, size_t length);

      文件内容换入bigmemory对象

      int BM_ReadSec(BmInfo *bminfo, size_t offset, size_t length, void *buffer, int flags);

      int BM_WriteSec(BmInfo *bminfo, size_t offset, size_t length, const void *buffer, int flags);

      Bigmemory读写

      int BM_GatherSec(intptr_t *inputInfo, BmOperatorCode operatorCode, int flags, BmInfo *bminfo, size_t *bmLen);

      聚合操作接口

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份