| 1 | * Reconnects to a dead connection shouldn't happen every time when the |
|---|
| 2 | connection has never succeded. Apply the dead timeout to sockets that |
|---|
| 3 | never even came up. Add a test. |
|---|
| 4 | |
|---|
| 5 | * Warn when trying to put undef values into memcache. |
|---|
| 6 | (Henry Lyne <hlyne@livejournalinc.com>) |
|---|
| 7 | |
|---|
| 8 | * flush_all now only returns success if there is a proper reply from all |
|---|
| 9 | servers - Yann Kerherve <yann@sixapart.com> |
|---|
| 10 | |
|---|
| 11 | * 'noreply' support from Tomash Brechko <tomash.brechko@gmail.com> |
|---|
| 12 | |
|---|
| 13 | * various test updates from Ronald J Kimball <rkimball@pangeamedia.com> |
|---|
| 14 | |
|---|
| 15 | 2007-07-17: version 1.24 |
|---|
| 16 | |
|---|
| 17 | * update the stats method, including tests for it |
|---|
| 18 | (Ronald J Kimball <rkimball+memcached@pangeamedia.com>) |
|---|
| 19 | |
|---|
| 20 | * arguments to 'new' constructor can be %hash or $hashref now |
|---|
| 21 | (previously was only $hashref) |
|---|
| 22 | |
|---|
| 23 | * work around a Perl segfault (Matthieu PATOU <mp@oxado.com>) |
|---|
| 24 | see http://lists.danga.com/pipermail/memcached/2007-June/004511.html |
|---|
| 25 | |
|---|
| 26 | 2007-06-19: version 1.23 |
|---|
| 27 | |
|---|
| 28 | * add 'remove' as an alias for 'delete' (Dave Cardwell <dave@davecardwell.co.uk>) |
|---|
| 29 | |
|---|
| 30 | 2007-06-18: version 1.22 |
|---|
| 31 | |
|---|
| 32 | * lost connection handling broken due to wrong %sock_map indexing |
|---|
| 33 | http://rt.cpan.org/Public/Bug/Display.html?id=27181 |
|---|
| 34 | fix from RHESA |
|---|
| 35 | |
|---|
| 36 | * let parser_class be configured as a constructor option, |
|---|
| 37 | defaulting to XS if available, else regular. (unless |
|---|
| 38 | $ENV{NO_XS} is set, in which case the default is regular) |
|---|
| 39 | |
|---|
| 40 | 2007-05-02: version 1.21 |
|---|
| 41 | |
|---|
| 42 | * new faster optional interface for GetParser subclasses. doing |
|---|
| 43 | this release so upcoming Cache::Memcached::GetParserXS can |
|---|
| 44 | depend on this. otherwise this release isn't interesting. |
|---|
| 45 | |
|---|
| 46 | 2007-04-16: version 1.20 |
|---|
| 47 | |
|---|
| 48 | * fix "Warning produced when flush_all called" from CDENT |
|---|
| 49 | http://rt.cpan.org/Public/Bug/Display.html?id=22181 |
|---|
| 50 | |
|---|
| 51 | * support access via unix domain sockets. (Nathan Neulinger <nneul@umr.edu>) |
|---|
| 52 | |
|---|
| 53 | * abstract out response parsing into own class, and add XS-module |
|---|
| 54 | detection, so if you have the XS (C) version, things'll be faster. |
|---|
| 55 | that part's not done yet. |
|---|
| 56 | |
|---|
| 57 | 2006-07-03 |
|---|
| 58 | * don't use dual scalar/glob sockets. makes it all profilable |
|---|
| 59 | again under SmallProf, DProf, and Devel::Profiler, all three |
|---|
| 60 | of which used to barf on those weird sockets previously |
|---|
| 61 | * only init_buckets once, when servers are changed |
|---|
| 62 | * don't call sock_to_host and get_sock as much: cache closer |
|---|
| 63 | in get_multi |
|---|
| 64 | * more internal caching (buck2sock, etc) |
|---|
| 65 | * fast paths for namespaces/single sock/etc in a few more places |
|---|
| 66 | * general micro-speedups all over |
|---|
| 67 | |
|---|
| 68 | 2006-06-27 |
|---|
| 69 | * patch from Maxim Dounin <mdounin@rambler-co.ru> to fix a typo |
|---|
| 70 | which caused no_rehash flag to not work. |
|---|
| 71 | * release 1.18 |
|---|
| 72 | |
|---|
| 73 | 2006-04-29 |
|---|
| 74 | * flush_all command from Patrick Michael Kane <modus-memcache@pr.es.to> |
|---|
| 75 | * document namespaces |
|---|
| 76 | * release 1.17 |
|---|
| 77 | |
|---|
| 78 | 2006-04-29 |
|---|
| 79 | * fix stats method (people have only been asking since 2004 :-/) |
|---|
| 80 | * add tests |
|---|
| 81 | * move Memcached to lib/Cache directory to be more CPAN-friendly |
|---|
| 82 | * release 1.16 |
|---|
| 83 | |
|---|
| 84 | 2005-09-20 |
|---|
| 85 | * configurable connect delays and callback on connect failure (brad) |
|---|
| 86 | * release 1.15 |
|---|
| 87 | |
|---|
| 88 | 2005-08-09 |
|---|
| 89 | * _connect_sock never works in blocking mode because of a bug in setting |
|---|
| 90 | the default timeout. (Gaal) |
|---|
| 91 | |
|---|
| 92 | 2004-07-27 |
|---|
| 93 | * release 1.14 |
|---|
| 94 | |
|---|
| 95 | 2004-07-27 |
|---|
| 96 | * kill buggy, slow ord() _hashfunc, replace with crc32. |
|---|
| 97 | this adds String::CRC32 as a dependency. thanks to |
|---|
| 98 | everybody's feedback on the mailing list. |
|---|
| 99 | |
|---|
| 100 | 2004-07-19 |
|---|
| 101 | * don't use pos() because it doesn't seem to work in |
|---|
| 102 | taint mode. use $+[0] instead. (Dave Evans <..@djce.org.uk>) |
|---|
| 103 | |
|---|
| 104 | 2004-06-19 |
|---|
| 105 | * support multiple paths to memcache nodes (Brad) |
|---|
| 106 | see 'set_pref_ip' |
|---|
| 107 | |
|---|
| 108 | 2004-05-30 |
|---|
| 109 | * release version 1.13 |
|---|
| 110 | |
|---|
| 111 | 2004-05-26 (Whitaker <whitaker@danga.com>) |
|---|
| 112 | * quiet warning |
|---|
| 113 | |
|---|
| 114 | 2004-05-25 (Whitaker <whitaker@danga.com>) |
|---|
| 115 | * get_multi shouldn't modify caller's @_ |
|---|
| 116 | |
|---|
| 117 | 2004-05-18 (Michael <ged@danga.com>) |
|---|
| 118 | * namespace support |
|---|
| 119 | * use fields |
|---|
| 120 | |
|---|
| 121 | 2004-05-16 (Alexei Kozlov <kozlov@w-m.ru>) |
|---|
| 122 | * remove warnings with vec |
|---|
| 123 | |
|---|
| 124 | 2004-04-09 (brad) |
|---|
| 125 | * in perl 5.6, trap errors dethawing 5.8 storable objects |
|---|
| 126 | and instead treat it like a cache miss |
|---|
| 127 | |
|---|
| 128 | 2004-04-01 |
|---|
| 129 | * use $! and not %! for perl 5.6 compat (Dave Evans <..@djce.org.uk>) |
|---|
| 130 | * don't mark whole IP dead anymore when a node is down (Jason Titus <jtitus@postini.com>) |
|---|
| 131 | * start version numbering (Jamie McCarthy <jamie@mccarthy.vg>) |
|---|
| 132 | |
|---|
| 133 | 2004-03-09 (Brad/Avva) |
|---|
| 134 | * _oneline can return more than one line (but always on a line break), |
|---|
| 135 | so caller must decide when it's really time to quit. had to modify |
|---|
| 136 | run_command to know that. (which is used by stats) |
|---|
| 137 | |
|---|
| 138 | 2004-03-05 (Dave Evans <..@djce.org.uk>) |
|---|
| 139 | * Here's a really trivial patch for the Perl binding, |
|---|
| 140 | Cache::Memcached. The bug is that the module assumes that the |
|---|
| 141 | currently select()ed filehandle is STDOUT, but this might not be |
|---|
| 142 | the case. So this patch ensures that the select()ed filehandle is |
|---|
| 143 | preserved, not forced to STDOUT. |
|---|
| 144 | |
|---|
| 145 | 2004-02-29 (Brad) |
|---|
| 146 | * add readonly option |
|---|
| 147 | |
|---|
| 148 | 2004-02-27 (Avva) |
|---|
| 149 | * Cleaner handling of the case when _oneline is called without a |
|---|
| 150 | line parameter (i.e. not to send anything, just read a line from |
|---|
| 151 | the socket). Make it depend on $line being defined only, |
|---|
| 152 | regardless of its content (thanks Brad!). |
|---|
| 153 | |
|---|
| 154 | 2004-02-25 (Avva) |
|---|
| 155 | * Asyncify all I/O, finally get rid of alarm() yuckiness, unify all |
|---|
| 156 | one-liner command/responses into a single internal API. |
|---|
| 157 | |
|---|
| 158 | 2004-02-17 |
|---|
| 159 | * document in POD the delete method |
|---|
| 160 | |
|---|
| 161 | 2004-02-03 |
|---|
| 162 | * fix bug with 2k read boundaries falling in the middle |
|---|
| 163 | of "VALUE ..." or "END" lines, thus halting future |
|---|
| 164 | parsing and responses. (eek!) |
|---|
| 165 | * version 1.0.12 |
|---|
| 166 | |
|---|
| 167 | 2003-12-01 |
|---|
| 168 | * merge stats/stats_reset patch from Jamie McCarthy |
|---|
| 169 | * trailing whitespace cleanup |
|---|
| 170 | |
|---|
| 171 | 2003-11-08 |
|---|
| 172 | * work on Solaris/BSD where there's no MSG_NOSIGNAL. |
|---|
| 173 | the expense is extra syscalls to change the local |
|---|
| 174 | SIGPIPE handler all the time. in the future, it'd |
|---|
| 175 | be nice to have an option so Solaris/BSD callers |
|---|
| 176 | can say, "Hey, I've turned off SIGPIPE globally, |
|---|
| 177 | don't worry about it." |
|---|
| 178 | |
|---|
| 179 | 2003-10-26 |
|---|
| 180 | * add a test file, so automated CPAN test hosts are happy |
|---|
| 181 | * check MSG_NOSIGNAL immediately on module load, not on use, |
|---|
| 182 | so Solaris dies early. (still on TODO to fix, but better |
|---|
| 183 | to fail loudly) |
|---|
| 184 | * version 1.0.11 |
|---|
| 185 | |
|---|
| 186 | 2003-10-25 |
|---|
| 187 | * version 1.0.10, rename to Cache::Memcached, upload to CPAN |
|---|
| 188 | |
|---|
| 189 | 2003-10-18 |
|---|
| 190 | * implement read/write timeouts everywhere. Now the client shouldn't |
|---|
| 191 | hang if the server machine goes down unexpectedly. (avva) |
|---|
| 192 | |
|---|
| 193 | 2003-10-16 |
|---|
| 194 | * use Storable::nfreeze instead of freeze, so hosts from different |
|---|
| 195 | architectures can all use the same data. (all must use Perl, though. |
|---|
| 196 | the different memcache APIs all store/pickle/serialize data differently) |
|---|
| 197 | Suggestion by Jason Titus <jtitus@postini.com> |
|---|
| 198 | |
|---|
| 199 | 2003-10-06 |
|---|
| 200 | * fix _incrdecr to return complete number, not just first |
|---|
| 201 | digit (thanks to Ryan T. Dean) |
|---|
| 202 | * release version 1.0.9 |
|---|
| 203 | |
|---|
| 204 | 2003-10-04 |
|---|
| 205 | * document expiration times in POD (thanks to Tim Bunce |
|---|
| 206 | for noting the omission) |
|---|
| 207 | * release version 1.0.8 |
|---|
| 208 | |
|---|
| 209 | 2003-10-03 |
|---|
| 210 | * add connect timeout of 0.25s, for dead host detection. |
|---|
| 211 | We had 1 second a couple revs ago, but lost it when |
|---|
| 212 | ditching IO::Socket module. (avva) |
|---|
| 213 | |
|---|
| 214 | 2003-10-02 |
|---|
| 215 | * fix _incrdecr with explicit-hashvalue keys (whitaker) |
|---|
| 216 | |
|---|
| 217 | 2003-10-01 |
|---|
| 218 | * add run_command API call. TODO: document, and document |
|---|
| 219 | the $exptime on the setters |
|---|
| 220 | |
|---|
| 221 | 2003-09-30 |
|---|
| 222 | * use send instead of print, so we can set MSG_NOSIGNAL |
|---|
| 223 | and not get SIGPIPES, which avoids 3 syscalls of localizing |
|---|
| 224 | $SIG{PIPE} and sends everything at once, instead of 4k |
|---|
| 225 | stdio chunks. in review: stdio buffered in, send unbuffered |
|---|
| 226 | out. TODO: setvbuf so reads are buffered at more than 4k. |
|---|
| 227 | |
|---|
| 228 | 2003-09-29 |
|---|
| 229 | * yet faster parsing |
|---|
| 230 | * switch to stdio/perlio instead of raw io: more correct, |
|---|
| 231 | simpler parsing code. |
|---|
| 232 | |
|---|
| 233 | 2003-09-28 |
|---|
| 234 | * prevent some warnings |
|---|
| 235 | * faster get() call that doesn't use get_multi() |
|---|
| 236 | * optimizations for single-server case |
|---|
| 237 | * use socket APIs directly, instead of uber-slow IO::* modules |
|---|
| 238 | * new faster _load_items parsing |
|---|
| 239 | |
|---|
| 240 | 2003-09-04 |
|---|
| 241 | * emit debug when set/add/replace fails, in addition to succeed |
|---|
| 242 | |
|---|
| 243 | Version 1.0.7 |
|---|
| 244 | -- compression support (Brad Whitaker) |
|---|
| 245 | |
|---|
| 246 | Version 1.0.6 |
|---|
| 247 | -- incr/decr client support |
|---|
| 248 | -- make delete optionally take second argument (server now supports |
|---|
| 249 | a delay time on delete) |
|---|
| 250 | -- doc updates from Jamie McCarthy |
|---|
| 251 | -- better hashing after dead host detection: new requests go to different |
|---|
| 252 | remaining hosts, instead of all to the same one. |
|---|
| 253 | |
|---|
| 254 | Version 1.0.2 |
|---|
| 255 | -- initial release, about. |
|---|