Skip to content

Releases: snower/slock

v2.1.4

05 Jan 14:15
Compare
Choose a tag to compare

Changelog

  • 491d74c Optimize high and low priority lock judgment to ensure atomicity
  • 7b567da change version to 2.1.4
  • 898d6b9 Optimize the concurrent check logic when starting Lock

v2.1.3

31 Dec 09:50
Compare
Choose a tag to compare

Changelog

  • 3b24dab Optimize LockKey hash algorithm
  • 80f5df5 Corrected variable naming
  • 3c050f9 Revert "Using the murmur hash algorithm"
  • 1093f02 Merge pull request #3 from snower/feature/murmur3
  • c9e4e32 update github action
  • d5dc3df Using the murmur hash algorithm
  • aa64e4d Fixed: You should first shut down the DB to stop clearing the timeout queue, then shut down the AOF and replication synchronization to ensure that all data can be flushed to disk.
  • f93773c The optimization does not use parameters marked with _
  • 106db63 Optimize the shutdown order to ensure that all data is processed
  • 043a8d8 Optimize GetOrNewLockManager
  • 0d1b8a9 Optimize active master node switching to ensure that all executing and background execution commands are completed
  • b78fd75 Optimizing when Lock Update, if the lock needs to be updated and the current Lock has a LockCommand waiting to be executed, it will be cleared so that it can be overwritten with the new LockCommand.
  • 1e517cf Fixed the issue where a background command that acquires a LockManager and locks it may release the normally acquired LockManager.
  • 8966f99 remove github action build-test golang version 1.24
  • 9b0e83f update github action build-test golang version
  • 1c83be2 Optimize initNewLockManager
  • d9d9dca Optimize the background command execution settings to activate low priority locks for non-system busy activation without counting usage counts
  • 4031051 Optimize the logic of acquiring or releasing LockManager from the FreeLockManager queue
  • 724fa19 Optimize the management of command status information, high and low priority locks, and background execution pool related information
  • 9707e1d fix management command output status information
  • 1abee47 Optimize the background execution command to start two coroutines for each concurrent queue
  • 8cb016d Optimize and add background execution commands to the corresponding concurrent lock queue
  • 2d76b52 change version to 2.1.3
  • 6d71ede Fix the exception of judging whether refCount is zero when RemoveLockManager
  • 1f6bba4 Optimize the lock-free concurrency control logic of GetOrNewLockManager and RemoveLockManager
  • 50977ae Optimize LockData to include LockCommand execution and add LowSetPriority to execute before subsequent commands to ensure consistency
  • 80f436d Optimize low-priority locks to distinguish different application settings in different scenarios
  • 408ea51 Corrected the problem of handling the LockData being the Lock command and judging that it must be the same dbid exception

v2.1.2

08 Aug 06:37
Compare
Choose a tag to compare

Changelog

  • 17b24a7 upgrade GitHub release actions
  • d0bc6d0 Optimize and add lock wait. If there is data, the timeout flag will be used to wait for setting data.
  • adb141e change version to 2.1.2

v2.1.1

24 May 10:30
Compare
Choose a tag to compare

