构建
环境准备
编译工具建议版本
- OS: Ubuntu 22.04 LTS+
- cmake: 3.20.x
- gcc: 11.4+
- python 3.11.10
- pybind11 2.10.3
- make 4.3 or ninja 1.10.1
编译
- 下载代码
git clone https://gitcode.com/Ascend/memcache
cd memcache
git clean -xdf
git reset --hard
- 拉取第三方库
# Initialize and update only the required submodules (excluding test dependencies)
git submodule update --init 3rdparty/
# Update memfabric_hybrid to the latest version of a specific branch (e.g., master)
# Replace 'master' with your target branch name
git -c submodule.3rdparty/memfabric_hybrid.branch=master submodule update --remote 3rdparty/memfabric_hybrid
说明:
--init 3rdparty/memfabric_hybrid只初始化并更新指定的子模块,避免拉取 test 目录等不必要的依赖- 通过
-c submodule.3rdparty/memfabric_hybrid.branch=<branch_name>参数可以指定拉取的目标分支 - 若需拉取所有子模块(包括测试依赖),可使用
git submodule update --recursive --init
- 编译
执行如下命令进行编译,编译成功后,会生成run包在output目录下
bash script/build_and_pack_run.sh --build_mode RELEASE
- build_and_pack_run.sh支持2个参数,分别是<build_mode> <build_test>
- build_mode: 编译类型,可填RELEASE或DEBUG,默认RELEASE
- build_test: 是否打包测试工具,可填ON或OFF,默认OFF
- ut运行
支持直接执行如下脚本编译并运行ut
bash script/run_ut.sh
安装使用
MemCache将所有特性集成到run包中供用户使用,run包格式为 memcache_hybrid-${version}_${os}_${arch}.run
其中,version表示MemCache的版本;os表示操作系统,如linux;arch表示架构,如x86或aarch64
注意:MemCache运行时依赖MemFabric,需要先参考MemFabric使用指导完成MemFabric的安装。
run包安装
run包的默认安装根路径为 /usr/local/
安装完成后需要source安装路径下的memcache_hybrid/set_env.sh
参考安装命令如下(此处以1.0.0版本为例)
bash memcache_hybrid-1.0.0_linux_aarch64.run # 请修改为实际路径和文件名
source /usr/local/memcache_hybrid/set_env.sh
如果想要自定义安装路径,可以添加--install-path参数
bash memcache_hybrid-1.0.0_linux_aarch64.run --install-path=${your path} # 请修改为实际路径和文件名
安装的run包可以通过如下命令查看版本(此处以默认安装路径为例)
cat /usr/local/memcache_hybrid/latest/version.info
安装的python包可以通过如下命令查看版本
pip show memcache_hybrid
在安装过程中,会默认尝试安装适配当前环境的MemCache的whl包,如果未安装,则在使用python接口前需要用户手动安装(生成的whl包放在output/memcache/wheel目录下)
运行服务
MetaService
👆 NOTE:运行前需要根据 MetaService配置项 对配置文件 /usr/local/memcache_hybrid/latest/config/mmc-meta.conf 进行相关配置,该文件可以放置到任意可访问的路径
- python形式:以下均以python311版本whl包(memcache_hybrid-1.0.0-cp311-cp311-linux_aarch64.whl)为例
1、安装whl包(如在安装run包过程中,已安装whl包,此步骤可省略)
pip install memcache_hybrid-1.0.0-cp311-cp311-linux_aarch64.whl # 修改为实际的安装包名
2、方式一:环境变量 + 配置文件(兼容原有方式)
export MMC_META_CONFIG_PATH=/usr/local/memcache_hybrid/latest/config/mmc-meta.conf
进入python控制台或者编写python脚本如下即可拉起进程:
from memcache_hybrid import MetaService
MetaService.main()
3、方式二(推荐):Python 直接设置配置(无需 MMC_META_CONFIG_PATH)
from memcache_hybrid import MetaService, MetaConfig
config = MetaConfig()
config.meta_service_url = "tcp://192.168.1.1:5000"
config.config_store_url = "tcp://192.168.1.2:6000"
config.metrics_url = "http://192.168.1.1:8000"
config.ha_enable = False
config.log_level = "info"
MetaService.setup(config)
MetaService.main()
- bin形式:
安装run包即完成了相应二进制的部署
1、设置环境变量
source /usr/local/memcache_hybrid/set_env.sh
source /usr/local/memfabric_hybrid/set_env.sh
2、环境变量 + 配置文件
export MMC_META_CONFIG_PATH=/usr/local/memcache_hybrid/latest/config/mmc-meta.conf
/usr/local/memcache_hybrid/latest/aarch64-linux/bin/mmc_meta_service
LocalService
👆 NOTE:运行前需要根据 LocalService配置项 对配置文件 /usr/local/memcache_hybrid/latest/config/mmc-local.conf 进行相关配置,该文件可以放置到任意可访问的路径
- whl(python):
1、安装whl包(如在安装run包过程中,已安装whl包,此步骤可省略)
pip install memcache_hybrid-1.0.0-cp311-cp311-linux_aarch64.whl # 修改为实际的安装包名
2、方式一:环境变量 + 配置文件(兼容原有方式)
export MMC_LOCAL_CONFIG_PATH=/usr/local/memcache_hybrid/latest/config/mmc-local.conf
通过MemCache提供的接口初始化客户端并拉起localservice,执行数据写入、查询、获取、删除等,下面的脚本是一个示例:
python3 test_mmc_demo.py
3、方式二(推荐):Python 入口直接指定 local 配置文件路径
from memcache_hybrid import DistributedObjectStore, LocalConfig
config = LocalConfig()
config.protocol = "device_rdma"
config.dram_size = "10GB"
config.max_dram_size = "64GB"
print(config)
store = DistributedObjectStore()
assert store.setup(config) == 0, "setup local config failed"
ret = store.setup("/usr/local/memcache_hybrid/latest/config/mmc-local.conf", device_id=0, init_bm=True)
print(ret)
- so(C++):
1、导入头文件
#include "mmcache.h"
2、将 libmf_memcache.so 路径加入到 LD_LIBRARY_PATH 环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${libmf_memcache.so path}
注:如果其所在路径已经在 PATH 或 LD_LIBRARY_PATH,则无需此步骤
3、设置配置文件环境变量
export MMC_LOCAL_CONFIG_PATH=/usr/local/memcache_hybrid/latest/config/mmc-local.conf
4、调用相关API