# MinIO MemKV RELEASE.2026-10-05T18-19-23Z

MinIO MemKV now accepts only licenses issued for MemKV, and a server whose license fails to refresh keeps serving instead of exiting. The 1.0.11 plugins key cached KV on the loaded model weights and fix vLLM direct offload missing every block after a restart with DeepSeek V4; the first start after upgrading refills the cache once.

## Downloads

### linux-amd64

- [libmemkv_preload.so](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z)
- [libplugin_MEMKV.so](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z)
- [memkv](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv)
- [memkv.RELEASE.2026-10-05T18-19-23Z](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-05T18-19-23Z)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.sha256sum)
- [libmemkv_preload.so.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.sha256sum)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.sha256sum)
- [libplugin_MEMKV.so.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.sha256sum)
- [memkv-20261005181923.0.0-1.x86_64.rpm.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv-20261005181923.0.0-1.x86_64.rpm.sha256sum)
- [memkv.RELEASE.2026-10-05T18-19-23Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-05T18-19-23Z.sha256sum)
- [memkv.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.sha256sum)
- [memkv_20261005181923.0.0_amd64.deb.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261005181923.0.0_amd64.deb.sha256sum)
- [memkv_20261005181923.0.0_x86_64.apk.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261005181923.0.0_x86_64.apk.sha256sum)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.asc)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.minisig)
- [libmemkv_preload.so.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.asc)
- [libmemkv_preload.so.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.minisig)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.asc)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.minisig)
- [libplugin_MEMKV.so.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.asc)
- [libplugin_MEMKV.so.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.minisig)
- [memkv.RELEASE.2026-10-05T18-19-23Z.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-05T18-19-23Z.asc)
- [memkv.RELEASE.2026-10-05T18-19-23Z.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-05T18-19-23Z.minisig)
- [memkv.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.asc)
- [memkv.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.minisig)
- [memkv-20261005181923.0.0-1.x86_64.rpm](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv-20261005181923.0.0-1.x86_64.rpm)
- [memkv.apk](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.apk)
- [memkv.deb](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.deb)
- [memkv.rpm](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.rpm)
- [memkv_20261005181923.0.0_amd64.deb](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261005181923.0.0_amd64.deb)
- [memkv_20261005181923.0.0_x86_64.apk](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261005181923.0.0_x86_64.apk)

### linux-arm64

- [libmemkv_preload.so](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z)
- [libplugin_MEMKV.so](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z)
- [memkv](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv)
- [memkv.RELEASE.2026-10-05T18-19-23Z](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-05T18-19-23Z)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.sha256sum)
- [libmemkv_preload.so.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.sha256sum)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.sha256sum)
- [libplugin_MEMKV.so.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.sha256sum)
- [memkv-20261005181923.0.0-1.aarch64.rpm.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv-20261005181923.0.0-1.aarch64.rpm.sha256sum)
- [memkv.RELEASE.2026-10-05T18-19-23Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-05T18-19-23Z.sha256sum)
- [memkv.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.sha256sum)
- [memkv_20261005181923.0.0_aarch64.apk.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261005181923.0.0_aarch64.apk.sha256sum)
- [memkv_20261005181923.0.0_arm64.deb.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261005181923.0.0_arm64.deb.sha256sum)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.asc)
- [libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-05T18-19-23Z.minisig)
- [libmemkv_preload.so.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.asc)
- [libmemkv_preload.so.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.minisig)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.asc)
- [libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-05T18-19-23Z.minisig)
- [libplugin_MEMKV.so.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.asc)
- [libplugin_MEMKV.so.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.minisig)
- [memkv.RELEASE.2026-10-05T18-19-23Z.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-05T18-19-23Z.asc)
- [memkv.RELEASE.2026-10-05T18-19-23Z.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-05T18-19-23Z.minisig)
- [memkv.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.asc)
- [memkv.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.minisig)
- [memkv-20261005181923.0.0-1.aarch64.rpm](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv-20261005181923.0.0-1.aarch64.rpm)
- [memkv.apk](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.apk)
- [memkv.deb](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.deb)
- [memkv.rpm](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.rpm)
- [memkv_20261005181923.0.0_aarch64.apk](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261005181923.0.0_aarch64.apk)
- [memkv_20261005181923.0.0_arm64.deb](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261005181923.0.0_arm64.deb)

### Container Images

- `quay.io/minio/memkv:RELEASE.2026-10-05T18-19-23Z`
- `quay.io/minio/memkv:latest`

### Python Plugins

```bash
pip install -U memkv-lmcache memkv-sglang memkv-vllm
```

