Long-Term Supported Versions

    Innovation Versions

      Memory Fabric User Guide

      Introduction

      The Memory Fabric memory pool suite builds high-performance distributed memory resource pool based on memory medium and new network technologies, and provides services for applications through semantics such as BigMemory, MemPlog, and MemKV.

      Memory Fabric uses and manages resource such as DRAM, persistent memory, and RAM drives, and provides microsecond-level latency based on new interconnection protocols (RDMA, XCL, and UBUS). By reducing the software latency and node CPU overhead, Memory Fabric improves the overall performance. (Pools of directly connect drives are not supported.)

      Deployment

      Memory Fabric supports multiple deployment modes for multi-scenario application integration based on the node types, resource distribution, and application requirements. Deployment modes include:

      • Co-deployed clients and servers when computing and Memory Fabric resources are on the same node. (Node1 and Node2 in Figure 1)
      • Independently deployed clients ands server when computing and Memory Fabric resources are on different nodes. (Node3 and Node4 in Figure 1)
      • Hybrid deployment of co-deployed clients and servers and independently deployed clients and servers.
      • Multiple clients and servers in one node. (Node2 in Figure 1)
      • Inter-process communication (IPC) for intra-node communication between clients and servers, and remote procedure call (RPC) for connection to remote servers.
      • Servers connected to the cluster management service for unified node numbering an resource information broadcasting.

      Figure 1 Integrated deployment

      Startup

      To start Memory Fabric, you need to start the server and client. Start the server on the node first, perform the cluster registration and monitoring procedures, and initiate resource registration (the total capacity is obtained from the configuration file) and communication link establishment. After the initialization, multiple local clients can connect to the server and provide services for external systems.

      Interfaces

      Interface

      Description

      int BM_Init(char *ockPath, int flags);

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

      int BM_Exit(void);

      Initializes

      Initializes with attributes

      Exits

      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);

      Creates, destroys, and queries namespaces.

      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);

      Applies for and releases BigMemory objects

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

      Expanses BigMemory capacity

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

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

      Maps BigMemory to continuous virtual space and unmaps

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

      Copies between BigMemory objects

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

      Swaps file content into the BigMemory object

      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);

      Reads and write BigMemory

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

      Performs aggregation

      Bug Catching

      Buggy Content

      Bug Description

      Submit As Issue

      It's a little complicated....

      I'd like to ask someone.

      PR

      Just a small problem.

      I can fix it online!

      Bug Type
      Specifications and Common Mistakes

      ● Misspellings or punctuation mistakes;

      ● Incorrect links, empty cells, or wrong formats;

      ● Chinese characters in English context;

      ● Minor inconsistencies between the UI and descriptions;

      ● Low writing fluency that does not affect understanding;

      ● Incorrect version numbers, including software package names and version numbers on the UI.

      Usability

      ● Incorrect or missing key steps;

      ● Missing prerequisites or precautions;

      ● Ambiguous figures, tables, or texts;

      ● Unclear logic, such as missing classifications, items, and steps.

      Correctness

      ● Technical principles, function descriptions, or specifications inconsistent with those of the software;

      ● Incorrect schematic or architecture diagrams;

      ● Incorrect commands or command parameters;

      ● Incorrect code;

      ● Commands inconsistent with the functions;

      ● Wrong screenshots.

      Risk Warnings

      ● Lack of risk warnings for operations that may damage the system or important data.

      Content Compliance

      ● Contents that may violate applicable laws and regulations or geo-cultural context-sensitive words and expressions;

      ● Copyright infringement.

      How satisfied are you with this document

      Not satisfied at all
      Very satisfied
      Submit
      Click to create an issue. An issue template will be automatically generated based on your feedback.
      Bug Catching
      编组 3备份