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, default 8, > 0): 用于 I/O 的 C++ 工作线程数。这是实际的 I/O 队列深度——适当调高此值可提升吞吐量。

  • read_timeout_ms (int, default 1000): 客户端读取超时时间(毫秒)。

  • write_timeout_ms (int, default 2000): 客户端写入超时时间(毫秒)。

  • default_ttl_seconds (int, default 86400): 记录的生存时间(TTL)。 0 使用命名空间的默认 TTL。

  • target_segment_bytes (int, default 0): 目标分片大小。 0 使用发现的服务器记录上限。

  • max_record_bytes (int, default 0): 覆盖服务器记录上限。 0 在构造时发现该上限。

  • username / password (str, default ""): 可选的企业版身份验证。

  • max_capacity_gb (float, default 0): 客户端侧用量跟踪与逐出所使用的最大 L2 容量(GB)。0 表示禁用跟踪。

环境变量回退。 当相应的配置值为空时,将使用这些环境变量:LMCACHE_AEROSPIKE_HOSTSLMCACHE_AEROSPIKE_NAMESPACELMCACHE_AEROSPIKE_SETLMCACHE_AEROSPIKE_USERNAMELMCACHE_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"}'