diff --git "a/docs/zh/docs/Memory-fabric/Memory-Fabric\347\224\250\346\210\267\346\214\207\345\215\227.md" "b/docs/zh/docs/Memory-fabric/Memory-Fabric\347\224\250\346\210\267\346\214\207\345\215\227.md" index 55c20cd6ba128d83e68f4371074b571eb549c543..ef473f9b6a53ab6904160a060926c294790d3b1b 100644 --- "a/docs/zh/docs/Memory-fabric/Memory-Fabric\347\224\250\346\210\267\346\214\207\345\215\227.md" +++ "b/docs/zh/docs/Memory-fabric/Memory-Fabric\347\224\250\346\210\267\346\214\207\345\215\227.md" @@ -5,92 +5,92 @@ - [启动](启动.md) - [接口](接口.md) -# 简介 +\# 简介 内存池套件是基于内存型介质和新型网络技术,构建高性能的分布式内存资源池,并通过BigMemory、MemPlog、MemKV等语义对应用提供服务。 -内存池套件使用和管理的资源来自计算节点或者单独资源节点提供的可共享的DRAM/Persistent Memory/内存盘等(不支持普通disk直接互联池化),结合新型互联协议(RDMA,CXL,UBUS)us级传输时延,期望内存池套件通过极低的软件时延和节点CPU开销带来整体性能提升。 +内存池套件使用和管理的资源来自计算节点或者单独资源节点提供的可共享的DRAM/Persistent Memory/内存盘等(不支持普通disk直接互联池化),结合新型互联协议(RDMA,CXL,UBUS)实现us级传输时延,期望内存池套件通过极低的软件时延和节点CPU开销带来整体性能提升。 -# 部署 +\# 部署 Memory Fabric需要根据节点类型、资源分布情况和应用需求做到多场景应用集成部署,具体描述如下: -- 计算和MF资源共节点时支持client和server同节点部署,如[图1](#fig17349154610267)node1、node2所示。 -- 资源独立提供时也支持client、server分离节点部署,如[图1](#fig17349154610267)node3、node4所示。 +- 计算和MF资源共节点时支持client和server同节点部署,如\[图1](#fig17349154610267)node1、node2所示。 +- 资源独立提供时也支持client、server分离节点部署,如\[图1](#fig17349154610267)node3、node4所示。 - 支持同节点部署和分离节点部署两种场景混合部署。 -- 节点内支持多client,也支持多server模式部署,如[图1](#fig17349154610267)node2所示。 +- 节点内支持多client,也支持多server模式部署,如\[图1](#fig17349154610267)node2所示。 - client与同节点的server通信使用IPC,配置支持连接远端server时使用RPC通信。 - server端接入集群管理服务中,用于统一的节点编号和资源信息广播。 -**图 1** 集成部署 - +**图 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);\ +\ |
+\\ +\ | +\
\ \\\\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);\ +\ |
+\\ +\ | +\
\ \\\\int BM_ExpandSec(BmInfo *bminfo, size_t size, int flags);\ +\ |
+\\ +\ | +\
\ \\\\int BM_MapSec(BmInfo*bminfo, int prot, int flags, void **ptr);\ +\ +\ |
+\\ +\ | +\
\ \\\\int BM_CopySec(BmInfo *srcBM, size_t srcOffset, BmInfo*dstBM, size_t dstOffset, size_t length, int flags);\ +\ |
+\\ +\ | +\
\ \\\\int BM_SpecificObjSwapInSec(DiskFileDesc *file, BmInfo*bminfo, int flags, size_t offset, size_t length);\ +\ |
+\\ +\ | +\
\ \\\\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);\ +\ |
+\\ +\ | +\
\ \\\\int BM_GatherSec(intptr_t *inputInfo, BmOperatorCode operatorCode, int flags, BmInfo*bminfo, size_t *bmLen);\ +\ |
+\\ +\ | +\