Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 160 lines (98 sloc) 5.944 kb
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
v1.0.0 Single Zookeeper namespace

  * The top level Zookeeper class is now a module, the former Zookeeper
    class is now Zookeeper::Client

  * Consolidate the 6 top-level namespaces into one, Zookeeper module

    ZookeeperCommon -> Zookeeper::Common
    ZookeeperCallbacks -> Zookeeper::Callbacks
    ZookeeperConstants -> Zookeeper::Constants
    ZookeeperExceptions -> Zookeeper::Exceptions
    ZookeeperACLs -> Zookeeper::ACLs
    CZookeeper -> Zookeeper::CZookeeper

  * Added a 'zookeeper/compatibility' file that will define the old names
    and look up the new constants for users, and print a warning telling them
    the change has occurred and that they should update their code

  * Added scripts/upgrade-1.0-sed-alike.rb which will basically do a
    find-and-replace, changing the old names to the new names (worked on
    both the Zookeeper and ZK codebases).

  * Java and C now use different names for the base class, to avoid the
    possibility of error. Java is now JavaBase, C remains ZookeeperBase.
    
  * All client methods are defined in the ClientMethods module and mixed
    into the constructed Client class.

  * Fix all requires, no longer monkey with $LOAD_PATH, use require_relative

  * Bugfix for C client.
  
    Because we release the GIL, there's the possibilty that in the middle of a
    synchronous C call, ruby will have switched thread contexts and one of
    those threads will call close. It seems that during normal operation, this
    is not a problem, but during shutdown, this causes CPU to spike to 100% and
    a deadlock. This fix essentially wraps every call to the C layer in a
    mutex. There may be a slightly less heavyweight optimization in the future,
    but this is the safest option at the moment.

v0.9.3 Event thread shutdown fix, Windows compatibility fix

  * Use a 'shutdown thread' to coordinate cleanup if close is called from the
    event thread (prevents deadlock)

  * Default Logger now uses $stderr instead of opening /dev/null [#16]

  * Gemfile/gemspec/Rakefile refactoring.

v0.9.2 More efficient and simpler wrappers for GIL release

  * After a code review by Andrew Wason (rectalogic), use a much simpler
    technique for creating the arg structs and passing them to the
    zkrb_gvl_* functions. No malloc(), no free(), no problem.

v0.9.1 see v0.8.4 notes, same patch

v0.9.0 RELEASE THE KRAK..er, GIL!!

  * In >= 1.9.2 the ruby interpreter allows you to release the GIL when
    calling into native code, sounds like a good idea.
    
    This release makes use of that code by parsing the zookeeper.h header file
    and extracting the method signatures of all relevant zoo_* functions, then
    generating boilerplate that allows us to call those functions via the
    rb_thread_blocking_region function.

    1.8.7 compatibility is maintained by stubbing out that functionality if built
    under 1.8.7.

  * 1.8.7 is deprecated! I will continue to support 1.8.7 for the near future
    but sometime soon, you're gonna have to upgrade.

v0.8.4 fix NameError, require 'forwardable'
  
  * Really not sure why this didn't come up in tests

  * issue here https://github.com/slyphon/zk/issues/22

v0.8.3 fix NonLocalJump exception in event delivery thread shutdown code

  * hit a corner case where we're waiting for the zkc handle setup
    and the user decides to shutdown, but before we've had a chance
    to enter the delivery loop.

  * Cleaned up some nasty code in ZookeeperConstants

  * removed ZookeeperConstants#print_events and ZookeeperConstants#print_states

  * changed EVENT_TYPE_NAMES and EVENT_STATE_NAMES in ZookeeperConstants
    to use string values instead of symbols

v0.8.2 fix close after a fork()

  * The dispatch thread will be dead in this situation, so we need to
    check to see if it's already dead before waiting on it to exit.

v0.8.1 Java client fix, silence warnings

v0.8.0 Refactor C implementaion, EventMachine client

  * separated CZookeeper and ZookeeperBase implementation
  
    This solves issues with reopen not working properly, makes for a much
    cleaner event delivery implementation. ZookeeperBase controls the lifecycle
    of the event dispatch thread now, rather than it being tied to CZookeeper.
  
  * added support for the 'sync' API call
  
  * Refactored zookeeper_c.c and zookeeper_lib.c
  
    More error checking in zookeeper_lib.c and restructure some things to make
    logic easier to follow
  
    Fix bug in method_get_next_event that made the shutdown case so complicated
  
  * Massively simplified EMClient implementation

    Rather than trying to hook the IO used by zookeeper_lib to notify zookeeper_c
    about event availabiltiy directly into EventMachine, use the same event delivery
    thread, but wrap the dispatch call in EM.schedule.

  * Improve implementation of spin-lock-esque code that waits for the connection to be
    established before returning.

    This cut the test runtime down from 1m 20s to 2s.

  * Java client refactoring, similar correctness changes

  * Change ZookeeperException base class to StandardError instead of Exception


v0.4.5 Upgrade to ZooKeeper 3.3.3

v0.4.4 Fix race condition on close, possible data corruption on async get.

v0.4.3 Fix a handful of memory-related bugs, fix SIGSEGV on master change, reduce latency of event handling, fix compilation on OSX.

v0.4.2 Add options to Zookeeper#initialize, silence most Zookeeper logs.

v0.4.1 Upgrade to ZooKeeper 3.3.2

v0.4.0. More attr-readers (StarvingMarvin) and 1.9 compatibility (tsuraan)

v0.3.2. Handle close, closed connections and expired sessions a little more gracefully.

v0.3.1. ACL bugfix.

v0.3.0. Wickman's rewrite, breaks dependencies from myelin/emaland port.

v0.2.2. Fix compatibility with stock Leopard fat-binary Ruby.

v0.2.1. No more camelcase classname.

v0.2. Bundle C dependencies, like memcached.gem.

v0.1. First release.

# vim:ft=text:ts=2:sw=2:et
Something went wrong with that request. Please try again.