zookeeper-ng 1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.ctags_paths +1 -0
- data/.dotfiles/ruby-gemset +1 -0
- data/.dotfiles/ruby-version +1 -0
- data/.dotfiles/rvmrc +2 -0
- data/.gitignore +19 -0
- data/.gitmodules +3 -0
- data/.travis.yml +25 -0
- data/CHANGELOG +395 -0
- data/Gemfile +30 -0
- data/Guardfile +8 -0
- data/LICENSE +23 -0
- data/Manifest +29 -0
- data/README.markdown +85 -0
- data/Rakefile +121 -0
- data/cause-abort.rb +117 -0
- data/ext/.gitignore +6 -0
- data/ext/Rakefile +41 -0
- data/ext/c_zookeeper.rb +398 -0
- data/ext/common.h +17 -0
- data/ext/dbg.h +53 -0
- data/ext/depend +5 -0
- data/ext/event_lib.c +740 -0
- data/ext/event_lib.h +175 -0
- data/ext/extconf.rb +103 -0
- data/ext/generate_gvl_code.rb +321 -0
- data/ext/patches/zkc-3.3.5-network.patch +24 -0
- data/ext/patches/zkc-3.4.5-fetch-and-add.patch +16 -0
- data/ext/patches/zkc-3.4.5-logging.patch +41 -0
- data/ext/patches/zkc-3.4.5-out-of-order-ping.patch +163 -0
- data/ext/patches/zkc-3.4.5-overflow.patch +11 -0
- data/ext/patches/zkc-3.4.5-yosemite-htonl-fix.patch +102 -0
- data/ext/zkc-3.4.5.tar.gz +0 -0
- data/ext/zkrb.c +1075 -0
- data/ext/zkrb_wrapper.c +775 -0
- data/ext/zkrb_wrapper.h +350 -0
- data/ext/zkrb_wrapper_compat.c +15 -0
- data/ext/zkrb_wrapper_compat.h +11 -0
- data/ext/zookeeper_base.rb +256 -0
- data/java/java_base.rb +503 -0
- data/lib/zookeeper.rb +115 -0
- data/lib/zookeeper/acls.rb +44 -0
- data/lib/zookeeper/callbacks.rb +108 -0
- data/lib/zookeeper/client.rb +30 -0
- data/lib/zookeeper/client_methods.rb +282 -0
- data/lib/zookeeper/common.rb +122 -0
- data/lib/zookeeper/common/queue_with_pipe.rb +110 -0
- data/lib/zookeeper/compatibility.rb +138 -0
- data/lib/zookeeper/constants.rb +97 -0
- data/lib/zookeeper/continuation.rb +223 -0
- data/lib/zookeeper/core_ext.rb +58 -0
- data/lib/zookeeper/em_client.rb +55 -0
- data/lib/zookeeper/exceptions.rb +135 -0
- data/lib/zookeeper/forked.rb +19 -0
- data/lib/zookeeper/latch.rb +34 -0
- data/lib/zookeeper/logger.rb +39 -0
- data/lib/zookeeper/logger/forwarding_logger.rb +84 -0
- data/lib/zookeeper/monitor.rb +19 -0
- data/lib/zookeeper/rake_tasks.rb +165 -0
- data/lib/zookeeper/request_registry.rb +153 -0
- data/lib/zookeeper/stat.rb +21 -0
- data/lib/zookeeper/version.rb +4 -0
- data/notes.txt +14 -0
- data/scripts/upgrade-1.0-sed-alike.rb +46 -0
- data/spec/c_zookeeper_spec.rb +51 -0
- data/spec/chrooted_connection_spec.rb +83 -0
- data/spec/compatibilty_spec.rb +8 -0
- data/spec/default_watcher_spec.rb +41 -0
- data/spec/em_spec.rb +51 -0
- data/spec/ext/zookeeper_base_spec.rb +19 -0
- data/spec/forked_connection_spec.rb +124 -0
- data/spec/latch_spec.rb +24 -0
- data/spec/log4j.properties +17 -0
- data/spec/shared/all_success_return_values.rb +10 -0
- data/spec/shared/connection_examples.rb +1077 -0
- data/spec/spec_helper.rb +61 -0
- data/spec/support/00_logging.rb +38 -0
- data/spec/support/10_spawn_zookeeper.rb +24 -0
- data/spec/support/progress_formatter.rb +15 -0
- data/spec/support/zookeeper_spec_helpers.rb +96 -0
- data/spec/zookeeper_spec.rb +24 -0
- data/zookeeper.gemspec +38 -0
- data/zoomonkey/duplicates +3 -0
- data/zoomonkey/zoomonkey.rb +194 -0
- metadata +157 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d3ab715117fac5110ed30a26d5b1d4a0f26e1651004ad41c21f38b9d46128d40
|
4
|
+
data.tar.gz: 5cd912c227b7f5fcb764b3ebffe5af6f86aff62adcc56557006abce6133377b6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cba2378c1ca772f6552e13b4aa02100a8addd8bba04783be4a75784dbfdbe17c43e5401fb30456f0244642ffa6d0b2e62e6ccc0d0f06e5f2b5736978df902b8a
|
7
|
+
data.tar.gz: 370d3c712634c8f102c647bc968e778ab5b40aba68c44f0e38358e298039340dca86ef51e884ae1188f9dd5e0aae97a611420bd9c26e1da57c3f079a75601606
|
data/.ctags_paths
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
~/vendor/ruby/*.{c,h}
|
@@ -0,0 +1 @@
|
|
1
|
+
zookeeper
|
@@ -0,0 +1 @@
|
|
1
|
+
ruby-1.9.3-p429
|
data/.dotfiles/rvmrc
ADDED
data/.gitignore
ADDED
data/.gitmodules
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
notifications:
|
3
|
+
email:
|
4
|
+
- ich@abwesend.com
|
5
|
+
|
6
|
+
# pull in releaseops submodule
|
7
|
+
before_install:
|
8
|
+
- git submodule update --init --recursive
|
9
|
+
|
10
|
+
env:
|
11
|
+
- SPAWN_ZOOKEEPER='true'
|
12
|
+
|
13
|
+
language: ruby
|
14
|
+
|
15
|
+
rvm:
|
16
|
+
- 2.6
|
17
|
+
- 2.7
|
18
|
+
- 3.0
|
19
|
+
|
20
|
+
bundler_args: --without development docs coverage
|
21
|
+
|
22
|
+
# blacklist
|
23
|
+
branches:
|
24
|
+
except:
|
25
|
+
# - 'dev/zookeeper-st'
|
data/CHANGELOG
ADDED
@@ -0,0 +1,395 @@
|
|
1
|
+
v1.5
|
2
|
+
* going forward, publishing this fork under zookeeper-ng
|
3
|
+
|
4
|
+
v1.4.11
|
5
|
+
* backported fix for ZOOKEEPER-2253 by @chchen - #76
|
6
|
+
|
7
|
+
v1.4.10
|
8
|
+
|
9
|
+
* fix for ruby 2.2.0 build - #74 (h/t: fbernier)
|
10
|
+
|
11
|
+
v1.4.9
|
12
|
+
|
13
|
+
* Fix for build on OS-X 10.10 by @e0en
|
14
|
+
|
15
|
+
v1.4.8
|
16
|
+
|
17
|
+
* Fix deadlock related to state checks that can happen during reconnecting
|
18
|
+
|
19
|
+
v1.4.7
|
20
|
+
|
21
|
+
* Fixing dependent library compilation on FreeBSD 10 #53 (h/t: gogreen53)
|
22
|
+
|
23
|
+
v1.4.6
|
24
|
+
|
25
|
+
* Fix two issues with dealing with unresponsive zookeeper servers
|
26
|
+
that would prevent the client from properly recovering the session
|
27
|
+
(including one in the Apache ZooKeeper C library — see ZOOKEEPER-1756
|
28
|
+
for more details)
|
29
|
+
* Reduce the chances of seeing Zookeeper::Exceptions::NotConnected
|
30
|
+
exceptions by only submitting new commands if we are connected
|
31
|
+
* Prevent commands from being queued to be sent to the server if the
|
32
|
+
session has expired which will solve most cases involving the
|
33
|
+
Zookeeper::Exceptions::ContinuationTimeoutError exception
|
34
|
+
* Upgrade the Apache ZooKeeper C library to 3.4.5 (client is backward
|
35
|
+
compatible with 3.3 servers). The Java library has not been updated.
|
36
|
+
* Cleanup complaints from compiler for uninitialized variable access
|
37
|
+
|
38
|
+
v1.4.5
|
39
|
+
|
40
|
+
* Allow passing :session_id and :session_password options #42 (thanks to avalanche123)
|
41
|
+
* Fix permissions constants #46, #47, #48 (thanks to jaeho-kim)
|
42
|
+
* Allow JRuby to read nil values #44 (thanks to reidmorrison)
|
43
|
+
|
44
|
+
|
45
|
+
v1.4.4 fix build under FreeBSD (h/t: stass)
|
46
|
+
|
47
|
+
* https://github.com/slyphon/zookeeper/pull/40
|
48
|
+
|
49
|
+
v1.4.3 fix build for ruby 2.0.0-rc2
|
50
|
+
|
51
|
+
* https://github.com/slyphon/zookeeper/pull/34
|
52
|
+
|
53
|
+
v1.4.2 fix a bug in the forwarding logger format string
|
54
|
+
|
55
|
+
v1.4.1 merge pull request 29 - fix exception handling in jruby 1.7.x
|
56
|
+
|
57
|
+
* h/t to @dynamix for the patch
|
58
|
+
|
59
|
+
|
60
|
+
v1.4.0 Removed the 'logging' gem
|
61
|
+
|
62
|
+
* At the request of a user, use of the logging gem has been discontinued as
|
63
|
+
it appears to cause a fair amount of RSS memory bloating (8MB was
|
64
|
+
reported). It's been replaced by a fairly simple ad-hoc implementation
|
65
|
+
using the stdlib 'logger' class. No user impact is expected unless you were
|
66
|
+
adjusting the Loggers on components of zookeeper.
|
67
|
+
|
68
|
+
v1.3.0 much needed refactor of event and async result delivery
|
69
|
+
|
70
|
+
* event and async blocks were previously mixed in with a bunch of other
|
71
|
+
common code, and shared a Monitor with other unrelated functionality. This
|
72
|
+
code has been gently refactored into its own self-contained class (with its
|
73
|
+
own task-specific lock), which should help with maintenance.
|
74
|
+
|
75
|
+
v1.2.14 merge add_auth pull request, reduce chances for ContinuationTimeoutError
|
76
|
+
|
77
|
+
* added support for the add_auth call (h/t: @bradhe) see pull req #25
|
78
|
+
|
79
|
+
* fix a corner case where some pending Continuations may get stuck without
|
80
|
+
being shutdown when the event thread exits. This would lead to a
|
81
|
+
ContinuationTimeoutError being raised after 30s as a failsafe.
|
82
|
+
|
83
|
+
v1.2.13 fix build under rbenv
|
84
|
+
|
85
|
+
* h/t to Eric Lindvall for fixing #22 in http://git.io/PEPgnA
|
86
|
+
build reportedly works in rbenv now.
|
87
|
+
|
88
|
+
v1.2.12 improve locking in dispatch_next_callback
|
89
|
+
|
90
|
+
* Possible fix for an edgy NoMethodError on nil
|
91
|
+
|
92
|
+
v1.2.11 remove dependency on backports gem
|
93
|
+
|
94
|
+
* Somewhat naively we were requiring the backports gem to provide
|
95
|
+
Kernel#require_relative. This release implements similar functionlity
|
96
|
+
inside the Zookeeper module and doesn't affect the global namespace.
|
97
|
+
|
98
|
+
We apologise for the inconvenience.
|
99
|
+
|
100
|
+
v1.2.10 minor bug fix in java code
|
101
|
+
|
102
|
+
* Don't obscure a legitimate exception because of an unexpected nil
|
103
|
+
|
104
|
+
v1.2.7 further lock adjustments, deadlock risk reduction
|
105
|
+
|
106
|
+
* Refactor ZookeeperBase to not hold onto the mutex while waiting
|
107
|
+
for the dispatch thread to exit and the CZookeeper instance to close.
|
108
|
+
Instead, lock, nil out @czk, and unlock (which will cause all calls to
|
109
|
+
raise NotConnected), and then carry on with the shutdown procedure, greatly
|
110
|
+
reducing the chances of a deadlock. Also add a hardcoded 30 second timeout
|
111
|
+
to the join of the shutdown thread, that way we won't hang indefinitely in
|
112
|
+
the case of an unforseen condition.
|
113
|
+
|
114
|
+
* Improve the CZookeeper#wait_until_connected to use a deadline approach
|
115
|
+
to waiting for both running and connected states. Also, handle the
|
116
|
+
'nil' (wait forever) timeout properly.
|
117
|
+
|
118
|
+
* Wake all waiting threads on all ConditionVariables when CZookeeper#shut_down!
|
119
|
+
is called
|
120
|
+
|
121
|
+
v1.2.6 fix build on fedora
|
122
|
+
|
123
|
+
v1.2.5 cleanup locking in ZookeeperBase
|
124
|
+
|
125
|
+
* There were several situations where we would hold the lock before calling
|
126
|
+
a method on CZookeeper (inquisitors and #create in particular). This
|
127
|
+
exposed us to deadlocks in situations where an async event would be
|
128
|
+
delivered (probably a SESSION_EXPIRED event), but the callback block could
|
129
|
+
not be called because the dispatch thread would block on the mutex being
|
130
|
+
held by the caller of create.
|
131
|
+
|
132
|
+
This version cleans up that usage, and ensures that the only time we hold
|
133
|
+
the mutex is during startup/shutdown (when the value of @czk may be changing),
|
134
|
+
and in all other cases we grab the mutex, dereference, and unlock then perform
|
135
|
+
whatever action on the reference.
|
136
|
+
|
137
|
+
* Add a safety net to Continuation (which will soon be called 'Promise' or
|
138
|
+
'Future' at the request of @eric). If any operation takes more than 30s
|
139
|
+
an exception will be raised in the calling thread. The session timeout
|
140
|
+
setting makes it so that no operation should take more than 20s, so we know
|
141
|
+
if we haven't received a reply in *longer* than that, something has gone
|
142
|
+
awry.
|
143
|
+
|
144
|
+
v1.2.4 fix buffer overflow in CZookeeper client_id code
|
145
|
+
|
146
|
+
* the 'passwd' part of the struct is a char[16], but isn't null terminated.
|
147
|
+
use rb_str_new with an explicit length, rather than rb_str_new2 which
|
148
|
+
uses strlen().
|
149
|
+
|
150
|
+
v1.2.3 ensure that all threads are woken up on shutdown
|
151
|
+
|
152
|
+
* There was an edge case where a call would be queued up and its thread
|
153
|
+
sleeping waiting for a response, but that response would never come because
|
154
|
+
the connection was shut down. This version includes a patch for that case
|
155
|
+
to ensure that if a call is in 'pending' state, and shutdown time arrives
|
156
|
+
that all pending threads will receive a Zookeeper::Exceptions::NotConnected
|
157
|
+
exception.
|
158
|
+
|
159
|
+
v1.2.2 avoid race while waiting for connection
|
160
|
+
|
161
|
+
* There was a possible race in CZookeeper#wait_until_connected where if we
|
162
|
+
couldn't connect to the port specified (localhost:28271) then we wound up
|
163
|
+
burning 100% CPU and spinning. This solution fixes that by hooking into the
|
164
|
+
event delivery and keeping track of what the current state is. When there's
|
165
|
+
a change, we use a ConditionVariable to wake up threads that were waiting
|
166
|
+
until the connection was connected. Additionally, we now respect the
|
167
|
+
timeout parameter again.
|
168
|
+
|
169
|
+
v1.2.1 simplify assert_open
|
170
|
+
|
171
|
+
* The client methods were all calling assert_open before performing an
|
172
|
+
action. This was meant as a fail-early lightweight check of the connection
|
173
|
+
state and it worked well when we were running against the mt code. Now this
|
174
|
+
requires us to use a Continuation and make our way through the event loop.
|
175
|
+
There is a possible deadlock this release should solve that was caused by
|
176
|
+
the assert_open code holding a lock while making an async call through
|
177
|
+
the event loop. This is no longer the case. The assert_open call only checks
|
178
|
+
that the current handle hasn't been closed, the connection-state checking
|
179
|
+
now occurs before submitting a request on the event iteration thread, and
|
180
|
+
the behavior should be the same as it was before. If the underlying
|
181
|
+
connection is not in the 'connected' state, an exception will be raised.
|
182
|
+
|
183
|
+
v1.2.0 Stop the World, I Wanna fork()
|
184
|
+
|
185
|
+
* changed pause/resume methods to pause_before_fork_in_parent
|
186
|
+
and resume_after_fork_in_parent to match their ZK counterparts
|
187
|
+
|
188
|
+
* replaced the Queue in QueueWithPipe (really have to change that name)
|
189
|
+
with an Array and Mutex/ConditionVariable pair. This allows us to
|
190
|
+
have better control over the shutdown signaling, and lets us resume
|
191
|
+
operations after a pause.
|
192
|
+
|
193
|
+
|
194
|
+
v1.1.1 Cleanup after code review (h/t @eric)
|
195
|
+
|
196
|
+
* While hunting down this bug: https://bugs.ruby-lang.org/issues/6438
|
197
|
+
Eric Lindvall made a number of helpful catches.
|
198
|
+
|
199
|
+
* Reduce syscall overhead by not using an unnecessary pipe in the event_lib.c
|
200
|
+
implementation
|
201
|
+
|
202
|
+
* More careful use of rb_raise, don't longjmp past necessary free() calls.
|
203
|
+
|
204
|
+
* More careful malloc in the get() implementation (we need to allocate 1MB
|
205
|
+
to hold the data in a znode, but only in the SYNC cases).
|
206
|
+
|
207
|
+
|
208
|
+
v1.1.0 Rewrite C backend to use zookeeper_st, the async library
|
209
|
+
|
210
|
+
* In order to ensure fork safety, a rewrite of the backend was necessary.
|
211
|
+
It was impossible to guarantee with the mt lib that a lock would not
|
212
|
+
be held by a thread when fork() was called, which opened up the possibility
|
213
|
+
for corruption and other badness.
|
214
|
+
|
215
|
+
This version contains a Continuation class, which allows us to present a
|
216
|
+
synchronous front-end to the asynchronous backend. All features are still
|
217
|
+
supported, no special action is necessary to prepare for a fork, and the
|
218
|
+
post-fork procedure is the same as before: call reopen() in the child,
|
219
|
+
continue on in the parent like nothing happened.
|
220
|
+
|
221
|
+
v1.0.6 Only include backports if RUBY_VERSION is 1.8.x
|
222
|
+
|
223
|
+
* 'backports' pollutes too much, use sparingly
|
224
|
+
|
225
|
+
v1.0.5 Minor cleanup
|
226
|
+
|
227
|
+
* Fix the InheritedConnectionError message
|
228
|
+
|
229
|
+
* Clean up the module includes
|
230
|
+
|
231
|
+
v1.0.3 Linux: Fix hang on reopen after fork
|
232
|
+
|
233
|
+
* Linux users relying on fork() should upgrade to 1.0.3, as it
|
234
|
+
fixes a bug in the reopen code that would cause a hang in the child.
|
235
|
+
If you're running on linux, you *really* should upgrade
|
236
|
+
|
237
|
+
v1.0.0 Single Zookeeper namespace
|
238
|
+
|
239
|
+
* The top level Zookeeper class is now a module, the former Zookeeper
|
240
|
+
class is now Zookeeper::Client
|
241
|
+
|
242
|
+
* Consolidate the 6 top-level namespaces into one, Zookeeper module
|
243
|
+
|
244
|
+
ZookeeperCommon -> Zookeeper::Common
|
245
|
+
ZookeeperCallbacks -> Zookeeper::Callbacks
|
246
|
+
ZookeeperConstants -> Zookeeper::Constants
|
247
|
+
ZookeeperExceptions -> Zookeeper::Exceptions
|
248
|
+
ZookeeperACLs -> Zookeeper::ACLs
|
249
|
+
CZookeeper -> Zookeeper::CZookeeper
|
250
|
+
|
251
|
+
* Added a 'zookeeper/compatibility' file that will define the old names
|
252
|
+
and look up the new constants for users, and print a warning telling them
|
253
|
+
the change has occurred and that they should update their code
|
254
|
+
|
255
|
+
* Added scripts/upgrade-1.0-sed-alike.rb which will basically do a
|
256
|
+
find-and-replace, changing the old names to the new names (worked on
|
257
|
+
both the Zookeeper and ZK codebases).
|
258
|
+
|
259
|
+
* Java and C now use different names for the base class, to avoid the
|
260
|
+
possibility of error. Java is now JavaBase, C remains ZookeeperBase.
|
261
|
+
|
262
|
+
* All client methods are defined in the ClientMethods module and mixed
|
263
|
+
into the constructed Client class.
|
264
|
+
|
265
|
+
* Fix all requires, no longer monkey with $LOAD_PATH, use require_relative
|
266
|
+
|
267
|
+
* Bugfix for C client.
|
268
|
+
|
269
|
+
Because we release the GIL, there's the possibilty that in the middle of a
|
270
|
+
synchronous C call, ruby will have switched thread contexts and one of
|
271
|
+
those threads will call close. It seems that during normal operation, this
|
272
|
+
is not a problem, but during shutdown, this causes CPU to spike to 100% and
|
273
|
+
a deadlock. This fix essentially wraps every call to the C layer in a
|
274
|
+
mutex. There may be a slightly less heavyweight optimization in the future,
|
275
|
+
but this is the safest option at the moment.
|
276
|
+
|
277
|
+
v0.9.3 Event thread shutdown fix, Windows compatibility fix
|
278
|
+
|
279
|
+
* Use a 'shutdown thread' to coordinate cleanup if close is called from the
|
280
|
+
event thread (prevents deadlock)
|
281
|
+
|
282
|
+
* Default Logger now uses $stderr instead of opening /dev/null [#16]
|
283
|
+
|
284
|
+
* Gemfile/gemspec/Rakefile refactoring.
|
285
|
+
|
286
|
+
v0.9.2 More efficient and simpler wrappers for GIL release
|
287
|
+
|
288
|
+
* After a code review by Andrew Wason (rectalogic), use a much simpler
|
289
|
+
technique for creating the arg structs and passing them to the
|
290
|
+
zkrb_gvl_* functions. No malloc(), no free(), no problem.
|
291
|
+
|
292
|
+
v0.9.1 see v0.8.4 notes, same patch
|
293
|
+
|
294
|
+
v0.9.0 RELEASE THE KRAK..er, GIL!!
|
295
|
+
|
296
|
+
* In >= 1.9.2 the ruby interpreter allows you to release the GIL when
|
297
|
+
calling into native code, sounds like a good idea.
|
298
|
+
|
299
|
+
This release makes use of that code by parsing the zookeeper.h header file
|
300
|
+
and extracting the method signatures of all relevant zoo_* functions, then
|
301
|
+
generating boilerplate that allows us to call those functions via the
|
302
|
+
rb_thread_blocking_region function.
|
303
|
+
|
304
|
+
1.8.7 compatibility is maintained by stubbing out that functionality if built
|
305
|
+
under 1.8.7.
|
306
|
+
|
307
|
+
* 1.8.7 is deprecated! I will continue to support 1.8.7 for the near future
|
308
|
+
but sometime soon, you're gonna have to upgrade.
|
309
|
+
|
310
|
+
v0.8.4 fix NameError, require 'forwardable'
|
311
|
+
|
312
|
+
* Really not sure why this didn't come up in tests
|
313
|
+
|
314
|
+
* issue here https://github.com/slyphon/zk/issues/22
|
315
|
+
|
316
|
+
v0.8.3 fix NonLocalJump exception in event delivery thread shutdown code
|
317
|
+
|
318
|
+
* hit a corner case where we're waiting for the zkc handle setup
|
319
|
+
and the user decides to shutdown, but before we've had a chance
|
320
|
+
to enter the delivery loop.
|
321
|
+
|
322
|
+
* Cleaned up some nasty code in ZookeeperConstants
|
323
|
+
|
324
|
+
* removed ZookeeperConstants#print_events and ZookeeperConstants#print_states
|
325
|
+
|
326
|
+
* changed EVENT_TYPE_NAMES and EVENT_STATE_NAMES in ZookeeperConstants
|
327
|
+
to use string values instead of symbols
|
328
|
+
|
329
|
+
v0.8.2 fix close after a fork()
|
330
|
+
|
331
|
+
* The dispatch thread will be dead in this situation, so we need to
|
332
|
+
check to see if it's already dead before waiting on it to exit.
|
333
|
+
|
334
|
+
v0.8.1 Java client fix, silence warnings
|
335
|
+
|
336
|
+
v0.8.0 Refactor C implementaion, EventMachine client
|
337
|
+
|
338
|
+
* separated CZookeeper and ZookeeperBase implementation
|
339
|
+
|
340
|
+
This solves issues with reopen not working properly, makes for a much
|
341
|
+
cleaner event delivery implementation. ZookeeperBase controls the lifecycle
|
342
|
+
of the event dispatch thread now, rather than it being tied to CZookeeper.
|
343
|
+
|
344
|
+
* added support for the 'sync' API call
|
345
|
+
|
346
|
+
* Refactored zookeeper_c.c and zookeeper_lib.c
|
347
|
+
|
348
|
+
More error checking in zookeeper_lib.c and restructure some things to make
|
349
|
+
logic easier to follow
|
350
|
+
|
351
|
+
Fix bug in method_get_next_event that made the shutdown case so complicated
|
352
|
+
|
353
|
+
* Massively simplified EMClient implementation
|
354
|
+
|
355
|
+
Rather than trying to hook the IO used by zookeeper_lib to notify zookeeper_c
|
356
|
+
about event availabiltiy directly into EventMachine, use the same event delivery
|
357
|
+
thread, but wrap the dispatch call in EM.schedule.
|
358
|
+
|
359
|
+
* Improve implementation of spin-lock-esque code that waits for the connection to be
|
360
|
+
established before returning.
|
361
|
+
|
362
|
+
This cut the test runtime down from 1m 20s to 2s.
|
363
|
+
|
364
|
+
* Java client refactoring, similar correctness changes
|
365
|
+
|
366
|
+
* Change ZookeeperException base class to StandardError instead of Exception
|
367
|
+
|
368
|
+
|
369
|
+
v0.4.5 Upgrade to ZooKeeper 3.3.3
|
370
|
+
|
371
|
+
v0.4.4 Fix race condition on close, possible data corruption on async get.
|
372
|
+
|
373
|
+
v0.4.3 Fix a handful of memory-related bugs, fix SIGSEGV on master change, reduce latency of event handling, fix compilation on OSX.
|
374
|
+
|
375
|
+
v0.4.2 Add options to Zookeeper#initialize, silence most Zookeeper logs.
|
376
|
+
|
377
|
+
v0.4.1 Upgrade to ZooKeeper 3.3.2
|
378
|
+
|
379
|
+
v0.4.0. More attr-readers (StarvingMarvin) and 1.9 compatibility (tsuraan)
|
380
|
+
|
381
|
+
v0.3.2. Handle close, closed connections and expired sessions a little more gracefully.
|
382
|
+
|
383
|
+
v0.3.1. ACL bugfix.
|
384
|
+
|
385
|
+
v0.3.0. Wickman's rewrite, breaks dependencies from myelin/emaland port.
|
386
|
+
|
387
|
+
v0.2.2. Fix compatibility with stock Leopard fat-binary Ruby.
|
388
|
+
|
389
|
+
v0.2.1. No more camelcase classname.
|
390
|
+
|
391
|
+
v0.2. Bundle C dependencies, like memcached.gem.
|
392
|
+
|
393
|
+
v0.1. First release.
|
394
|
+
|
395
|
+
# vim:ft=text:ts=2:sw=2:et
|