Changelog

  • bea51da Optimize redis command scan non-64-bit system exception
  • d7a3eeb Add Lock Data Push and Pop array operation support
  • ea54203 Update test cases
  • fb35d8d Add priority lock implementation and flow control to add priority
  • 18eb3ee LockManager wait queue adds priority support
  • a45a7c8 Optimize Lock Data processing and add the option to execute only when locking for the first time or unlocking for the last time
  • db3c053 Optimize locking the same version multiple times and the lock can be successful
  • dc73c29 Optimize the initial size of LockManager Locked queue and wait queue memory
  • 92470f3 Optimize the memory usage of LockManager Locked queue and wait queue
  • 8d4f469 Optimize the initial memory allocation size of LockManager lock queue and wait queue
  • 312c36b Update github actions CI test configuration and scripts
  • 7c79aa6 Fixed LockManager GetLockedLock not determining that locks are not initialized
  • 2b1ce01 Optimize multiple lock queues and wait queues in delayed initialization LockManager to save memory usage
  • 2872514 text redis protocol adds setting default timeout command
  • a0f4f2c Corrected update lock when require ack is received and the result is expired.
  • 27dd704 Fix refcount update error when update lock requires ack
  • 168a228 Correct whether Lock initially times out and whether the initial value of expiration is true
  • 3cf2c9c Optimize unset lock data when event loop waits for clear
  • 0f86946 Optimize update lock load aof data without checking whether it has expired
  • 9bf96e5 Optimize the set command with the NX option, add the default waiting timeout and correct the aof check logic
  • 973feec Fixed the problem that when the immediate aof command expires for a long time, it will directly enter the long expried check queue.
  • d71e81b Optimize the Transparency redis text protocol and do not release the connection after each command is executed.
  • 252c0d4 Optimize processing of redis protocol expiration time
  • 1740c60 Optimize calculation of AOF expiration minutes
  • b763f0e Optimize calculation of AOF expiration minutes
  • 8f16f5e Fix calculation of aof expired grouping time
  • c8a3d84 Optimize redis set command ex time processing
  • 0b882da Optimize update lock rewrite aof file logic
  • cbac271 Fix update lock refCount set
  • c994a51 Optimize Redis reading and use low priority lock
  • 63edccd Optimize redis reading and allowing reading Follower nodes
  • f1be47e Optimize the support Configuration ACK mode whether all survive nodes confirm or most node confirmation mode, and add the current directory default configuration file
  • 14dfe5a Optimize Update Lock logic and add support ACK confirmation
  • f778ef3 Optimize the scan command to return cursor generation
  • 5c32077 Optimize Flush DB management commands to only allow leader nodes to execute
  • ff9ddcb Optimize REWRITEAOF management command locking and only allow leader node execution
  • 6ac19da update github actions config
  • d951ca4 update github actions config
  • 714e046 update github actions config
  • 5c42fc9 update redis Benchmark test
  • 8d8a76a update redis Benchmark test
  • 1e5aed3 update redis Benchmark test
  • 0d714a8 Add redis Benchmark test
  • 6037749 Optimize redis management instructions
  • 9ac0f9a Added command support related to redis key settings
  • 9b7b027 Added command support related to redis key settings
  • f0b5202 Refactor and optimize redis command into LockCommand
  • 407af3e Optimize lock data, add data type flag and extended attribute flag support
  • 8f6e578 When optimizing rewrite, if the update lock command contains data and is different from the current data, clean it up.
  • e4b25a6 Attempt to create the optimization data file directory when it does not exist
  • 3bce93d change version to 2.1.1

v2.1.0

07 May 10:09
Compare
Choose a tag to compare

