-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathChangeLog
194 lines (174 loc) Β· 8.76 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
2024-09-02 [version 1.14.0]
## π£ New Features
* Add `mop upsert` method. #292
* Add multiple storage method.
* `memcached_mset()`
* `memcached_madd()`
* `memcached_mreplace()`
* `memcached_mprepend()`
* `memcached_mpppend()`
* `memcached_mcas()`
## π Bug Fixes
* Fix buffer size when calling `snprintf()` with leading whitespace and integer value. #304
* Use `__linux__` instead of `TARGET_OS_LINUX` to check if the current OS is Linux. #306
* Use different lock filenames for multiple proxy in a process
## π Documentation
* Fix typo.
## β
Testing
* Cancel previous CI in progress when new commits are added. #296
2024-02-22 [version 1.13.3]
## π§ Enhancements
* Fix compile warnings on RHEL8 and MacOS.
* Do not use `#pragma once`.
* Select smallest host as owner when ketama hash collided. #237
* Add parameter validation in `arcus_proxy_connect()`.
* Move io reset from where calls `memcached_vdo()` to where fails inside of `memcached_vdo()`. #250
* Use `<latest-release>-unknown` version when git describe fails.
* Add a limit of count about bop mget/smget commands.
* Import `scanner.l` and `parser.yy` from libmemcached-0.53.
* Refactor ketama weighted related implementation. #263 #273 #274 #275 #276 #277
* Fix package name and info to 'arcus-c-client'.
## π Bug Fixes
* Call `arcus_server_check_for_update()` in `memcached_exist_by_key()`. #241
* Check `mc->connect_timeout` instead of `mc->poll_timeout` in `connect_poll()`. #247
* Remove a duplicate init macro in configure.ac. #267
* Return `hashkit_get_distribution_function()` instead of `hashkit_get_function()` in `memcached_behavior_get_distribution_hash()`.
## π Documentation
* Add unit test FAQ.
* Fix inconsistencies between code and documentation.
## β
Testing
* Use Github Actions instead of Travis for CI test.
2022-02-22 [version 1.13.2]
* [FEATURE] supported the 3 replicas in replication.
* [FIX] return switchover error code when coll get with delete.
* [FIX] fixed wrong aggregate pipe return code in case of failure.
* [FIX] hold the pool lock when update the cache list of master mc.
* [FIX] fixed the cache list update of member mc in proxy mode.
* [ENHANCE] enhanced the cachelist update logic with serverinfo.
* [ENHANCE] Not to close and reopen pool connections
* [ENHANCE] removed the dual pool repopulation when start at first.
* [ENHANCE] optimized the slave comparision in memcached_rgroup_update().
* [ENHANCE] optimized the release processing in memcached_pool.
* [ENHANCE] ensure more concurrency in memcached pool.
* [CLEANUP] fixed the compile warnings.
* [CLEANUP] refactored serveral parts of code.
2021-07-06 [version 1.13.1]
* [FEATURE] enable zookeeper multi thread mode.
* [FIX] if MEMCACHED_ERRNO entered in memcached_set_error(),
return instead of assert.
2021-01-18 [version 1.13.0]
* [FEATURE] supported mgets command.
* [FIX] check space_sepatated_keys immediately after memcached_connect().
* [FIX] check mget command support immediately after memcached_connect().
* [INTERNAL] return MEMCACHED_CONNECTION_FAILURE in memcached_fetch_result().
2020-12-09 [version 1.12.0]
* [FEATURE] set the max key size to 4000.
* [DOC] changed max element bytes: 4KB => 16KB.
(committed at 20200317 and included in 1.10.4)
* [DOC] fixed the smget result API and structure names.
2020-12-07 [version 1.11.0]
* [FEATURE] supported space-separated keys.
* [FEATURE] supported mget command, efficient for getting multiple items.
* [FEATURE] requested version operation when connect to server.
* [FEATURE] increased max key length: 250 => 4K.
* [ENHANCE] do memcached_quit_server() if poll timeout occurs in io_flush.
* [ENHANCE] increased cluster max size for multi key op: 200 => 1000.
* [IMPROVE] reduced string copy when convert eflag/update_filter to string.
* [FIX] set purge recursion flag to false before return.
* [FIX] handled the host failures in the multi key operation.
* [FIX] unset noreply before get operation in noreply_test().
* [FIX] fixed unallocated memory access in mkey fetch.
* [OTHERS] Refactored some code for readabiblity.
2020-10-22 [version 1.10.5]
* [FEATURE] bop incr/decr with initial option.
* [FIX] registered "NULL" if hostname lookup fails in do_add_client_info().
* [FIX] added the TYPE_MISMATCH handling in kv response
* [DOC] changed the description of the max item size
* [DOC] refactored the document format and some content.
2020-08-04 [version 1.10.4]
* [FEATURE] Added memcached_detail_error_message() API.
* [FEATURE] Immediate reconnect according to error responses.
* [FEATURE] Changed max element bytes. 4KB => 16KB.
* [FEATURE] Returned E2BIG if CLIENT_ERROR object too large.
* [FEATURE] Changed MEMCACHED_SERVER_FAILURE_RETRY_TIMEOUT. 2sec => 1sec.
* [ENHANCE] Enlarged the contents of error messages in detail.
* [ENHANCE] Stored detail error message in error_messages field.
* [ENHANCE] Added arcus ZK manager for processing ZK events.
* [FIX] pipe operation is stopped if switchover is done.
* [FIX] Fixed version check condition.
* [FIX] Fixed several bugs in handling response strings.
* [FIX] Added the key test where needed.
* [FIX] Do client_info and watcher registration only when needed.
* [FIX] Prevent master_mc from being freed while using pool.
* [FIX] Changed to create version using m4 file.
* [FIX] Fixed simple null pointer dereferencing.
* [DOC] Added multi eflag filter description.
* [Test] Added test case for PIPE_ERROR bad error.
* [OTHERS] Refactored the response module for handling responses.
* [OTHERS] Refactored much code for readabiblity.
2019-12-17 [version 1.10.3] (revised)
* [FIX] master failover issue by setting serverlist_changed corretly.
* [Fix] enable replication by referencing ZK in multi process mode.
* [Fix] fixed segfault caused by code tag mistake.
2019-11-14 [version 1.10.2]
* [Fix] fixed compiler errors reported by @orchistro.
2019-11-04 [version 1.10.1]
* [Enhance] Update the server list of fetched mcs with ketama version.
* [Enhance] Repopulate mc pool only when master's server list is chaned.
* [Enhance] Use the shared ketama hashring of master mc in arcus mc pool.
* [Enhance] Repopulate mc pool only when the server list is changed.
* [Fix] Solved assertion failure when connect has failed.
* [Fix] Freed only the rgroup list if replication is enabled.
* [Fix] Registered the missed client info if replication is enabled.
* [Fix] Solved problems of getting collection attributes(type, readable)
* [Internal] Changed the method of confirming arcus cluster type.
2017-09-26 [version 1.10.0]
* [Feature] Support map collection.
2017-09-18 [version 1.9.0]
* [Fix] Fix some bugs of existing sort-merge get.
- bugs related to trimmed key and duplicate bkey.
* [Feature] Support new sort-merge get operation.
- duplicate or unique sort-merge get.
- OUT_OF_RANGE is treated as missed key.
- Missed keys are given with the causes.
- Trimmed keys and the last bkeys are given.
- offset search condition is removed.
* [Feature] Add memcached_coll_result_get_position() API.
2017-09-11 [version 1.8.0]
* [Feature] Add bop position operations.
- memcached_bop_find_position()
- memcached_bop_ext_find_position()
- memcached_bop_get_by_position()
- memcached_bop_find_position_with_get()
- memcached_bop_ext_find_position_with_get()
2017-07-31 [version 1.7.5]
* [Feature] Support replication without read on slave feature.
* [Fix] the last_response_code setting of piped operations.
* [Fix] the piped_return_code setting in do_coll_piped_insert_bulk().
* [Fix] the mis-caculated MEMCACHED_COLL_MAX_FILTER_STR_LENGTH value.
* [Fix] pipe operation bugs like followings.
- buffer overflow when request string is too long.
- incorrect error handling when memcached_vdo fails.
* [Fix] the end condition in the piped exist operation.
* [Fix] failed unit tests.
* [Fix] semaphore usage on OSX.
* [Enhance] Optimize responses alloc/free in do_coll_piped_insert_bulk().
* [Enhance] Use separate command buffer size. default and maximum.
* [Enhance] Apply multi-value filtering to all filtering operations.
* [Other] extensive code refactoring.
2015-10-21 [version 1.7.4]
* Fix memory leak by deallcating a string vector gotten from ZK.
2015-06-22 [version 1.7.3]
* Change default poll timeout: 500 => 700 ms.
* Use 160 hash points per server when all servers have the same weight.
2015-02-01 [version 1.7.2]
* Fix smget error handling bug.
* Fix result_idx initialization bug in merge_results()
2014-11-13 [version 1.7.1]
* Disable registering client info in ZK ensemble.
* Modify the memcached.h file to include the arcus.h file.
* Make unit tests success in an environment that uses both IPv4 and IPv6.
* Revert to the orginal inteface of arcus_connect() function.
* Add ARCUS C Client User Guide Document.
2014-05-15
* arcus-c-client 1.7.0 is opened. (Apache License 2.0)