PyPI serves **1.0.11** for amd64 and arm64 (manylinux_2_28). Use it with this release. `memkv-lmcache` requires Python 3.10–3.13 and `lmcache>=0.5.4,<0.6`, `memkv-vllm` requires Python 3.10+, and `memkv-sglang` requires Python 3.8+. (#96, #98, #101)

The deb, rpm and apk packages also install the 1.0.11 wheels under `/usr/share/memkv/wheels/` for hosts without network access.

## New Features

- **Cache keys follow the model weights.** The vLLM and SGLang plugins fold a fingerprint of the loaded weights into every key: the hub snapshot commit, or a hash of a local checkpoint. A new checkpoint served under the same model name no longer restores the previous checkpoint's KV. (#100)
- **vLLM warns when restores stop working.** In direct offload mode, the plugin warns when most recent lookups miss blocks it stored or found earlier, and at startup when `PYTHONHASHSEED` is unset on a vLLM version that seeds block hashes per process. (#100)
- **`memkv admin ready` shows why a server is not ready**, for example `not ready (503 license expired)`. (#89)

## Bug Fixes

### Python Plugins

- **vLLM direct offload missed every block after a restart for DeepSeek V4 and V4.1**, although MemKV still held them, with no error. The workers now publish the key prefix at startup and the scheduler adopts it, so the two cannot disagree. (#100)
- **SGLang could read old pages in the wrong shape** after a relaunch with a different KV dtype, page size, layout or checkpoint. Keys now carry the host pool's layout, page size and bytes per token. (#100)
- **vLLM direct offload with pipeline or prefill context parallelism could restore another worker's KV.** It now fails at startup; direct offload supports tensor parallelism only. (#100)
- **The wheels in the deb, rpm and apk packages now carry the fixes PyPI shipped in 1.0.10**, which the previous release packaged without: batch lookups that missed stored keys on multi-server clusters, vLLM reporting evicted blocks as cached (which stops the engine), and vLLM rewriting blocks already stored. They also add `memkv_lookup_hit_ttl` (default 30 seconds). (#99)

### Server

- **A failed license refresh no longer stops the server.** It keeps serving under the installed license, and the next refresh picks up a renewed license file without a restart. (#89)

## License Changes

- **A license issued for another product is rejected.** The server refuses to start, and the NIXL plugin, the `LD_PRELOAD` shim and the Python plugins refuse to load, with a license scoped to another product, such as an AIStor license. A license that names no product is still accepted. This applies to every lookup source: `--license`, `MEMKV_LICENSE`, `AISTOR_LICENSE` and `MINIO_LICENSE`. Request a MemKV license through SUBNET. (#89)
- **`GET /v1/ready` returns 503 `license expired`** once the installed license is fully expired and the server is rejecting every request. Readiness probes now take such a node out of service. (#89)

## Security Updates

- The 1.0.11 plugin wheels link pyo3 0.29, which fixes [GHSA-36hh-v3qg-5jq4](https://github.com/advisories/GHSA-36hh-v3qg-5jq4) and [GHSA-chgr-c6px-7xpp](https://github.com/advisories/GHSA-chgr-c6px-7xpp). The plugins do not call the affected APIs, but scanners flag every wheel that links the older version. (#97)

## Security & Compliance

Software bill of materials for this release, attached to the release and published alongside these notes:

- `sbom-RELEASE.2026-10-05T18-19-23Z.spdx.json`
- `sbom-RELEASE.2026-10-05T18-19-23Z.cyclonedx.json`
- `cargo-tree-RELEASE.2026-10-05T18-19-23Z.txt`
- `crates-RELEASE.2026-10-05T18-19-23Z.txt`

## Upgrade Instructions

1. **Check the license product before upgrading.** If servers or clients read an AIStor license or any other product's license, install a MemKV license first; otherwise the server will not start and the plugins will not load.

2. **Expect one cache refill.** Every model's key prefix changes once, because it now includes the weights fingerprint. Blocks stored by earlier plugin versions, from vLLM direct offload and from SGLang, are no longer read; eviction reclaims them.

3. **Upgrade every vLLM node to 1.0.11 together.** In direct offload mode, the scheduler waits for each worker to publish its key prefix. A node on an older plugin fails startup with `published no key prefix`, and ranks that key blocks differently fail with `worker ranks key KV blocks differently`.

4. **Set `memkv_spec_prefix`** in `kv_connector_extra_config` when two vLLM deployments of the same model share one MemKV cluster. It separates their keys and the records the startup check reads.

5. **Move direct offload off pipeline and prefill context parallelism.** Those deployments now fail at startup.

6. **Readiness probes** on `/v1/ready` now fail on a node whose license has fully expired. Renew the license; the server installs the new file at its next refresh.

Documentation: <https://docs.min.io/memkv/> (`/operate/configuration`, `/integrate/vllm-gpudirect` and `/integrate/sglang`). Licensed customers: contact MinIO support through SUBNET. Security disclosures: security@min.io.
