| 1 | Revision history for Perl extension Cache::Memcached::Fast. |
|---|
| 2 | |
|---|
| 3 | |
|---|
| 4 | 0.19 2010-04-24 |
|---|
| 5 | - revert SIGPIPE suppression change. Upgrade if you couldn't |
|---|
| 6 | build 0.18. |
|---|
| 7 | |
|---|
| 8 | Changes since 0.18: |
|---|
| 9 | |
|---|
| 10 | Turned out some orthodox systems do not have sigtimedwait(). |
|---|
| 11 | Since advanced systems that have sigtimedwait() also have |
|---|
| 12 | MSG_NOSIGNAL and thus do not use SIGPIPE suppression code in |
|---|
| 13 | question, and other systems have neither MSG_NOSIGNAL nor |
|---|
| 14 | sigtimedwait(), the only option is to revert to the previous |
|---|
| 15 | suppression code. It works correctly unless your program is |
|---|
| 16 | multi-threaded. |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | 0.18 2010-04-06 |
|---|
| 20 | - make module thread-safe, and fix several bugs. No need to |
|---|
| 21 | upgrade unless you experienced limitations mentioned below. |
|---|
| 22 | |
|---|
| 23 | Changes since 0.17: |
|---|
| 24 | |
|---|
| 25 | Fix RT#56142: handle Perl magic. Tied scalars, arrays and |
|---|
| 26 | hashes are supported now, as well as Readonly variables and |
|---|
| 27 | other magic stuff. |
|---|
| 28 | |
|---|
| 29 | Fix t/command.t failure on some Solaris distributions. |
|---|
| 30 | |
|---|
| 31 | Make module thread-safe with Perl >= 5.7.2. |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | 0.17 2009-11-02 |
|---|
| 35 | - remove delete expiration aka delay parameter. Upgrade is |
|---|
| 36 | required for use with memcached >= 1.3.2. |
|---|
| 37 | |
|---|
| 38 | Changes since 0.16: |
|---|
| 39 | |
|---|
| 40 | Warn about ignoring non-zero delete expiration time. |
|---|
| 41 | Expiration time for "delete" command has been optional in |
|---|
| 42 | older versions of memcached, and was dropped in memcached |
|---|
| 43 | 1.3.2 (in an incompatible manner). Not knowing server version |
|---|
| 44 | it's impossible to tell whether the server will handle the |
|---|
| 45 | parameter or not, so we simply do not send it at all. |
|---|
| 46 | Explicit zero passed to delete() or delete_multi() is silently |
|---|
| 47 | ignored, and a warning is given if you pass non-zero delete |
|---|
| 48 | expiration time. Furthermore the syntax delete($key, $delay) |
|---|
| 49 | and delete_multi([$key, $delay]) is obsoleted and no more |
|---|
| 50 | documented. |
|---|
| 51 | |
|---|
| 52 | |
|---|
| 53 | 0.16 2009-06-15 |
|---|
| 54 | - add missing files. This is a fix for the previous release. |
|---|
| 55 | |
|---|
| 56 | Changes since 0.15: |
|---|
| 57 | |
|---|
| 58 | Add src/addrinfo_hostent.c and src/addrinfo_hostent.h to |
|---|
| 59 | MANIFEST. Oops :(. |
|---|
| 60 | |
|---|
| 61 | |
|---|
| 62 | 0.15 2009-06-15 |
|---|
| 63 | - no need to upgrade for existing users. This release fixes |
|---|
| 64 | issues that new users may encounter (lack of getaddrinfo() on |
|---|
| 65 | some Windows systems; failing test case due to behaviour |
|---|
| 66 | change in memcached 1.3.3 that would break automatic |
|---|
| 67 | installation from CPAN). |
|---|
| 68 | |
|---|
| 69 | Changes since 0.14: |
|---|
| 70 | |
|---|
| 71 | Previous release (0.14) featured the change in the Ketama |
|---|
| 72 | algorithm. While that was a necessary move to improve key |
|---|
| 73 | distribution across servers, it introduced incompatibility |
|---|
| 74 | with earlier versions, and provided no means for smooth |
|---|
| 75 | transition for existing users of Ketama algorithm (i.e., |
|---|
| 76 | without complete loss of cached data). The following |
|---|
| 77 | workaround was suggested by Masahiro Nagano---thanks!: |
|---|
| 78 | |
|---|
| 79 | - apply the patch at http://limilic.com/entry/ljlt0sksbiqi16p3 |
|---|
| 80 | |
|---|
| 81 | - create two instances of C::M::F, one with enabled |
|---|
| 82 | old_ketama_algo => 1. |
|---|
| 83 | |
|---|
| 84 | - for some time populate caches via both client instances, |
|---|
| 85 | while serving gets through old_ketama_algo. For this you |
|---|
| 86 | may use Cache::Migrate (http://gist.github.com/110981). |
|---|
| 87 | |
|---|
| 88 | - after some time (depends on cache refresh rate) you may |
|---|
| 89 | drop old_ketama_algo, as new data is now distributed |
|---|
| 90 | according to the new Ketama implementation as well (this |
|---|
| 91 | doubles memory use though). |
|---|
| 92 | |
|---|
| 93 | I do not include the named patch in the distribution, because |
|---|
| 94 | it's use is limited for one-time transition for existing |
|---|
| 95 | Ketama users only. |
|---|
| 96 | |
|---|
| 97 | On systems lacking getaddrinfo() implement it with |
|---|
| 98 | gethostbyname(). In particular this should fix the build on |
|---|
| 99 | Win32 (Cygwin, Mingw32). Problem report (for Windows 2000 and |
|---|
| 100 | below) and initial patch are by Yasuhiro Matsumoto. |
|---|
| 101 | |
|---|
| 102 | Fix t/commands.t: starting with memcached 1.3.3 incr/decr |
|---|
| 103 | commands expect numeric value in the cache. Patch by Jason |
|---|
| 104 | M. Mills (RT#46883). |
|---|
| 105 | |
|---|
| 106 | |
|---|
| 107 | 0.14 2009-02-07 |
|---|
| 108 | - improve Ketama distribution. The change is incompatible |
|---|
| 109 | with Ketama implementation in previous versions. |
|---|
| 110 | |
|---|
| 111 | Changes since 0.13: |
|---|
| 112 | |
|---|
| 113 | Change calculation of Ketama points for a given server to get |
|---|
| 114 | mapping ratios closer to server weight ratios. New Ketama |
|---|
| 115 | mode is compatible with nginx's module memcached_hash |
|---|
| 116 | (http://openhack.ru/nginx-patched/wiki/MemcachedHash) version |
|---|
| 117 | 0.4, which has the same change, and is incompatible with |
|---|
| 118 | earlier versions of both named and this module. |
|---|
| 119 | |
|---|
| 120 | Add script/ketama-distr.pl to compute server's share of |
|---|
| 121 | continuum. Real-world example: |
|---|
| 122 | |
|---|
| 123 | script/ketama-distr.pl --ketama_points=150 \ |
|---|
| 124 | --server=10.0.143.4:11211 \ |
|---|
| 125 | --server=10.0.143.6:11211 \ |
|---|
| 126 | --server=10.0.143.7:11211 \ |
|---|
| 127 | --server=10.0.143.8:11211 |
|---|
| 128 | |
|---|
| 129 | outputs: |
|---|
| 130 | |
|---|
| 131 | Old: |
|---|
| 132 | server 1: 10.0.143.4:11211 total = 671585356 (15.64%) |
|---|
| 133 | server 2: 10.0.143.6:11211 total = 601117590 (14.00%) |
|---|
| 134 | server 3: 10.0.143.7:11211 total = 1771239512 (41.24%) |
|---|
| 135 | server 4: 10.0.143.8:11211 total = 1251024837 (29.13%) |
|---|
| 136 | |
|---|
| 137 | New: |
|---|
| 138 | server 1: 10.0.143.4:11211 total = 1057134262 (24.61%) |
|---|
| 139 | server 2: 10.0.143.6:11211 total = 1111432463 (25.88%) |
|---|
| 140 | server 3: 10.0.143.7:11211 total = 1017280856 (23.69%) |
|---|
| 141 | server 4: 10.0.143.8:11211 total = 1109119714 (25.82%) |
|---|
| 142 | |
|---|
| 143 | Continuum array size = 4800 bytes |
|---|
| 144 | |
|---|
| 145 | I.e. "Old" is what we were getting before the change, and |
|---|
| 146 | "New" is what we are getting now. "Continuum array size" is |
|---|
| 147 | how much memory is used to store the continuum array. Try |
|---|
| 148 | this script on your servers to see your distribution, and |
|---|
| 149 | possibly to tweak ketama_points and/or server weights to get a |
|---|
| 150 | better one. |
|---|
| 151 | |
|---|
| 152 | Fix RT#41077 (http://rt.cpan.org/Ticket/Display.html?id=41077): |
|---|
| 153 | implement disconnect_all(). Patch is by norbi.nix.hu, with |
|---|
| 154 | minor corrections---thanks!. |
|---|
| 155 | |
|---|
| 156 | |
|---|
| 157 | 0.13 2008-10-13 |
|---|
| 158 | - introduce Win32 support (based on the patch by Yasuhiro |
|---|
| 159 | Matsumoto---arigatou!), and use poll() instead of select() |
|---|
| 160 | (suggested by Vladimir Timofeev). |
|---|
| 161 | |
|---|
| 162 | Changes since 0.12: |
|---|
| 163 | |
|---|
| 164 | Add support for Win32. I personally don't have the system nor |
|---|
| 165 | compiler, so I can't even test the build. Win32 port is |
|---|
| 166 | expected to be supported by community. Note: on Win32 below |
|---|
| 167 | Windows Vista max number of memcached servers is 64. See |
|---|
| 168 | comment on FD_SETSIZE in src/socket_win32.h to learn how to |
|---|
| 169 | increase this value if you need to connect to more than 64 |
|---|
| 170 | servers. |
|---|
| 171 | |
|---|
| 172 | Use poll() system call instead of select(). The latter has |
|---|
| 173 | the limit on the file descriptor value. I.e. even when the |
|---|
| 174 | number of memcached servers is low, but your application opens |
|---|
| 175 | lots of other files, then after some point socket() returns |
|---|
| 176 | fd value larger that select() can handle. poll() doesn't have |
|---|
| 177 | this limitation. On a side note, we don't have to use |
|---|
| 178 | advanced calls like epoll()/kqueue(), because number of |
|---|
| 179 | memcached servers is normally not very large (and single |
|---|
| 180 | request touches even a smaller subset). |
|---|
| 181 | |
|---|
| 182 | Add bench make target ('make bench'). You may change initial |
|---|
| 183 | parameters at the top of script/benchmark.pl to benchmark |
|---|
| 184 | different types of loads. |
|---|
| 185 | |
|---|
| 186 | Do not install libclient.a. Thanks to Vladimir Timofeev for |
|---|
| 187 | finding out how to prevent the installation. |
|---|
| 188 | |
|---|
| 189 | |
|---|
| 190 | 0.12 2008-07-21 |
|---|
| 191 | - this release fixes compilation on Solaris broken in 0.11. |
|---|
| 192 | If you were able to compile 0.11, then you weren't affected. |
|---|
| 193 | |
|---|
| 194 | Changes since 0.11: |
|---|
| 195 | |
|---|
| 196 | Fix compilation on Solaris. Ironically, 0.11 was supposed to |
|---|
| 197 | fix unrecognized format problem on Solaris, but instead broke |
|---|
| 198 | the compilation. Back in May the line |
|---|
| 199 | |
|---|
| 200 | return XSRETURN_EMPTY; |
|---|
| 201 | |
|---|
| 202 | has been introduced to the code, whereas it should be |
|---|
| 203 | |
|---|
| 204 | XSRETURN_EMPTY; |
|---|
| 205 | |
|---|
| 206 | It went unnoticed because expansion produces the code |
|---|
| 207 | permitted by compilers like GCC that allow blocks to return a |
|---|
| 208 | value. But Perl on Solaris has a different definition of this |
|---|
| 209 | macro that is not an expression. Hence the problem. |
|---|
| 210 | |
|---|
| 211 | |
|---|
| 212 | 0.11 2008-07-17 |
|---|
| 213 | - this release fixes %zu problem on Solaris. |
|---|
| 214 | |
|---|
| 215 | Changes since 0.10: |
|---|
| 216 | |
|---|
| 217 | Replace size_t/%zu with unsigned long/%lu for benefit of |
|---|
| 218 | systems that do not recognize the former format (Solaris 9). |
|---|
| 219 | Thanks to Michael Vychizhanin! |
|---|
| 220 | |
|---|
| 221 | Add new parameter max_size (suggested by Alex Kapranoff, see |
|---|
| 222 | RT#35588, http://rt.cpan.org/Ticket/Display.html?id=35588). |
|---|
| 223 | |
|---|
| 224 | Fix RT#36074 (http://rt.cpan.org/Ticket/Display.html?id=36074): |
|---|
| 225 | ExtUtils::MakeMaker version 6.17 and below generated invalid |
|---|
| 226 | Makefile. |
|---|
| 227 | |
|---|
| 228 | |
|---|
| 229 | 0.10 2008-05-01 |
|---|
| 230 | - this is a bugfix release fixing key distribution in |
|---|
| 231 | compatible mode (reported by Anton Yuzhaninov---thanks!), and |
|---|
| 232 | minor fixes in Ketama mode for collision case (very rare). |
|---|
| 233 | |
|---|
| 234 | Changes since 0.09: |
|---|
| 235 | |
|---|
| 236 | Fix key distribution bug in compatible mode. Because of |
|---|
| 237 | accumulated rounding error some keys were mapped to the |
|---|
| 238 | different server than with Cache::Memcached. |
|---|
| 239 | |
|---|
| 240 | Remove explicit OPTIMIZE setting from the makefiles. It ought |
|---|
| 241 | to be set explicitly by the user. You can run 'perl -V:optimize' |
|---|
| 242 | to learn the default. It is safe to increase optimization |
|---|
| 243 | level to -O3. |
|---|
| 244 | |
|---|
| 245 | Fix hash_namespace parameter: it didn't work for the namespace |
|---|
| 246 | specified in the constructor. |
|---|
| 247 | |
|---|
| 248 | Minor fixes in Ketama mode for rare collision case. |
|---|
| 249 | |
|---|
| 250 | |
|---|
| 251 | 0.09 2008-03-06 |
|---|
| 252 | - this release makes 'noreply' mode official, and improves |
|---|
| 253 | latency for some command patterns by managing TCP_NODELAY flag. |
|---|
| 254 | |
|---|
| 255 | Changes since 0.08: |
|---|
| 256 | |
|---|
| 257 | Enable TCP_NODELAY to reduce latency of commands that wait for |
|---|
| 258 | the reply, and disable it for throughput of commands that don't |
|---|
| 259 | need any reply. |
|---|
| 260 | |
|---|
| 261 | t/encoding.t was removed from distribution. It doesn't work |
|---|
| 262 | with Perl 5.6, which has no 'encoding' pragma, and I don't |
|---|
| 263 | know how to fix it (beautifully, there's a number of ugly |
|---|
| 264 | ways). |
|---|
| 265 | |
|---|
| 266 | 'noreply' mode is documented as the official feature of |
|---|
| 267 | memcached 1.2.5. script/benchmark.pl uses it automatically |
|---|
| 268 | when available. |
|---|
| 269 | |
|---|
| 270 | Add parameter 'hash_namespace' (see docs). |
|---|
| 271 | |
|---|
| 272 | Add method 'namespace' to get and/or set the namespace prefix. |
|---|
| 273 | This is handy when you "lease" C::M::F object for different |
|---|
| 274 | parts of your application that do unrelated things. |
|---|
| 275 | |
|---|
| 276 | |
|---|
| 277 | 0.08 2008-01-24 |
|---|
| 278 | - this is mostly a cleanup release, that also improves |
|---|
| 279 | decompression speed. |
|---|
| 280 | |
|---|
| 281 | Changes since 0.07: |
|---|
| 282 | |
|---|
| 283 | compress_alog was replaced with more generic compress_methods. |
|---|
| 284 | It turned out that IO::Uncompress::Gunzip is much (~4x) slower |
|---|
| 285 | than Compress::Zlib, so the latter is used as the default for |
|---|
| 286 | compress_methods. Besides, previous mechanism didn't scale |
|---|
| 287 | well. |
|---|
| 288 | |
|---|
| 289 | Implemented the check of constructor arguments to catch |
|---|
| 290 | various typos (enabled by default), and new 'check_args' |
|---|
| 291 | parameter to disable it. |
|---|
| 292 | |
|---|
| 293 | Workaround "cast from integer to pointer of different size" |
|---|
| 294 | warning on 64-bit platforms. |
|---|
| 295 | |
|---|
| 296 | Removed 127.0.0.x from test cases since not all hosts resolve |
|---|
| 297 | such addresses when x is not 1. |
|---|
| 298 | |
|---|
| 299 | Use plain malloc()/free() instead of Newx()/Safefree() in XS. |
|---|
| 300 | This should fix the build with Perl versions 5.6.0--5.8.6. |
|---|
| 301 | |
|---|
| 302 | |
|---|
| 303 | 0.07 2008-01-18 |
|---|
| 304 | - this is a major release that features a significant speed |
|---|
| 305 | improvement and introduces multi update commands. It also |
|---|
| 306 | fixes a bug in nowait mode that was introduced in 0.06. |
|---|
| 307 | Upgrade is recommended if you are using nowait => 1, or want |
|---|
| 308 | to employ new features and speed. |
|---|
| 309 | |
|---|
| 310 | Changes since 0.06: |
|---|
| 311 | |
|---|
| 312 | For performance reasons all Perl code was converted to XS. If |
|---|
| 313 | you performed any benchmarks, you may want to repeat them ;). |
|---|
| 314 | This change has a drawback that now you can't derive from |
|---|
| 315 | C::M::F easily. |
|---|
| 316 | |
|---|
| 317 | Every update command now has its multi equivalent: set_multi, |
|---|
| 318 | add_multi, replace_multi, append_multi, prepend_multi, |
|---|
| 319 | incr_multi, decr_multi and delete_multi. By using multi |
|---|
| 320 | commands you will reduce request latency: several requests |
|---|
| 321 | would be sent in one packet, and the client would talk to all |
|---|
| 322 | servers simultaneously. |
|---|
| 323 | |
|---|
| 324 | Improved results of update commands: commands that previously |
|---|
| 325 | returned boolean value now return true for positive server |
|---|
| 326 | reply, false for negative server reply, and undef on error. |
|---|
| 327 | Similar to DBI, decr returns "0E0" for positive zero reply, |
|---|
| 328 | which evaluates to true in a boolean context. |
|---|
| 329 | |
|---|
| 330 | flush_all now returns a hash 'server_name' => 'bool_result'. |
|---|
| 331 | |
|---|
| 332 | New commands 'server_versions' and 'nowait_push'. |
|---|
| 333 | |
|---|
| 334 | New 'utf8' and 'serialize_methods' parameters for constructor. |
|---|
| 335 | |
|---|
| 336 | script/compare.pl was removed. Instead script/benchmark.pl |
|---|
| 337 | takes an optional last argument "compare". |
|---|
| 338 | |
|---|
| 339 | t/03-flush_all.t was removed. We use PID as a part of a |
|---|
| 340 | namespace prefix now, so we don't need clear cache any more. |
|---|
| 341 | And there are good reasons not to have flush_all: the user may |
|---|
| 342 | flush a valuable cache by mistake, and "flush_all 0" doesn't |
|---|
| 343 | work on memcached 1.2.2, so the outcome was uncertain anyway. |
|---|
| 344 | Without flush_all it's possible to execute in parallel more |
|---|
| 345 | than one 'make test'. |
|---|
| 346 | |
|---|
| 347 | Fixed bug in 'nowait' mode that could cause false negative |
|---|
| 348 | replies to subsequent requests that you are waiting for. |
|---|
| 349 | |
|---|
| 350 | Workaround the loss of the last 'noreply' request on the |
|---|
| 351 | server. 'noreply' is still an undocumented feature. |
|---|
| 352 | |
|---|
| 353 | To support multi commands the API of internal client |
|---|
| 354 | implementation was changed. If you were using it as a |
|---|
| 355 | standalone library---sorry :). After API will freeze C client |
|---|
| 356 | library will likely be released on its own. |
|---|
| 357 | |
|---|
| 358 | |
|---|
| 359 | 0.06 2007-12-20 |
|---|
| 360 | - this release fixes a serious bug and features the 'nowait' |
|---|
| 361 | mode. Upgrade is recommended. |
|---|
| 362 | |
|---|
| 363 | Changes since 0.05: |
|---|
| 364 | |
|---|
| 365 | Fix a subtle race bug present since 0.02 that could mix |
|---|
| 366 | several values into one when you have more than one memcached |
|---|
| 367 | server and executed get_multi or gets_multi. If you have seen |
|---|
| 368 | the following in your logs or on the console: |
|---|
| 369 | |
|---|
| 370 | Attempt to free unreferenced scalar: SV 0x9e89d34 at |
|---|
| 371 | /tmp/Cache-Memcached-Fast/blib/lib/Cache/Memcached/Fast.pm line 688. |
|---|
| 372 | |
|---|
| 373 | that was it. |
|---|
| 374 | |
|---|
| 375 | Added 'nowait' mode that allows the client to not wait the |
|---|
| 376 | reply, and thus reduces the wallclock time. Run |
|---|
| 377 | script/benchmark.pl and see how it affects wallclock time, |
|---|
| 378 | especially over the wire. |
|---|
| 379 | |
|---|
| 380 | Made undocumented 'noreply' parameter a per-server setting. |
|---|
| 381 | |
|---|
| 382 | |
|---|
| 383 | 0.05 2007-12-18 |
|---|
| 384 | - more fixes to build and pass tests on different platforms. |
|---|
| 385 | There's no functional changes again. |
|---|
| 386 | |
|---|
| 387 | Changes since 0.04: |
|---|
| 388 | |
|---|
| 389 | At least on Perl 5.6.2 SVREF typemap entry has the meaning of |
|---|
| 390 | the class based on blessed SV. So instead of SVREF we use |
|---|
| 391 | custom Ref_SV and custom typemap entry. Found by CPAN |
|---|
| 392 | testers. |
|---|
| 393 | |
|---|
| 394 | Do not use AUTOLOAD for normal commands, only for undocumented |
|---|
| 395 | ones. |
|---|
| 396 | |
|---|
| 397 | Add incr() and decr() to script/compare.pl and |
|---|
| 398 | script/benchmark.pl. |
|---|
| 399 | |
|---|
| 400 | Test case is split into several files and cleaned a bit. |
|---|
| 401 | |
|---|
| 402 | Rename 'sun' -> 's_unix' in connect.c, because 'sun' is |
|---|
| 403 | reserved on... guesses? Right, Sun systems! Found by CPAN |
|---|
| 404 | testers. |
|---|
| 405 | |
|---|
| 406 | Fix test case for FreeBSD and derivatives: do not use |
|---|
| 407 | localhost.localdomain address, which FreeBSD doesn't resolve |
|---|
| 408 | by default. |
|---|
| 409 | |
|---|
| 410 | Added docs section "UTF-8 and tainted data". |
|---|
| 411 | |
|---|
| 412 | |
|---|
| 413 | 0.04 2007-12-16 |
|---|
| 414 | - CPAN testers found more issues on different platforms, |
|---|
| 415 | fixing these. |
|---|
| 416 | |
|---|
| 417 | Changes since 0.03: |
|---|
| 418 | |
|---|
| 419 | const char * is missing from typemap in Perl 5.6.2, fixed by |
|---|
| 420 | using plain char * for class name in new(). |
|---|
| 421 | |
|---|
| 422 | Use AI_ADDRCONFIG conditionally, some systems do not have it |
|---|
| 423 | (NetBSD 3.1). |
|---|
| 424 | |
|---|
| 425 | |
|---|
| 426 | 0.03 2007-12-16 |
|---|
| 427 | - this release has no new functionality compared to 0.02. It |
|---|
| 428 | only fixes some test and documentation problems that were |
|---|
| 429 | discovered, as it always happens, after the upload to CPAN. |
|---|
| 430 | |
|---|
| 431 | Changes since 0.02: |
|---|
| 432 | |
|---|
| 433 | Fixed internal documentation references. |
|---|
| 434 | |
|---|
| 435 | Added missing docs for incr and decr. |
|---|
| 436 | |
|---|
| 437 | Fixed test case to test server version and use |
|---|
| 438 | cas/gets/append/prepend only for 1.2.4 and up. |
|---|
| 439 | |
|---|
| 440 | Actually there's new _undocumented_ command server_versions, |
|---|
| 441 | is has broken interface, you can't say which version |
|---|
| 442 | corresponds to which server when some of them do not respond. |
|---|
| 443 | This command is subject to change. |
|---|
| 444 | |
|---|
| 445 | |
|---|
| 446 | 0.02 2007-12-15 |
|---|
| 447 | - first public release. |
|---|
| 448 | |
|---|
| 449 | Changes since 0.01: |
|---|
| 450 | |
|---|
| 451 | Fully restartable code was replaced with classic |
|---|
| 452 | fill-the-buffer-first approach: it turned out that |
|---|
| 453 | restartability doesn't add much advantage. Lots of beautiful |
|---|
| 454 | and ugly code gone away. |
|---|
| 455 | |
|---|
| 456 | Added support for multiple servers (select machine, CRC32, |
|---|
| 457 | timeouts). |
|---|
| 458 | |
|---|
| 459 | Added script/compare.pl to compare this module to the original |
|---|
| 460 | Cache::Memcached, and also to measure speed in general. |
|---|
| 461 | |
|---|
| 462 | Added Unix socket support, SIGPIPE handling (proper ignoring |
|---|
| 463 | actually ;)). |
|---|
| 464 | |
|---|
| 465 | Added support for serialization of Perl data structures, and |
|---|
| 466 | for compression. |
|---|
| 467 | |
|---|
| 468 | New commands: incr, decr, gets, gets_multi, cas, |
|---|
| 469 | enable_compression, remove (alias to delete). |
|---|
| 470 | |
|---|
| 471 | New client parameters: connect_timeout, io_timeout (aka |
|---|
| 472 | select_timeout), compress_threshold, compress_ratio, |
|---|
| 473 | compress_algo, max_failure, failure_timeout. |
|---|
| 474 | |
|---|
| 475 | Finally added documentation! |
|---|
| 476 | |
|---|
| 477 | Added support for server weights. |
|---|
| 478 | |
|---|
| 479 | Added the Ketama consistent hashing algorithm. |
|---|
| 480 | |
|---|
| 481 | Added default tests as generated with Module::Starter. Main |
|---|
| 482 | test case is still messy, should be split into several tests. |
|---|
| 483 | |
|---|
| 484 | There's also support for 'noreply'-enabled memcached, but |
|---|
| 485 | those patches are not (yet) accepted to mainline, so 'noreply' |
|---|
| 486 | is not an official feature and is not documented. |
|---|
| 487 | |
|---|
| 488 | |
|---|
| 489 | 0.01 2007-11-26 |
|---|
| 490 | - first internal release. |
|---|
| 491 | |
|---|
| 492 | Supported only one server connection (TCP). Commands are |
|---|
| 493 | set(), add(), replace(), prepend(), append(), delete(), |
|---|
| 494 | flush_all(), get(), get_multi(). Client parameters are |
|---|
| 495 | 'servers', 'namespace', 'close_on_error'. There's no |
|---|
| 496 | documentation. Test case is messy (but does its job). |
|---|
| 497 | |
|---|
| 498 | |
|---|
| 499 | 0.00 2007-11-19 |
|---|
| 500 | - original version; created by h2xs 1.23 with options |
|---|
| 501 | -O --omit-autoload --compat-version=5.6.0 \ |
|---|
| 502 | --use-new-tests --name=Cache::Memcached::Fast |
|---|