# MinIO MemKV RELEASE.2026-10-27T20-08-21Z

RDMA traffic between a MinIO MemKV server and one client can now use more than one link of a bonded NIC or more than one path through an ECMP fabric. Before, all of it went over one member or one path. This release also publishes the Helm chart, so you can follow the Kubernetes quick start without the source tree.

## 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-27T20-08-21Z](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z)
- [libplugin_MEMKV.so](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so)
- [libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z)
- [memkv](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv)
- [memkv.RELEASE.2026-10-27T20-08-21Z](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-27T20-08-21Z)
- [libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.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-27T20-08-21Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.sha256sum)
- [libplugin_MEMKV.so.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.sha256sum)
- [memkv-20261027200821.0.0-1.x86_64.rpm.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv-20261027200821.0.0-1.x86_64.rpm.sha256sum)
- [memkv.RELEASE.2026-10-27T20-08-21Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-27T20-08-21Z.sha256sum)
- [memkv.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.sha256sum)
- [memkv_20261027200821.0.0_amd64.deb.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261027200821.0.0_amd64.deb.sha256sum)
- [memkv_20261027200821.0.0_x86_64.apk.sha256sum](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261027200821.0.0_x86_64.apk.sha256sum)
- [libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.asc)
- [libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.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-27T20-08-21Z.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.asc)
- [libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.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-27T20-08-21Z.asc](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-27T20-08-21Z.asc)
- [memkv.RELEASE.2026-10-27T20-08-21Z.minisig](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv.RELEASE.2026-10-27T20-08-21Z.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-20261027200821.0.0-1.x86_64.rpm](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv-20261027200821.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_20261027200821.0.0_amd64.deb](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261027200821.0.0_amd64.deb)
- [memkv_20261027200821.0.0_x86_64.apk](https://dl.min.io/aistor/memkv/release/linux-amd64/archive/memkv_20261027200821.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-27T20-08-21Z](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z)
- [libplugin_MEMKV.so](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so)
- [libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z)
- [memkv](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv)
- [memkv.RELEASE.2026-10-27T20-08-21Z](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-27T20-08-21Z)
- [libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.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-27T20-08-21Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.sha256sum)
- [libplugin_MEMKV.so.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.sha256sum)
- [memkv-20261027200821.0.0-1.aarch64.rpm.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv-20261027200821.0.0-1.aarch64.rpm.sha256sum)
- [memkv.RELEASE.2026-10-27T20-08-21Z.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-27T20-08-21Z.sha256sum)
- [memkv.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.sha256sum)
- [memkv_20261027200821.0.0_aarch64.apk.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261027200821.0.0_aarch64.apk.sha256sum)
- [memkv_20261027200821.0.0_arm64.deb.sha256sum](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261027200821.0.0_arm64.deb.sha256sum)
- [libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.asc)
- [libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libmemkv_preload.so.RELEASE.2026-10-27T20-08-21Z.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-27T20-08-21Z.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.asc)
- [libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/libplugin_MEMKV.so.RELEASE.2026-10-27T20-08-21Z.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-27T20-08-21Z.asc](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-27T20-08-21Z.asc)
- [memkv.RELEASE.2026-10-27T20-08-21Z.minisig](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv.RELEASE.2026-10-27T20-08-21Z.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-20261027200821.0.0-1.aarch64.rpm](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv-20261027200821.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_20261027200821.0.0_aarch64.apk](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261027200821.0.0_aarch64.apk)
- [memkv_20261027200821.0.0_arm64.deb](https://dl.min.io/aistor/memkv/release/linux-arm64/archive/memkv_20261027200821.0.0_arm64.deb)
### Container Images

- `quay.io/minio/memkv:RELEASE.2026-10-27T20-08-21Z`
- `quay.io/minio/memkv:latest`

### Python Plugins

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

PyPI serves **1.0.13** 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+.

The deb, rpm and apk packages install the same plugin code under `/usr/share/memkv/wheels/`, for hosts without network access, but those wheels are stamped **1.0.12**. They are not the 1.0.12 on PyPI, which lacks this release's client change. See the Upgrade Instructions.

## New Features

- **The Helm chart is published** at `https://docs.min.io/memkv/charts/memkv.tgz`, with example local volumes at `https://docs.min.io/memkv/charts/local-pv-example.yaml`. Before, the Kubernetes quick start installed the chart from a source directory that readers did not have. Set `image.tag` to a published `RELEASE` tag: the chart's default, `0.1.0`, is not on quay.io. (#117)

## Performance Improvements

### RDMA

- **RDMA traffic to one peer can use more than one link of a bond or path through an ECMP fabric.** All RDMA data between a server and a client used to carry the same RoCEv2 flow label, so LACP bonds and ECMP fabrics sent it all over a single member or path. A client with two bonded ports could use only one of them. The server and the client now spread this traffic over eight flows per peer. Your bond or fabric must hash on UDP ports for this to take effect; see the Upgrade Instructions. (#119)

## Security & Compliance

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

- `sbom-RELEASE.2026-10-27T20-08-21Z.spdx.json`
- `sbom-RELEASE.2026-10-27T20-08-21Z.cyclonedx.json`
- `cargo-tree-RELEASE.2026-10-27T20-08-21Z.txt`
- `crates-RELEASE.2026-10-27T20-08-21Z.txt`

## Upgrade Instructions

1. **Install plugins 1.0.13 from PyPI.** To install from the packaged wheels instead, add `--force-reinstall`: pip treats them as already installed on a host that has PyPI 1.0.12, and leaves the older code in place.

   ```bash
   pip install --force-reinstall --no-deps /usr/share/memkv/wheels/memkv_*-1.0.12-*.whl
   ```

2. **To spread RDMA traffic over a bond or an ECMP fabric, hash on layer 3 and layer 4.** On a Linux LACP bond, set `xmit_hash_policy=layer3+4`. On switches, use an ECMP or LAG hash that includes the UDP source port. With a layer 2 or layer 3 hash, traffic to one peer still uses one link. Upgrade both the servers and the clients to get the full effect.

3. **Helm users:** install from `https://docs.min.io/memkv/charts/memkv.tgz` and set `image.tag` to `RELEASE.2026-10-27T20-08-21Z`.

Documentation: <https://docs.min.io/memkv/> (`/get-started/quick-start`, `/operate/rocev2`). Licensed customers: contact MinIO support through SUBNET. Security disclosures: security@min.io.