Changelog

  • 7680e8c Fix Replication follower synchronization seq processing exception
  • 3d5a983 Update Docker build
  • d04599a Update Docker build
  • 6c4e024 Update Docker build
  • 6b79c1c Update dependencies
  • 1914063 Add test cases for lock data processing and exception rollback
  • 168c2b2 Fix wait timeout that requires ack to wake up and does not handle the lock count correctly
  • 2d7280d Fixed a problem where waiting locks requiring ack to wake up did not handle waitCount correctly.
  • bc63b21 Optimize and add timeout expired tasks
  • d0199a0 update init config
  • 0d51e33 Optimize db long timeout and expired queue flush process
  • 94d72c0 Fix LongWaitLockQueue Push
  • 52f6135 Add db long timeout and expiration queue info information
  • 0da617a Optimize db long timeout and expiration queue management
  • 45d54fe Add long timeout and expired queue status exception logs
  • 746d3d5 Optimize tests case
  • a5af070 Optimize lock db shutdown process and long timeout expiration queue rewrite and add test cases
  • f3a9b80 Fix Benchmark tool close client
  • 4888cba Optimize the logical execution sequence of lock and unlock instructions
  • de4c884 Optimize redis command to support execute data command
  • fd36724 Optimize and add status information of execute command queue for lock data
  • e4d8650 Optimize aof synchronization lock data logic
  • 4cb854e Optimize aof synchronization lock data logic
  • d493ce4 Fix test cases
  • ecb6fc7 Optimize the master-slave synchronization and rollback logic of lock data in the ack forced mode
  • a7c7884 Fix possible deadlock
  • 80f6d58 Fix test cases
  • 1ed0e08 Optimize and add lock data to support lock and unlock and pipeline mode for other lock keys
  • fee7232 Optimize sleep for only 1 nanosecond when acquiring lock_manager conflict
  • 2bc1fbf Optimize the atomic operation logic of obtaining or creating a new lock_manager through lock_key and correct deadlock
  • 74ffdae Fix info command follower replication status
  • 7a1bd4b Optimize unified naming and lock calling
  • 1b3bc39 When optimizing rewrite, determine whether the lock is valid and only apply for low-priority locks.
  • e7b0449 Optimize info information reading to be as thread-safe as possible
  • 261a546 Optimize unified naming rules and optimize log and status report output information
  • 9bbed7f Perform rewrite operation after repairing Replication append aof file
  • 1038fc3 Perform rewrite operation after repairing Replication append aof file
  • 3d52a41 Optimizing aof files should start from one
  • 901351d Optimizing the follower node rewrite must be executed after all instructions have been replayed and the disk placement is successful.
  • 431973f Optimize loading of the last aof request id when leader mode starts
  • 23065dc Fix Replication SwitchToFollower
  • 988ac10 Optimize not to resend all files when the aof file data has not changed each time it is started.
  • 7ce0212 Optimize aof file and add lock data read and write buffer synchronization to ensure that lock and data are flushed to disk at the same time
  • a549d59 Optimize info status information
  • 22b3ac1 Optimize info status information
  • b9f78e0 Optimize info status information
  • 13e4cba Optimize Replication push aof lock
  • 4843b42 Optimize Replication with ack instruction processing and calculation of majority nodes, excluding only voting nodes
  • f541f99 Optimize Replication client synchronization and update currentRequestId only if aof append flush is successful.
  • 92ffbc9 Optimizing instructions with ack only requires the majority of nodes in the cluster to respond.
  • ea352d8 Add Replication discard ack message logging
  • bcc4097 Optimize Replication synchronization logic
  • 677f906 Optimize Replication synchronization logic
  • e13a0d7 Optimize master-slave synchronization logic
  • e7e2a08 Optimize master-slave synchronization logic
  • 149f784 Optimization logic
  • 37c8e31 update CI run-tests
  • 707f9a6 update CI run-tests
  • a34f867 update CI run-tests
  • 8528816 update CI run-tests
  • d3e90e6 update LockQueue test case
  • e9ef7ab update run-tests
  • a2fd861 Optimize the rollback logic if the lock data operation fails during require ack and add the shift lock data operation
  • a833a23 Update dependencies
  • 8fa9e8e Update go.mod config
  • 97f8c85 Update dependencies
  • 8de2c99 Update protobuf list lock interface to return lock data and add test cases
  • 26a67b1 update readme
  • 5353cb2 Optimizing the aof file may not open the push data judgment exception
  • 21dd050 Optimize aof flush execution logic
  • dab797e Optimizing aof file opening and closing logic may be abnormal
  • 0871abb Fix the order error during initial synchronization of replication follower
  • ed49618 Add Lock Data Incr and Append operation support and add related test cases
  • 1d91771 Update client api interface definition and test cases
  • ce9b7ec Optimize Subscribe logic processing
  • a9a79b8 Update client interface definition
  • d15fedb fix LockError define
  • 589f3ee update run-tests
  • 18e36b6 Add client lock data operation API interface
  • d6a1058 Optimize stream buf move
  • edb770a Optimize the follower node to not perform subscribe message push
  • acdcf23 Optimize the immediate expiration of the Lock command to update the lock data without performing the aof operation when there is no data change.
  • 7c85e92 Fixed the problem of updating lock data to perform rewrite operation by immediately expiring Lock command.
  • bf7409b Optimization supports updating lock data through immediate expiration Lock command
  • c599649 update github actions test config
  • 259c0ff Fix static check exception
  • 5cc0a5b Optimization ensures that the time rules for executing aof on the same lock are consistent
  • 008ef13 Optimize lock data and add unset instruction logic
  • 221d7d9 Optimize strong consistent ack processing lock data exception recovery original data logic
  • aedfdd9 Optimize strong consistent ack processing lock data logic
  • 65387e5 Optimize the lock manager to release lock data and the unlock operation does not carry data when the aof does not carry data
  • e4c2115 Optimize the Lock instruction to support concurrent fast failure checking on the slave node
  • cd7046c Optimize repeated updates of Lock status without retaining aof rewrite only retains the last record
  • 2a2339d Optimize server message processing process
  • b9c0a46 Fixed an exception in the non-expiration and renewal operation when the slave node does not receive the unlock command.
  • f4cd338 fix message processing flow
  • dfcdf80 Optimize network Conn reading and writing
  • 01ec266 Fix test cases
  • 89d169c Optimize subscription logic processing
  • ee73e29 Remove errors is dependency
  • efafba2 Optimize net conn, add buffered read logic and performance and AOF unclosed file exception
  • 7146549 Optimize net conn and add buffered read performance
  • 98df70c Optimize net conn and add buffered reads
  • 6057d0b optimization implementation of saving Lock data
  • 1dcc8e8 optimization implementation of saving Lock data
  • f21aefe Add implementation of saving Lock data
  • a263e4f Optimize Replication send buffer queue
  • 1fe1b2f update readme
  • 735eb69 optimization arbiter poll member status and add replset subscriber status tool
  • 9a57171 optimization arbiter poll member status
  • 620b278 fix arbiter poll status changed
  • 7851711 optimization arbiter poll status changed
  • 90b8596 change version to 2.0.8
  • 5a99f44 optimization upgrade protobuf library and arbiter add manager command
  • 8a3d9f1 optimization TIMEOUT_FLAG_LOCK_WAIT_WHEN_UNLOCK allow multi wait when lock

