{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":775743011,"defaultBranch":"unstable","name":"valkey","ownerLogin":"valkey-io","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-03-22T00:42:17.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/164458127?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716564549.0","currentOid":""},"activityList":{"items":[{"before":"d16b4ec1b9a2309f17601abb1e238f06dfb736a9","after":"30f277a86d35e3f70314f50ca7b59562838bd429","ref":"refs/heads/unstable","pushedAt":"2024-06-02T20:15:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Enable debug asserts for cluster and sentinel tests (#588)\n\nAlso make `enable-debug-assert` an immutable config\r\n\r\nAddress review comments in #584\r\n\r\n---------\r\n\r\nSigned-off-by: Ping Xie ","shortMessageHtmlLink":"Enable debug asserts for cluster and sentinel tests (#588)"}},{"before":"2b97aa61710f2b64245bf734abaa1984efe454e8","after":"d16b4ec1b9a2309f17601abb1e238f06dfb736a9","ref":"refs/heads/unstable","pushedAt":"2024-06-01T08:09:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"zuiderkwast","name":"Viktor Söderqvist","path":"/zuiderkwast","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/273886?s=80&v=4"},"commit":{"message":"Unshare object to avoid LRU/LFU being messed up (#250)\n\nWhen LRU/LFU enabled, Valkey does not allow using shared objects, as\r\nvalue objects may be shared among many different keys and they can't\r\nshare LRU/LFU information.\r\n\r\nHowever `maxmemory-policy` is modifiable at runtime. If LRU/LFU is not\r\nenabled at start, but then enabled when some shared objects are already\r\nused, there could be some confusion in LRU/LFU information.\r\n\r\nFor `set` command it is OK since it is going to create a new object when\r\nLRU/LFU enabled, but `get` command will not unshare the object and just\r\nupdate LRU/LFU information.\r\n\r\nSo we may duplicate the object in this case. It is a one-time task for\r\neach key using shared objects, unless this is the case for so many keys,\r\nthere should be no serious performance degradation.\r\n\r\nStill, LRU will be updated anyway, no matter LRU/LFU is enabled or not,\r\nbecause `OBJECT IDLETIME` needs it, unless `maxmemory-policy` is set to\r\nLFU. So idle time of a key may still be messed up.\r\n\r\n---------\r\n\r\nSigned-off-by: chentianjie.ctj \r\nSigned-off-by: Chen Tianjie ","shortMessageHtmlLink":"Unshare object to avoid LRU/LFU being messed up (#250)"}},{"before":"f927565d28229691b39f873f40d2d8b9cacc425d","after":"2b97aa61710f2b64245bf734abaa1984efe454e8","ref":"refs/heads/unstable","pushedAt":"2024-06-01T05:50:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Introduce `enable-debug-assert` to enable/disable debug asserts at runtime (#584)\n\nIntroduce a new hidden server configuration, `enable-debug-assert`, which\r\nallows selectively enabling or disabling, at runtime, expensive or risky\r\nassertions used primarily for debugging and testing.\r\n\r\nFix #569\r\n\r\n---------\r\n\r\nSigned-off-by: Ping Xie ","shortMessageHtmlLink":"Introduce enable-debug-assert to enable/disable debug asserts at ru…"}},{"before":"6fb90adf4be1c3b703040c9f744bc9cf17d3d577","after":"f927565d28229691b39f873f40d2d8b9cacc425d","ref":"refs/heads/unstable","pushedAt":"2024-05-31T06:45:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Consolidate various BLOCKED_WAIT* states (#562)\n\nThere are currently three block types: BLOCKED_WAIT, BLOCKED_WAITAOF,\r\nand BLOCKED_WAIT_PREREPL, used to block clients executing `WAIT`,\r\n`WAITAOF`, and `CLUSTER SETSLOT`, respectively. They share the same\r\nworkflow: the client is blocked until replication to the expected number\r\nof replicas completes. However, they provide different responses\r\ndepending on the commands involved. Using distinct block types leads to\r\ncode duplication and reduced readability. This PR consolidates the three\r\ntypes into a single WAIT type, differentiating them using the pending\r\ncommand to ensure the appropriate response is returned.\r\n\r\n\r\nFix #427\r\n\r\n---------\r\n\r\nSigned-off-by: Ping Xie ","shortMessageHtmlLink":"Consolidate various BLOCKED_WAIT* states (#562)"}},{"before":"0d2ba9b94d28d4022ea475a2b83157830982c941","after":"6fb90adf4be1c3b703040c9f744bc9cf17d3d577","ref":"refs/heads/unstable","pushedAt":"2024-05-30T19:55:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Fix crash where command duration is not reset when client is blocked … (#526)\n\nIn #11012, we changed the way command durations were computed to handle\r\nthe same command being executed multiple times. In #11970, we added an\r\nassert if the duration is not properly reset, potentially indicating\r\nthat a call to report statistics was missed.\r\n\r\nI found an edge case where this happens - easily reproduced by blocking\r\na client on `XGROUPREAD` and migrating the stream's slot. This causes\r\nthe engine to process the `XGROUPREAD` command twice:\r\n\r\n1. First time, we are blocked on the stream, so we wait for unblock to\r\ncome back to it a second time. In most cases, when we come back to\r\nprocess the command second time after unblock, we process the command\r\nnormally, which includes recording the duration and then resetting it.\r\n2. After unblocking we come back to process the command, and this is\r\nwhere we hit the edge case - at this point, we had already migrated the\r\nslot to another node, so we return a `MOVED` response. But when we do\r\nthat, we don’t reset the duration field.\r\n\r\nFix: also reset the duration when returning a `MOVED` response. I think\r\nthis is right, because the client should redirect the command to the\r\nright node, which in turn will calculate the execution duration.\r\n\r\nAlso wrote a test which reproduces this, it fails without the fix and\r\npasses with it.\r\n\r\n---------\r\n\r\nSigned-off-by: Nitai Caro \r\nCo-authored-by: Nitai Caro ","shortMessageHtmlLink":"Fix crash where command duration is not reset when client is blocked … ("}},{"before":"6bab2d7968dd9d71f2ce200386ecf4286e333a76","after":"0d2ba9b94d28d4022ea475a2b83157830982c941","ref":"refs/heads/unstable","pushedAt":"2024-05-30T17:09:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hwware","name":"Wen Hui","path":"/hwware","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51993843?s=80&v=4"},"commit":{"message":"Update redis legacy word when run TLS cert file (#572)\n\nReference:\r\nhttps://github.com/valkey-io/valkey-doc/blob/main/topics/encryption.md\r\n\r\nBefore we runtest --tls, we need first run utils/gen-test-certs.sh\r\n\r\nI found there are some redis legacy word there, update them.\r\n\r\nSigned-off-by: hwware ","shortMessageHtmlLink":"Update redis legacy word when run TLS cert file (#572)"}},{"before":"168da8b52eaae4346b71e44a26a6f5ae8a3089f1","after":"6bab2d7968dd9d71f2ce200386ecf4286e333a76","ref":"refs/heads/unstable","pushedAt":"2024-05-30T02:44:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"enjoy-binbin","name":"Binbin","path":"/enjoy-binbin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22811481?s=80&v=4"},"commit":{"message":"Make sure clear the CLUSTER SLOTS cache on time when updating hostname (#564)\n\nIn #53, we will cache the CLUSTER SLOTS response to improve the\r\nthroughput and reduct the latency.\r\n\r\nIn the code snippet below, the second cluster slots will use the\r\nold hostname:\r\n```\r\nconfig set cluster-preferred-endpoint-type hostname\r\nconfig set cluster-announce-hostname old-hostname.com\r\nmulti\r\ncluster slots\r\nconfig set cluster-announce-hostname new-hostname.com\r\ncluster slots\r\nexec\r\n```\r\n\r\nWhen updating the hostname, in updateAnnouncedHostname, we will set\r\nCLUSTER_TODO_SAVE_CONFIG and we will do a clearCachedClusterSlotsResponse\r\nin clusterSaveConfigOrDie, so harmless in most cases.\r\n\r\nMove the clearCachedClusterSlotsResponse call to clusterDoBeforeSleep\r\ninstead of scheduling it to be called in clusterSaveConfigOrDie.\r\n\r\nSigned-off-by: Binbin ","shortMessageHtmlLink":"Make sure clear the CLUSTER SLOTS cache on time when updating hostname ("}},{"before":"96dcd1183afa803d30ec71c574e80e3dc01c1f6e","after":"168da8b52eaae4346b71e44a26a6f5ae8a3089f1","ref":"refs/heads/unstable","pushedAt":"2024-05-29T04:49:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Fix bitops.c clang-format properly (#570)\n\nref:\r\n- https://github.com/valkey-io/valkey/pull/118 (my pervious change)\r\n- https://github.com/valkey-io/valkey/pull/461 (issuing that clang\r\nformat checker fails due to my change)\r\n\r\nThere was an issue that clang-format cheker failed.\r\nI don't know why I missed it and why it didn't catch.\r\n\r\njust running `clang-format -i bitops.c` was all.\r\n\r\nSigned-off-by: LiiNen ","shortMessageHtmlLink":"Fix bitops.c clang-format properly (#570)"}},{"before":"fd58b73f0ae895bf9de3810d799da20bb75a2b4f","after":"96dcd1183afa803d30ec71c574e80e3dc01c1f6e","ref":"refs/heads/unstable","pushedAt":"2024-05-28T19:01:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hwware","name":"Wen Hui","path":"/hwware","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51993843?s=80&v=4"},"commit":{"message":"Change BITCOUNT 'end' as optional like BITPOS (#118)\n\n_This change is the thing I suggested to redis when it was BSD, and is\r\nnot just migration - this is of course more advanced_\r\n\r\n### Issue\r\nThere is weird difference in syntax between BITPOS and BITCOUNT:\r\n```\r\nBITPOS key bit [start [end [BYTE | BIT]]]\r\nBITCOUNT key [start end [BYTE | BIT]]\r\n```\r\n\r\nI think this might cause confusion in terms of usability.\r\nIt was not just a syntax typo error, and really works differently.\r\nThe results below are with unstable build:\r\n```\r\n> get TEST:ABCD\r\n\"ABCD\"\r\n> BITPOS TEST:ABCD 1 0 -1\r\n(integer) 1\r\n> BITCOUNT TEST:ABCD 0 -1\r\n(integer) 9\r\n> BITPOS TEST:ABCD 1 0\r\n(integer) 1\r\n> BITCOUNT TEST:ABCD 0\r\n(error) ERR syntax error\r\n```\r\n\r\n### What did I fix\r\n\r\nsimply changes logic, to accept BITCOUNT also without 'end' - 'end'\r\nbecome optional, like BITPOS\r\n```\r\n> GET TEST:ABCD\r\n\"ABCD\"\r\n> BITPOS TEST:ABCD 1 0 -1\r\n(integer) 1\r\n> BITCOUNT TEST:ABCD 0 -1\r\n(integer) 9\r\n> BITPOS TEST:ABCD 1 0\r\n(integer) 1\r\n> BITCOUNT TEST:ABCD 0\r\n(integer) 9\r\n```\r\n\r\nOf course, I also fixed syntax hint:\r\n```\r\n# ASIS \r\n> BITCOUNT key [start end [BYTE|BIT]]\r\n# TOBE\r\n> BITCOUNT key [start [end [BYTE|BIT]]]\r\n```\r\n\r\n![image](https://github.com/valkey-io/valkey/assets/38001238/8485f58e-6785-4106-9f3f-45e62f90d24b)\r\n\r\n\r\n### Moreover ...\r\nI hadn't noticed that there was very small dead code in these command\r\nlogic, when I wrote PR to redis.\r\nI found it now, when write code again, so I wrote it in valkey.\r\n``` c\r\n/* asis unstable */\r\n\r\n/* bitcountCommand() */\r\nif (!strcasecmp(c->argv[4]->ptr,\"bit\")) isbit = 1;\r\n// ...\r\nif (c->argc < 4) {\r\n if (isbit) end = (totlen<<3) + 7;\r\n else end = totlen-1;\r\n}\r\n\r\n/* bitposCommand() */\r\nif (!strcasecmp(c->argv[5]->ptr,\"bit\")) isbit = 1;\r\n// ...\r\nif (c->argc < 5) {\r\n if (isbit) end = (totlen<<3) + 7;\r\n else end = totlen-1;\r\n}\r\n```\r\nBit variable (actually int) \"isbit\" is only being set as 1, when 'BIT'\r\nis declared.\r\nBut we were checking whether 'isbit' is true or false in this 'if'\r\nphrase, even if isbit could never be 1, because argc is always less than\r\n4 (or 5 in bitpos).\r\n\r\n\r\n\r\nI think this minor fixes will make valkey command operation more\r\nconsistent.\r\nOf course, this PR contains just changing args from \"required\" to\r\n\"optional\", so it will never hurt previous users.\r\n\r\nThanks,\r\n\r\n---------\r\n\r\nSigned-off-by: LiiNen \r\nCo-authored-by: Madelyn Olson <34459052+madolson@users.noreply.github.com>","shortMessageHtmlLink":"Change BITCOUNT 'end' as optional like BITPOS (#118)"}},{"before":"7ba7e4d05365a9f5374120838b26c99b8f129d08","after":"fd58b73f0ae895bf9de3810d799da20bb75a2b4f","ref":"refs/heads/unstable","pushedAt":"2024-05-28T18:09:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Introduce shared query buffer for client reads (#258)\n\nThis PR optimizes client query buffer handling in Valkey by introducing\r\na shared query buffer that is used by default for client reads. This\r\nreduces memory usage by ~20KB per client by avoiding allocations for\r\nmost clients using short (<16KB) complete commands. For larger or\r\npartial commands, the client still gets its own private buffer.\r\n\r\nThe primary changes are:\r\n\r\n* Adding a shared query buffer `shared_qb` that clients use by default\r\n* Modifying client querybuf initialization and reset logic\r\n* Copying any partial query from shared to private buffer before command\r\nexecution\r\n* Freeing idle client query buffers when empty to allow reuse of shared\r\nbuffer\r\n* Master client query buffers are kept private as their contents need to\r\nbe preserved for replication stream\r\n\r\nIn addition to the memory savings, this change shows a 3% improvement in\r\nlatency and throughput when running with 1000 active clients.\r\n\r\nThe memory reduction may also help reduce the need to evict clients when\r\nreaching max memory limit, as the query buffer is the main memory\r\nconsumer per client.\r\n\r\n---------\r\n\r\nSigned-off-by: Uri Yagelnik \r\nSigned-off-by: Madelyn Olson \r\nCo-authored-by: Madelyn Olson ","shortMessageHtmlLink":"Introduce shared query buffer for client reads (#258)"}},{"before":"84157890fd710c6117032c20ba4602cbe19970d1","after":"7ba7e4d05365a9f5374120838b26c99b8f129d08","ref":"refs/heads/unstable","pushedAt":"2024-05-28T17:36:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Update zfree on data in test_crc64combine before return. (#548)\n\nSigned-off-by: Shivshankar-Reddy \r\nSigned-off-by: Madelyn Olson \r\nCo-authored-by: Madelyn Olson ","shortMessageHtmlLink":"Update zfree on data in test_crc64combine before return. (#548)"}},{"before":"4e44f5aae934b2d459d0c6d3957ec01d6d2b014a","after":"84157890fd710c6117032c20ba4602cbe19970d1","ref":"refs/heads/unstable","pushedAt":"2024-05-28T16:27:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Set up clang-format github action (#538)\n\nSetup clang-format GitHub action to ensure coding style consistency\r\n---------\r\n\r\nSigned-off-by: Ping Xie ","shortMessageHtmlLink":"Set up clang-format github action (#538)"}},{"before":"045d475a94f1dceae46170426195d3b9dd4fdf81","after":"4e44f5aae934b2d459d0c6d3957ec01d6d2b014a","ref":"refs/heads/unstable","pushedAt":"2024-05-28T15:13:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"zuiderkwast","name":"Viktor Söderqvist","path":"/zuiderkwast","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/273886?s=80&v=4"},"commit":{"message":"Fix races in test for tot-net-in, tot-net-out, tot-cmds (#559)\n\nThe races are between the '$rd' client and the 'r' client in the test\r\ncase.\r\n\r\nTest case \"client input output and command process statistics\" in\r\nunit/introspection.\r\n\r\n---------\r\n\r\nSigned-off-by: Viktor Söderqvist ","shortMessageHtmlLink":"Fix races in test for tot-net-in, tot-net-out, tot-cmds (#559)"}},{"before":"e4ead9442b8e970defc26d25c62580bedfd42a80","after":"045d475a94f1dceae46170426195d3b9dd4fdf81","ref":"refs/heads/unstable","pushedAt":"2024-05-27T21:03:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"zuiderkwast","name":"Viktor Söderqvist","path":"/zuiderkwast","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/273886?s=80&v=4"},"commit":{"message":"Implement REPLCONF VERSION (#554)\n\nThe replica sends its version when initiating replication, in\r\npipeline with other REPLCONF commands.\r\n\r\nThe primary stores it in the client struct. Other fields are made\r\nsmaller to avoid making the client struct consume more memory.\r\n\r\nFixes #414.\r\n\r\n---------\r\n\r\nSigned-off-by: Viktor Söderqvist ","shortMessageHtmlLink":"Implement REPLCONF VERSION (#554)"}},{"before":"5d0f4bc9f0089f83cc54e1978f2dd549f7392c9f","after":"e4ead9442b8e970defc26d25c62580bedfd42a80","ref":"refs/heads/unstable","pushedAt":"2024-05-27T14:11:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Make CLUSTER SETSLOT with TIMEOUT 0 block indefinitely (#556)\n\nThis aligns the behaviour with established Valkey commands with a\r\nTIMEOUT argument, such as BLPOP.\r\n\r\nFix #422\r\n\r\nSigned-off-by: Ping Xie ","shortMessageHtmlLink":"Make CLUSTER SETSLOT with TIMEOUT 0 block indefinitely (#556)"}},{"before":"1c55f3ca5a19e57a5f918a900c7579009f6b60a2","after":"5d0f4bc9f0089f83cc54e1978f2dd549f7392c9f","ref":"refs/heads/unstable","pushedAt":"2024-05-26T16:41:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"zuiderkwast","name":"Viktor Söderqvist","path":"/zuiderkwast","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/273886?s=80&v=4"},"commit":{"message":"Require C11 atomics (#490)\n\n- Replaces custom atomics logic with C11 default atomics logic.\r\n- Drops \"atomicvar_api\" field from server info\r\n\r\nCloses #485\r\n\r\n---------\r\n\r\nSigned-off-by: adetunjii \r\nSigned-off-by: Samuel Adetunji \r\nCo-authored-by: teej4y ","shortMessageHtmlLink":"Require C11 atomics (#490)"}},{"before":"fbbabe3543a6f9bca670a0875dc5eeb5ba6733a3","after":"1c55f3ca5a19e57a5f918a900c7579009f6b60a2","ref":"refs/heads/unstable","pushedAt":"2024-05-24T23:08:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Replace centos 7 with alternative versions (#543)\n\nreplace centos 7 with almalinux 8, add almalinux 9, centos stream 9, fedora stable, rawhide\r\n\r\nFixes #527\r\n\r\n---------\r\n\r\nSigned-off-by: Jonathan Wright \r\nSigned-off-by: Madelyn Olson \r\nCo-authored-by: Madelyn Olson ","shortMessageHtmlLink":"Replace centos 7 with alternative versions (#543)"}},{"before":"d72ba06dd0519fd0bf578cca2a2f5c457629dc6c","after":"fbbabe3543a6f9bca670a0875dc5eeb5ba6733a3","ref":"refs/heads/unstable","pushedAt":"2024-05-24T22:53:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Revert format updates on config.c file for config block (#552)\n\nAlthough I think this improves the readability of individual configs,\r\nthe fact there are now 1k more lines of configs makes this overall much\r\nharder to parse. So reverting it back to the way it was before.\r\n\r\n`,\\n [ ]+` replace with `, `.\r\n\r\n---------\r\n\r\nSigned-off-by: Madelyn Olson ","shortMessageHtmlLink":"Revert format updates on config.c file for config block (#552)"}},{"before":"1d37a44dc06bc1db65ad9d10adb8441ffd5e0d4f","after":"c992bfe829ed03df3b65e2bdbf9491b74a1d26e9","ref":"refs/heads/unstable_jon","pushedAt":"2024-05-24T17:18:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Update .github/workflows/daily.yml\n\nCo-authored-by: Madelyn Olson \nSigned-off-by: Madelyn Olson ","shortMessageHtmlLink":"Update .github/workflows/daily.yml"}},{"before":"3dd2f5a586f2c4d5f9cbf984a0565f70547efae7","after":"d72ba06dd0519fd0bf578cca2a2f5c457629dc6c","ref":"refs/heads/unstable","pushedAt":"2024-05-24T15:58:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"zuiderkwast","name":"Viktor Söderqvist","path":"/zuiderkwast","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/273886?s=80&v=4"},"commit":{"message":"Make cluster replicas return ASK and TRYAGAIN (#495)\n\nAfter READONLY, make a cluster replica behave as its primary regarding\r\nreturning ASK redirects and TRYAGAIN.\r\n\r\nWithout this patch, a client reading from a replica cannot tell if a key\r\ndoesn't exist or if it has already been migrated to another shard as\r\npart of an ongoing slot migration. Therefore, without an ASK redirect in\r\nthis situation, offloading reads to cluster replicas wasn't reliable.\r\n\r\nNote: The target of a redirect is always a primary. If a client wants to\r\ncontinue reading from a replica after following a redirect, it needs to\r\nfigure out the replicas of that new primary using CLUSTER SHARDS or\r\nsimilar.\r\n\r\nThis is related to #21 and has been made possible by the introduction of\r\nReplication of Slot Migration States in #445.\r\n\r\n----\r\n\r\nRelease notes:\r\n\r\nDuring cluster slot migration, replicas are able to return -ASK\r\nredirects and -TRYAGAIN.\r\n\r\n---------\r\n\r\nSigned-off-by: Viktor Söderqvist ","shortMessageHtmlLink":"Make cluster replicas return ASK and TRYAGAIN (#495)"}},{"before":null,"after":"1d37a44dc06bc1db65ad9d10adb8441ffd5e0d4f","ref":"refs/heads/unstable_jon","pushedAt":"2024-05-24T15:29:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"replace centos 7 with almalinux 8, add almalinux 9, centos stream 9, fedora stable/rawhide\n\nSigned-off-by: Jonathan Wright ","shortMessageHtmlLink":"replace centos 7 with almalinux 8, add almalinux 9, centos stream 9, …"}},{"before":"a0aebb6b678a5124ce9a92c7cb39074ebc0d85f9","after":"3dd2f5a586f2c4d5f9cbf984a0565f70547efae7","ref":"refs/heads/unstable","pushedAt":"2024-05-24T05:14:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"zuiderkwast","name":"Viktor Söderqvist","path":"/zuiderkwast","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/273886?s=80&v=4"},"commit":{"message":"Undeprecate cluster slots command (#536)\n\nUndeprecate cluster slots command. This command is widely used by\r\nclients to form the cluster topology and with the recent change to\r\nimprove performance of `CLUSTER SLOTS` command via #53 as well as us\r\nlooking to further improve the usability via #517, it makes sense to\r\nundeprecate this command.\r\n\r\n---------\r\n\r\nSigned-off-by: Harkrishn Patro ","shortMessageHtmlLink":"Undeprecate cluster slots command (#536)"}},{"before":"c41dd77a3e93e02be3c4bc75d8c76b7b4169a4ce","after":"a0aebb6b678a5124ce9a92c7cb39074ebc0d85f9","ref":"refs/heads/unstable","pushedAt":"2024-05-23T06:37:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Reinitialize pointer 'p' after ziplistDeleteRange to fix head deletion bug (#537)\n\nFix\r\nhttps://github.com/valkey-io/valkey/actions/runs/9200055659/job/25305949916\r\n\r\nSigned-off-by: Ping Xie ","shortMessageHtmlLink":"Reinitialize pointer 'p' after ziplistDeleteRange to fix head deletio…"}},{"before":"c4782066e76ba20848fab95fd4909507cc069c3b","after":"c41dd77a3e93e02be3c4bc75d8c76b7b4169a4ce","ref":"refs/heads/unstable","pushedAt":"2024-05-23T06:24:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PingXie","name":"Ping Xie","path":"/PingXie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11568491?s=80&v=4"},"commit":{"message":"Add clang-format configs (#323)\n\nI have validated that these settings closely match the existing coding\r\nstyle with one major exception on `BreakBeforeBraces`, which will be\r\n`Attach` going forward. The mixed `BreakBeforeBraces` styles in the\r\ncurrent codebase are hard to imitate and also very odd IMHO - see below\r\n\r\n```\r\nif (a == 1) { /*Attach */\r\n}\r\n```\r\n\r\n```\r\nif (a == 1 ||\r\n b == 2)\r\n{ /* Why? */\r\n}\r\n```\r\n\r\nPlease do NOT merge just yet. Will add the github action next once the\r\nstyle is reviewed/approved.\r\n\r\n---------\r\n\r\nSigned-off-by: Ping Xie ","shortMessageHtmlLink":"Add clang-format configs (#323)"}},{"before":"72538622ff8f207af22ed1b890c86885b52d8df3","after":"c4782066e76ba20848fab95fd4909507cc069c3b","ref":"refs/heads/unstable","pushedAt":"2024-05-22T21:21:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Cache CLUSTER SLOTS response for improving throughput and reduced latency. (#53)\n\nThis commit adds a logic to cache `CLUSTER SLOTS` response for reduced\r\nlatency and also updates the cache when a change in the cluster is\r\ndetected.\r\n\r\nHistorically, `CLUSTER SLOTS` command was deprecated, however all the\r\nserver clients have been using `CLUSTER SLOTS` and have not migrated to\r\n`CLUSTER SHARDS`. In future this logic can be added to any other\r\ncommands to improve the performance of the engine.\r\n\r\n---------\r\n\r\nSigned-off-by: Roshan Khatri ","shortMessageHtmlLink":"Cache CLUSTER SLOTS response for improving throughput and reduced lat…"}},{"before":"005a018db687568219e33f1119b034f653133869","after":"72538622ff8f207af22ed1b890c86885b52d8df3","ref":"refs/heads/unstable","pushedAt":"2024-05-22T00:54:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Migrate ziplist.c unit tests to new framework (#486)\n\nIssue #428.\r\n\r\nMoved the SERVER_TEST block from ziplist.c into unit tests in\r\ntest_ziplist.c. I left the benchmark related tasks alone in their own\r\ntest, as I am not sure what to do with them.\r\n\r\nSome of the assertions are a little vague/useless, but I will try to\r\nrefine them.\r\n\r\n---------\r\n\r\nSigned-off-by: Mason Hall ","shortMessageHtmlLink":"Migrate ziplist.c unit tests to new framework (#486)"}},{"before":"acb74f8da1c62fd895e9a4956f484ba44cc2f742","after":"005a018db687568219e33f1119b034f653133869","ref":"refs/heads/unstable","pushedAt":"2024-05-21T19:21:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Deprecate MacOS 11 build target (#524)\n\nDeprecate MacOS 11 build target. End of life June 2024. Fixes #523\r\n\r\n---------\r\n\r\nSigned-off-by: Siddhartha Mondal \r\nCo-authored-by: Madelyn Olson \r\nCo-authored-by: Roshan Khatri <117414976+roshkhatri@users.noreply.github.com>","shortMessageHtmlLink":"Deprecate MacOS 11 build target (#524)"}},{"before":"122cba5103b14314fc56511b447af0e78bd68f1d","after":"acb74f8da1c62fd895e9a4956f484ba44cc2f742","ref":"refs/heads/unstable","pushedAt":"2024-05-20T21:52:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Delete dead code \"zfree_usable\" (#518)\n\nImplemented in\r\nhttps://github.com/valkey-io/valkey/commit/3945a321779a0be52e556aa11babb3fe15883a78#diff-a154d1fa454a9868e2c455acdae971e3605151516f9a8efac7f2c9b2845d914d,\r\nthis function is never called and never used. I was trying to understand\r\nwhether we could use this for another PR, but couldn't really find a\r\npoint for it because it didn't do exactly what I expected.\r\n\r\nSigned-off-by: Madelyn Olson ","shortMessageHtmlLink":"Delete dead code \"zfree_usable\" (#518)"}},{"before":"e7e5a104ec9b3274577dce9cf1a35ea8b8f8e008","after":"122cba5103b14314fc56511b447af0e78bd68f1d","ref":"refs/heads/unstable","pushedAt":"2024-05-20T21:52:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Quick fix of failure when use libc allocator in daily CI. (#521)\n\nMake `sdsResize` logic align with `_sdsnewlen`, fix of\r\nhttps://github.com/valkey-io/valkey/pull/476.\r\nFix: \r\n\r\nhttps://github.com/valkey-io/valkey/actions/runs/9143545732/job/25140329542#step:6:1505\r\n\r\nhttps://github.com/valkey-io/valkey/actions/runs/9135654696/job/25123330670#step:6:1501\r\n\r\nSigned-off-by: Lipeng Zhu ","shortMessageHtmlLink":"Quick fix of failure when use libc allocator in daily CI. (#521)"}},{"before":"d52c8f30e0b4730115ed1cd0cdf36637aca7fef7","after":"e7e5a104ec9b3274577dce9cf1a35ea8b8f8e008","ref":"refs/heads/unstable","pushedAt":"2024-05-20T19:23:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"madolson","name":"Madelyn Olson","path":"/madolson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34459052?s=80&v=4"},"commit":{"message":"Revert mmap_rnd bits back to default value in CI (#520)\n\nIn 3f725b8, we introduced a change back in march to reduce the\r\nentropy of ASLR, because ASAN didn't support it. Now the\r\nvm.mmap_rnd_bits\r\nwas reverted in actions/runner-images#9491 so can remove this changes.\r\n\r\nCloses #519.\r\n\r\nSigned-off-by: Binbin ","shortMessageHtmlLink":"Revert mmap_rnd bits back to default value in CI (#520)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWlafCAA","startCursor":null,"endCursor":null}},"title":"Activity · valkey-io/valkey"}