Skip to main content

NimbusKV v3.1.1 Changelog

Chronological record of bug fixes, features, breaking changes, and upgrade notes across versions.

v3.1.1
Updated from GitHub 10/18/2026
Edit on GitHubView raw Markdown

Fixed

  • TTL scheduler heap could still grow without bound for a hot key. The 3.1.0 fix below stopped the scheduler from keeping an entry for every key ever written, but schedule() always pushed a new heap entry without removing the old one for the same key. A key with a long TTL that gets rescheduled often (set(k, v, ttl=...) called repeatedly on one key) left stale entries sitting in the heap until each one's original deadline arrived, so memory still grew in the meantime even though _generation stayed correctly sized. The heap is now compacted once stale entries build up to roughly twice the live count.

Found during code review of v3.1.0 before it was tagged or published. Covered by a new regression test in tests/test_ttl.py (5,000 reschedules of one key; heap stays under 200 entries).