Aerospike#
一个由原生 C++ Aerospike 连接器支持的 L2 适配器(与 fs_native 使用的相同 ConnectorBase 工作池框架),由 NativeConnectorL2Adapter 封装。KV 对象以一条元记录加若干可选负载段的形式存储,超出服务器记录上限的值将被透明地拆分为多个分片。
前提条件 -- 构建时启用 Aerospike 支持:
Aerospike 扩展默认不构建。请先安装 Aerospike C 客户端,然后使用 BUILD_AEROSPIKE=1 进行构建(或设置 AEROSPIKE_INCLUDE_DIR):
BUILD_AEROSPIKE=1 pip install -e .
请参阅 /developer_guide/extending_lmcache/native_connectors`(章节“内置 Aerospike 后端”)以了解如何将 C 客户端安装到 `.deps/`` 以及 aerospike-client-c.env 示例。
必填字段:
hosts: 种子主机格式为host:port[,host:port...]。
可选字段:
namespace(str, default"lmcache"): Aerospike 命名空间。该命名空间必须已在服务器上创建;若需依赖 TTL 自动过期,还须满足nsup-period > 0。set_name/set(str, default"kv_chunks"): Aerospike 集合名称。num_workers(int, default8, > 0): 用于 I/O 的 C++ 工作线程数。这是实际的 I/O 队列深度——适当调高此值可提升吞吐量。read_timeout_ms(int, default1000): 客户端读取超时时间(毫秒)。write_timeout_ms(int, default2000): 客户端写入超时时间(毫秒)。default_ttl_seconds(int, default86400): 记录的生存时间(TTL)。0使用命名空间的默认 TTL。target_segment_bytes(int, default0): 目标分片大小。0使用发现的服务器记录上限。max_record_bytes(int, default0): 覆盖服务器记录上限。0在构造时发现该上限。username/password(str, default""): 可选的企业版身份验证。max_capacity_gb(float, default0): 客户端侧用量跟踪与逐出所使用的最大 L2 容量(GB)。0表示禁用跟踪。
环境变量回退。 当相应的配置值为空时,将使用这些环境变量:LMCACHE_AEROSPIKE_HOSTS、LMCACHE_AEROSPIKE_NAMESPACE、LMCACHE_AEROSPIKE_SET、LMCACHE_AEROSPIKE_USERNAME、LMCACHE_AEROSPIKE_PASSWORD。
配置示例:
# Basic single-node Community Edition
--l2-adapter '{"type": "aerospike", "hosts": "127.0.0.1:3000", "namespace": "lmcache", "set_name": "kv_chunks", "num_workers": 8}'
# Multi-node seed list with capacity tracking for eviction
--l2-adapter '{"type": "aerospike", "hosts": "10.0.0.1:3000,10.0.0.2:3000", "namespace": "lmcache", "num_workers": 16, "max_capacity_gb": 512}'
# Enterprise Edition with authentication
--l2-adapter '{"type": "aerospike", "hosts": "as.internal:3000", "namespace": "lmcache", "username": "lmcache", "password": "secret"}'