v2.0.7

15 Aug 11:50
Compare
Choose a tag to compare

Changelog

  • 9eead1e change version to 2.0.7
  • 1d11486 github actions add golang 1.19 test
  • a871d38 fix replication test TestReplicationBufferQueue_Head
  • 1382ba6 fix replication aof sync

v2.0.6

13 Aug 09:38
Compare
Choose a tag to compare

Changelog

  • 6caeaea change version to v2.0.6
  • 5dc3097 fix push unlock aof lock.command is nil when lock is free
  • 62a0b1f fix push unlock aof when lock is free

v2.0.4

10 Aug 07:40
Compare
Choose a tag to compare

Changelog

  • f231201 optimization tree lock test
  • b6f7bdb fix tree lock lock operator
  • 4913f8e fix tree lock unlock parent lock

v2.0.3

30 Jun 05:52
Compare
Choose a tag to compare

Changelog

  • c158225 update release action
  • 08f39fd optimization treeLock recovery
  • a84ce4d optimization github actions
  • 3e5d4bd optimization tree lock test
  • 592f156 optimization tree lock
  • aafc4e2 fix golang 1.18 test
  • 04eb948 add golang 1.18 test
  • 22c5918 update readme“
  • a6f5e6f client add tree lock support
  • 11eba28 add tree lock support
  • fb900d7 Revert "remove client group WaitAndTimeoutRetryClear"
  • 8aba4d7 remove client group WaitAndTimeoutRetryClear
  • 49f77bf Merge remote-tracking branch 'origin/master'
  • 25acc6e fix check less lock version

v2.0.2

20 Mar 09:54
Compare
Choose a tag to compare

Changelog

  • ab41295 update go.mod
  • 4db685d readme add new flag
  • feeccd5 optimizaton replset client
  • 2ad2788 optimizaton client group event test
  • 0de44b1 client add group event support
  • 121d1b1 optimization change lock version use lockId lower 8 bytes
  • ae9fb74 unlock command add readd to lock wait queue when unlock succed
  • d462d4b timeout flag add less then request_id is lock succed
  • 0d02257 update readme
  • 32bf3e5 fix Dockerfile
  • 8f60da5 change version to 2.0.2