tag:github.com,2008:https://github.com/Snapchat/KeyDB/releasesRelease notes from KeyDB2023-10-30T00:44:00Ztag:github.com,2008:Repository/168712350/v6.3.42023-10-30T20:26:08ZKeyDB v6.3.4<p>KeyDB 6.3.4 Release Notes:</p>
<ul>
<li>Add keydb_modstatsd, a module for providing keydb stats to a local statsd server. Can be found under src/modules/keydb_modstatsd</li>
<li>Fixed FreeBSD compile(Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bra-fsn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bra-fsn">@bra-fsn</a>)</li>
<li>Fixed a bug in s3 bucket config that blocked startup(Thanks to Alexandre Chichmanian)</li>
<li>Fixed a bug causing crash if keys command is called after a blocking command (Fixes issues <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1724010111" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/659" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/659/hovercard" href="https://github.com/Snapchat/KeyDB/issues/659">#659</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1623169271" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/605" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/605/hovercard" href="https://github.com/Snapchat/KeyDB/issues/605">#605</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1516027516" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/532" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/532/hovercard" href="https://github.com/Snapchat/KeyDB/issues/532">#532</a>)</li>
<li>Added proper error checking of replica configs, now KeyDB will throw an error if replica-of config is passed before active-replica or multimaster configs</li>
<li>Fixed double free bug in lazy free</li>
<li>Added "overload-protect-percent" config, when enabled this will load shed clients whenever CPU usage exceeds configured value</li>
<li>Added "availability-zone" config, this can be passed any string which will then be reported by info command</li>
<li>Updated eviction logic to account for total system memory availability using sysinfo</li>
<li>Fixed a bug where repl-backlog-size config was modified in keydb.conf with the runtime value during config rewrite</li>
<li>Fixed a possible deadlock when running CLIENT KILL with large number of clients</li>
<li>Fixed a bug where KeyDB would overcommit memory during fork BG save</li>
<li>Fixed a bug with disk repl_backlog causing double free</li>
<li>Fixed integer overflow issue in the temp rdb file naming (Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/karthyuom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/karthyuom">@karthyuom</a>)</li>
<li>Fixed compile issue with GCC 13.1.1 (Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/michieldwitte/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/michieldwitte">@michieldwitte</a>)</li>
<li>Removed expireset and restored redis expire behaviour</li>
<li>Fixed a bug causing forked processes to hang, specifically affecting RDB and AOF(Fixes issues <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1758299649" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/675" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/675/hovercard" href="https://github.com/Snapchat/KeyDB/issues/675">#675</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1648559336" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/619" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/619/hovercard" href="https://github.com/Snapchat/KeyDB/issues/619">#619</a>)</li>
<li>Added "CLUSTER REPLICATE NO ONE" to turn a replica into an empty primary</li>
<li>Added RDB-less full sync, can be enabled with config 'enable-keydb-fastsync'</li>
</ul>
<p>FLASH(Beta):</p>
<ul>
<li>Added "flash-disable-key-cache" config to disable key cache which stores every key(but not value) in memory</li>
<li>Moved cluster slot to key map to being stored by storage provider, rather than in memory</li>
<li>Moved expires to be stored by storage provider, rather than in memory</li>
<li>Enabled expiry/eviction from storage provider, previously only data stored in memory could be expired/evicted(Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1684135565" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/645" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/645/hovercard" href="https://github.com/Snapchat/KeyDB/issues/645">#645</a> along with the 2 previous updates)</li>
<li>Fixed a bug where swapdb result was not recovered after keydb restarts in FLASH mode (Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/karthyuom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/karthyuom">@karthyuom</a>)</li>
<li>Fixed double free bug when fast sync was canceled early</li>
<li>Fixed a bug where a temp rdb file with zero bytes is generated in flash mode (Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/karthyuom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/karthyuom">@karthyuom</a>)</li>
<li>Fixed a bug where flash CF options are being reset to default after flushall (Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/karthyuom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/karthyuom">@karthyuom</a>)(Fixes issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1912204379" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/717" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/717/hovercard" href="https://github.com/Snapchat/KeyDB/issues/717">#717</a>)</li>
<li>Updated debug reload command to work with flash</li>
</ul>
<p>Dockerfile:</p>
<ul>
<li>Added support for KEYDB_PASSWORD env variable(Thanks to @einar-pexip)</li>
<li>Compile with flash in Dockerfile(Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/der-eismann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/der-eismann">@der-eismann</a>)</li>
<li>Fix broken redis-cli symlink (Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pimvandenbroek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pimvandenbroek">@pimvandenbroek</a>)</li>
<li>Use tini for alpine docker(Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rofafor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rofafor">@rofafor</a>)</li>
</ul>msotheeswaran-sctag:github.com,2008:Repository/168712350/v6.3.32023-05-03T05:11:58ZKeyDB v6.3.3<p>Version 6.3.3 Release Notes</p>
<p>To help accelerate our development efforts for KeyDB, this will be the last release containing support for Centos 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9 and 32-bit builds. For more information click <a href="https://docs.keydb.dev/news/2023/05/02/release_6_3_3/#updates-to-supported-distributions" rel="nofollow">here.</a></p>
<p>This release contains fixes for 17 issues along with improvements to the KeyDB FLASH feature:</p>
<ul>
<li>Fixed race condition with expireset access (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1616022082" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/597" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/597/hovercard" href="https://github.com/Snapchat/KeyDB/issues/597">#597</a>)</li>
<li>Fixed keys command with lua, and added keydb as an alternative to redis as lua variable to access db (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1574044944" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/562" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/562/hovercard" href="https://github.com/Snapchat/KeyDB/issues/562">#562</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1613613160" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/594" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/594/hovercard" href="https://github.com/Snapchat/KeyDB/issues/594">#594</a>)</li>
<li>Fixed hang in aof child (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1557040541" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/554" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/554/hovercard" href="https://github.com/Snapchat/KeyDB/issues/554">#554</a>)</li>
<li>Fixed leaking fds from RDB save (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1284186526" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/453" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/453/hovercard" href="https://github.com/Snapchat/KeyDB/issues/453">#453</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1605622726" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/584" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/584/hovercard" href="https://github.com/Snapchat/KeyDB/issues/584">#584</a>)</li>
<li>Added config for S3 RDB load/save (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1605622726" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/584" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/584/hovercard" href="https://github.com/Snapchat/KeyDB/issues/584">#584</a>)</li>
<li>Enabled active defrag during forkless background save to improve average memory efficiency (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1293994806" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/460" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/460/hovercard" href="https://github.com/Snapchat/KeyDB/issues/460">#460</a>)</li>
<li>Fixed crash with fork background save during replication (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1583324373" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/567" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/567/hovercard" href="https://github.com/Snapchat/KeyDB/issues/567">#567</a>)</li>
<li>Fixed integer overflow in rand family of commands(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1669739855" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/631" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/631/hovercard" href="https://github.com/Snapchat/KeyDB/issues/631">#631</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1670012149" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/632" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/632/hovercard" href="https://github.com/Snapchat/KeyDB/issues/632">#632</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1670014147" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/633" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/633/hovercard" href="https://github.com/Snapchat/KeyDB/issues/633">#633</a>)</li>
<li>Fixed bad value in hincrbyfloat(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1670016408" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/634" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/634/hovercard" href="https://github.com/Snapchat/KeyDB/issues/634">#634</a>)</li>
<li>Fixed OOM hang in rand family of commands(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1670019776" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/635" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/635/hovercard" href="https://github.com/Snapchat/KeyDB/issues/635">#635</a>)</li>
<li>Added config to limit count of return values in rand family of commands(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1670021964" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/636" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/636/hovercard" href="https://github.com/Snapchat/KeyDB/issues/636">#636</a>)</li>
</ul>
<p>Updates to KeyDB FLASH (Beta):</p>
<ul>
<li>RocksDB has been updated to v7.9.2</li>
<li>Fixed missing slot_to_key map in FLASH cluster mode (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1590087394" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/574" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/574/hovercard" href="https://github.com/Snapchat/KeyDB/issues/574">#574</a>)</li>
<li>Added keyspace notifications for keys loaded from FLASH at startup</li>
<li>Fixed race condition in prefetchKeysAsync with FLASH enabled (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1588548485" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/571" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/571/hovercard" href="https://github.com/Snapchat/KeyDB/issues/571">#571</a>)</li>
</ul>msotheeswaran-sctag:github.com,2008:Repository/168712350/v6.3.22023-01-22T20:55:51ZKeyDB Version 6.3.2<p><strong>KeyDB v6.3.2 Release</strong></p>
<p>This release contains Beta level support for KeyDB FLASH, new ASYNC commands, latency improvements and a number of bug fixes.</p>
<p><strong>KeyDB FLASH Support</strong></p>
<p>KeyDB FLASH is included as a Beta feature with this release. Enabling this feature avoids the need to store all data in memory, allowing you to store more data at a lower cost. KeyDB will persist data to the storage medium it is written to avoiding the need for AOF/RDB files. KeyDB uses RocksDB as the persistent storage provider and can be enabled with config <code>storage-provider flash /path/to/flash/output</code>. Read more at <a href="https://docs.keydb.dev/docs/flash/" rel="nofollow">https://docs.keydb.dev/docs/flash/</a></p>
<p><strong>New ASYNC Commands</strong></p>
<p>In addition to GET/MGET support released with v6.3.0, ASYNC support has been added for the following commands: HGET, HMGET, HKEYS, HVALS, HGETALL, HSCAN and can be enabled with config <code>enable-async-commands yes</code></p>
<p><strong>Jammy & Bookworm Support</strong></p>
<p>Packaging support for Ubuntu 22.04 (Jammy) and Debian 12 (Bookworm) has been included with this release and will be maintained moving forwards. For details on installation please refer to <a href="https://docs/keydb.dev/docs/ppa-deb" rel="nofollow">https://docs.keydb.dev/docs/ppa-deb</a></p>
<p><strong>Other Improvements & Bug Fixes</strong></p>
<ul>
<li>Added new soft shutdown feature, can be enabled with config "soft-shutdown yes".</li>
<li>If soft shutdown is enabled, instead of shutting down right away, the server will wait until all clients have disconnected, and will reject all new connection attempts.</li>
<li>Fixed memory leak with tls certificates when tls allowlist is enabled</li>
<li>Fixed bug in rdb load with flash enabled to ensure all dbs are safe to load (previously only checked db[0])</li>
<li>Fixed race conditions in rdb load and replication</li>
<li>Fixed memory access of rdb file after it should have been deleted</li>
<li>Fixed integer overflow bug in flash(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1354077214" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/486" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/486/hovercard" href="https://github.com/Snapchat/KeyDB/issues/486">#486</a>)</li>
<li>Improve TLS latency by queueing new commands before executing instead of after</li>
<li>Removed O(n) count of memory usage from info command(replaced by O(1) estimate)</li>
<li>Improved latency of clearing large number of flash DBs(Thanks to Paul Chen for this fix)(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1462426649" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/516" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/516/hovercard" href="https://github.com/Snapchat/KeyDB/issues/516">#516</a>)</li>
<li>replaced sprintf with snprintf to avoid potential security bugs</li>
<li>Fixed bug where a failed move due to key already existing in move target would result in the key being removed from move source(Thanks to Paul Chen for this fix)(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1402014891" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/497" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/497/hovercard" href="https://github.com/Snapchat/KeyDB/issues/497">#497</a>)</li>
<li>Fixed usage of deprecated OpenSSL api in OpenSSL v>3.0.1(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1114683289" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/392" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/392/hovercard" href="https://github.com/Snapchat/KeyDB/issues/392">#392</a>)</li>
<li>Imported security fixes from Redis (CVE-2023-22458 CVE-2022-35977)</li>
<li>Other fixed issues: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1322734199" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/480" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/480/hovercard" href="https://github.com/Snapchat/KeyDB/issues/480">#480</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1319620753" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/477" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/477/hovercard" href="https://github.com/Snapchat/KeyDB/issues/477">#477</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1284674509" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/454" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/454/hovercard" href="https://github.com/Snapchat/KeyDB/issues/454">#454</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1282614040" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/452" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/452/hovercard" href="https://github.com/Snapchat/KeyDB/issues/452">#452</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="848661096" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/303" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/303/hovercard" href="https://github.com/Snapchat/KeyDB/issues/303">#303</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1237272329" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/425" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/425/hovercard" href="https://github.com/Snapchat/KeyDB/issues/425">#425</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1368100329" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/492" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/492/hovercard" href="https://github.com/Snapchat/KeyDB/issues/492">#492</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1527970144" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/541" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/541/hovercard" href="https://github.com/Snapchat/KeyDB/issues/541">#541</a></li>
</ul>benschermeltag:github.com,2008:Repository/168712350/v6.3.12022-06-09T01:34:47ZKeyDB v6.3.1<p><strong>KeyDB v6.3.1 Release</strong></p>
<p>This point release contains fixes to bugs related to expires, active-rep, and rdb saving.</p>
<p>The following Issues have been resolved in this release: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1235120164" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/419" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/419/hovercard" href="https://github.com/Snapchat/KeyDB/issues/419">#419</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1236198879" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/422" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/422/hovercard" href="https://github.com/Snapchat/KeyDB/issues/422">#422</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1239967250" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/428" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/428/hovercard" href="https://github.com/Snapchat/KeyDB/issues/428">#428</a><br>
PRs associated with this release: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1238893838" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/426" data-hovercard-type="pull_request" data-hovercard-url="/Snapchat/KeyDB/pull/426/hovercard" href="https://github.com/Snapchat/KeyDB/pull/426">#426</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1240453072" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/429" data-hovercard-type="pull_request" data-hovercard-url="/Snapchat/KeyDB/pull/429/hovercard" href="https://github.com/Snapchat/KeyDB/pull/429">#429</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1242506459" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/431" data-hovercard-type="pull_request" data-hovercard-url="/Snapchat/KeyDB/pull/431/hovercard" href="https://github.com/Snapchat/KeyDB/pull/431">#431</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1243584768" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/433" data-hovercard-type="pull_request" data-hovercard-url="/Snapchat/KeyDB/pull/433/hovercard" href="https://github.com/Snapchat/KeyDB/pull/433">#433</a></p>
<p>Please see main commit notes below. For full details please reference PRs</p>
<ul>
<li>Fix reference counting failure in the dict</li>
<li>Fix assertion in async rehash</li>
<li>Prevent crash on exit by avoiding destructors on exit</li>
<li>Prevent accidental rehash initiation when an async rehash is aborted</li>
<li>Respond to cancelled rehashes earlier to avoid wasted CPU</li>
<li>Add memory fence barriers to the replication backlog</li>
<li>Silence TSAN errors on ustime and mstime</li>
<li>Resolve incorrect locking during repl backlog resize</li>
<li>Make async commands "opt-in" as it can change the percieved ordering across clients</li>
<li>Fix reference counting failure in the dict</li>
</ul>benschermeltag:github.com,2008:Repository/168712350/v6.3.02022-05-19T18:57:22ZKeyDB Version 6.3.0<p><strong>KeyDB v6.3.0 Release</strong></p>
<p>KeyDB version 6.3.0 is the first open source release to include previously KeyDB Enterprise Features! This release is the culmination of many years of work to move away from KeyDB’s global lock and enable better scaling across cores.</p>
<p><strong>Active Replication PSYNC</strong></p>
<p>Active Replication has been a feature of many KeyDB releases, but always required a full sync while connecting to a new peer. In this release KeyDB now supports partial synchronization to enable fast cluster healing. In addition KeyDB is able to update its replication offset based upon the knowledge of peer nodes, meaning a full sync from one node is enough to permit partial syncs to other nodes within a mesh.</p>
<p>This change greatly reduces the time to add a new node to an active replication cluster. In our testing we’ve seen the time reduced from well over 10 minutes to a minute and a half for a 12 node mesh cluster.</p>
<p><strong>Async Commands</strong></p>
<p>Async commands are commands which can execute without the global lock. This feature must be enabled first in your configuration file by setting “enable-async-commands yes”. When enabling async commands the consistency is modified slightly, in particular writes from other clients may take a configured amount of time to become visible to other clients. This time is configured with the max-snapshot-slip configuration parameter.</p>
<p>The ordering rules with async commands are as follows:<br>
Writes are always totally ordered among clients<br>
Writes are always immediately visible by the client that performed the write</p>
<p>For most applications the slight modification to the consistency model of Active Replication will not be visible. If your application relies on ordering between different clients this feature is disabled by default. In addition a new command called “lfence” is provided for clients that do rely on consistency across clients but are willing to insert fences to assert total ordering at the correct times.</p>
<p>The following commands support async operation:<br>
GET<br>
MGET</p>
<p>Additional read-only commands will get added over time. If a command is of specific interest to you please post an issue to help us prioritize your use case.</p>
<p><strong>Async Rehash</strong></p>
<p>KeyDB relies upon a spinlock to synchronize threads. In prior versions of KeyDB the CPU time consumed while waiting for the lock to be acquired was wasted. KeyDB now has the ability to perform rehash during this time using otherwise wasted CPU time for a more useful purpose. In many cases this can almost completely hide the overhead of rehashing. No configuration is required to enable this functionality, it operates by default.</p>
<p><strong>In Process Background Saving</strong></p>
<p>Historically Redis has used the “fork” system call to create a new process which performed the background save. This made the code easier to follow as the kernel handled the hard task of copy-on-write of memory while background saving was in progress. However the downside to this approach is that it is not possible to accurately estimate the total amount of memory required including background saving.</p>
<p>KeyDB now uses a new “snapshot” system to create snapshots of the database at a specific period and copy-on-write new changes within the process. As a result the maxmemory setting is now a global setting and will include memory used for background save.</p>
<p>For backwards compatibility the semantics of maxmemory are modified slightly during a background save. While a background save is in progress KeyDB will permit memory consumption to exceed maxmemory by up to 20%. This is to simulate the old behavior of background save memory consumption not being counted towards the maxmemory setting while permitting easy calculation of a total upper bound for memory usage.</p>
<p><strong>IStorage Interface</strong></p>
<p>This release does not yet include KeyDB’s FLASH feature based upon RocksDB. However the release does include KeyDB’s IStorage interface which is the backbone of our persistent storage feature. By implementing this interface for your custom storage solution you will enable all KeyDB features.</p>
<p><strong>Thanks To Our Contributors:</strong></p>
<p>Thank you to everyone who contributed to KeyDB with bug reports, design and testing:</p>
<p>Ben Schermel<br>
Firaenix: Bug Report <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1121444409" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/393" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/393/hovercard" href="https://github.com/Snapchat/KeyDB/issues/393">#393</a> - Crash in sorted sets with long names<br>
Kerog: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1155788321" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/401" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/401/hovercard" href="https://github.com/Snapchat/KeyDB/issues/401">#401</a> Error after include *.confg<br>
Gvsafronov: Fedora 35 Compile Failure<br>
Talkabout: Always providing helpful and detailed bug reports, not limited to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1062198059" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/378" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/378/hovercard" href="https://github.com/Snapchat/KeyDB/issues/378">#378</a><br>
Inakisoriamrf: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1081985380" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/383" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/383/hovercard" href="https://github.com/Snapchat/KeyDB/issues/383">#383</a> crash<br>
Alebcay: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1085301963" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/384" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/384/hovercard" href="https://github.com/Snapchat/KeyDB/issues/384">#384</a> macOS build break<br>
Server2245: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1063322396" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/379" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/379/hovercard" href="https://github.com/Snapchat/KeyDB/issues/379">#379</a> Install issue on RHEL7<br>
Antiarchitect: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1070368541" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/380" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/380/hovercard" href="https://github.com/Snapchat/KeyDB/issues/380">#380</a>, and many others<br>
Tchernomax: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="978450486" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/352" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/352/hovercard" href="https://github.com/Snapchat/KeyDB/issues/352">#352</a> missing support for systemd<br>
Heng Kuang: Detailed bug reports and design suggestions<br>
Kajaruban Surendran: Detailed performance analysis of async rehash and other features<br>
Paul Chen: Your enthusiasm and willingness to help debug issues has been deeply appreciated.</p>
<p>Special thanks to Huawei Canada Research Team for your detailed and in-depth bug reports and feature requests and design participation.</p>
<p>Thanks to the EQ Alpha Team that made this release possible: Malavan Sotheeswaran, Vivek Saini, Christian Legge, Peter Liang, Ben Schermel, John Sully</p>JohnSullytag:github.com,2008:Repository/168712350/v6.2.22022-01-19T20:21:31ZKeyDB v6.2.2<p>Changes:</p>
<ul>
<li>Acquire lock in module.cpp to fix module test break</li>
<li>Fix usage of nanosleep() on Apple hardware</li>
<li>Fix networking deadlock (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="619179320" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/183" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/183/hovercard" href="https://github.com/Snapchat/KeyDB/issues/183">#183</a>)</li>
<li>Remove redundant zfree() in keydb-benchmark</li>
<li>Added a read/write lock to fix forking issues</li>
</ul>
<p>Fixed Issues:<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1062198059" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/378" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/378/hovercard" href="https://github.com/Snapchat/KeyDB/issues/378">#378</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1085301963" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/384" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/384/hovercard" href="https://github.com/Snapchat/KeyDB/issues/384">#384</a></p>christianEQtag:github.com,2008:Repository/168712350/v6.2.12021-11-19T17:13:43ZKeyDB v6.2.1<p>This release of KeyDB is at parity with Redis 6.2.6. In addition, the following changes were included:</p>
<ul>
<li>Systemd support for release packages</li>
<li>Fixes to buffer overflows in the <code>BITOP SHIFT</code> and <code>CRON</code> commands</li>
<li>Server times are now computed on a seperate thread to improve performance</li>
<li>Now enforces syslog identity and facility as soon as possible</li>
<li>Removed erroneous use of LOG_... flags when using syslog</li>
<li>Fixed erroneous <code>#endif</code> leading to build errors on some platforms</li>
<li>Fixed the incorrect counting of client connections</li>
</ul>
<p>Issues resolved:<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="982816262" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/355" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/355/hovercard" href="https://github.com/Snapchat/KeyDB/issues/355">#355</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1014500599" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/370" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/370/hovercard" href="https://github.com/Snapchat/KeyDB/issues/370">#370</a></p>VivekSainiEQtag:github.com,2008:Repository/168712350/v6.2.02021-08-11T23:24:38ZKeyDB v6.2.0<p>Changes:</p>
<ul>
<li>Removed unused command line options(-a, -d, -P, -r, -q, --csv, -l, -I, -e, --precision, --cluster, --enable-tracking)</li>
<li>--ms option changed to --time, added --clients, --host, --port, and --threads options</li>
<li>Added keydb-diagnostic-tool</li>
<li>Improved test reliability</li>
<li>Fixed memory leak in keydb-benchmark</li>
<li>Fixed a number of race conditions</li>
<li>Fixed OSX build issues</li>
<li>Feature parity with Redis 6.2.3</li>
</ul>
<p>Fixed Issues:<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="927687014" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/323" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/323/hovercard" href="https://github.com/Snapchat/KeyDB/issues/323">#323</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="933539534" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/325" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/325/hovercard" href="https://github.com/Snapchat/KeyDB/issues/325">#325</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="778283799" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/276" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/276/hovercard" href="https://github.com/Snapchat/KeyDB/issues/276">#276</a></p>MalavanEQAlphatag:github.com,2008:Repository/168712350/v6.0.182021-08-09T18:19:10ZKeyDB 6.0.18<p>Changes:</p>
<ul>
<li>Fixed memory leak in MVCC</li>
<li>Improvements to internal timers</li>
<li>Reduced redundant synchronization</li>
<li>Improved test reliability</li>
<li>Added config option for loading callback interval keys</li>
<li>Added ascii logo image!</li>
<li>Added config to disable message of the day</li>
<li>Improved multithreaded replication performance</li>
<li>Feature parity with redis 6.0.10</li>
</ul>
<p>Fixed Issues:<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="842728471" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/300" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/300/hovercard" href="https://github.com/Snapchat/KeyDB/issues/300">#300</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="794335283" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/285" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/285/hovercard" href="https://github.com/Snapchat/KeyDB/issues/285">#285</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="772447425" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/273" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/273/hovercard" href="https://github.com/Snapchat/KeyDB/issues/273">#273</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="747513950" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/260" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/260/hovercard" href="https://github.com/Snapchat/KeyDB/issues/260">#260</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="739898441" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/257" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/257/hovercard" href="https://github.com/Snapchat/KeyDB/issues/257">#257</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="711137966" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/238" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/238/hovercard" href="https://github.com/Snapchat/KeyDB/issues/238">#238</a></p>MalavanEQAlphatag:github.com,2008:Repository/168712350/v6.0.162020-09-28T20:02:05ZKeyDB 6.0.16<p>This release has the following enhancements:</p>
<ul>
<li>Reduced memory consumption when Active Replication is not used</li>
<li>Reduced CPU consumption</li>
<li>Improved TLS performance</li>
<li>replica-quorum config for multi-master.<br>
Intended to be used with "replica-serve-stale-data no", if at least N replicas are connected we will consider our master link up and serve data.</li>
<li>Subkey expires performance improvement for big sets</li>
</ul>
<p>The following issues were fixed:<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="705482123" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/234" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/234/hovercard" href="https://github.com/Snapchat/KeyDB/issues/234">#234</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="709018098" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/236" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/236/hovercard" href="https://github.com/Snapchat/KeyDB/issues/236">#236</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="701298241" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/233" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/233/hovercard" href="https://github.com/Snapchat/KeyDB/issues/233">#233</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="644413210" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/207" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/207/hovercard" href="https://github.com/Snapchat/KeyDB/issues/207">#207</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="680402205" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/229" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/229/hovercard" href="https://github.com/Snapchat/KeyDB/issues/229">#229</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="696024374" data-permission-text="Title is private" data-url="https://github.com/Snapchat/KeyDB/issues/231" data-hovercard-type="issue" data-hovercard-url="/Snapchat/KeyDB/issues/231/hovercard" href="https://github.com/Snapchat/KeyDB/issues/231">#231</a></p>JohnSully