Metadata-Version: 1.1
Name: Elevator
Version: 0.5d
Summary: On disk key/value store based on levelDB backend
Home-page: http://github.com/oleiade/Elevator
Author: Oleiade
Author-email: tcrevon@gmail.com
License: MIT
Description: ========
        Elevator
        ========
        
        .. image:: http://dl.dropbox.com/u/2497327/baneer.png
            :target: http://elevator.readthedocs.org
        
        Key-Value store written in Python and based on levelDB, allows high performance on-disk bulk read/write.
        
        Allows async, multithreaded and/or remote access to a multi-leveldb backend.
        
        Relying on the zeromq network library and msgpack serialization format, it is made to be portable between languages and
        platforms.
        
        See `Documentation <http://elevator.readthedocs.org>`_ for more details
        
        
        Elevator is an open source software under the MIT license. Any hackers are welcome to supply ideas, features requests, patches, Pull requests and so on.  `Documentation's development page <http://elevator.readthedocs.org>`_ contains comprehensive info on contributing, repository layout, our release strategy, and more.
        
        .. image:: http://api.flattr.com/button/flattr-badge-large.png
            :target: https://flattr.com/submit/auto?user_id=oleiade&url=http://github.com/oleiade/Elevator&title=Elevator&language=&tags=github&category=software
        
        
        Dependencies
        ============
        
        - zmq-3.X
        - leveldb
        - pyzmq (built with zmq-3.X)
        - plyvel
        
        
        Debian repository
        -----------------
        
        The ``deb.oleiade.com`` debian repository exposes ``libzmq3``, ``libzmq3-dev``, ``libleveldb1`` and ``libleveldb1-dev`` packages in order to ease your dependencies management. Just add the following line to your ``/etc/apt/sources.list``:
        
        .. code-block:: bash
        
            deb http://deb.oleiade.com/debian oneiric main
        
        
        Puppet
        ------
        
        In order to ease your Elevator deployment, a `puppet module <http://github.com/oleiade/puppet-elevator>`_ has been developed. Note that it will automatically add the debian repository to your nodes.
        
        
        Installation
        ============
        
        Just::
        
            pip install Elevator
        
        
        Usage
        =====
        
        When elevator is installed, you can then launch the server using the elevator executable.
        Note that a --daemon option is disposable, and allows you to run elevator server as a daemon,
        storing it's pid in ``.pid`` file in ``/tmp``.
        
        See ``config/elevator.conf`` for an example of Elevator configuration.
        
        *Example*:
        
        .. code-block:: bash
        
            $ elevator --help
        
            usage: elevator [-hdctbpwv]
        
            Elevator command line manager
        
            optional arguments:
              -h, --help            Show this help message and exit
              -d, --daemon          Launch elevator as a daemon
              -c, --config          Elevator config file path
              -t, --transport       Transport layer: tcp or ipc
              -b, --bind            Address the server will be binded to
              -p, --port            Port the server should listen on
              -w, --workers         Workers to be spawned count
              -v, --log-level       Log level, see python logging documentation
                                    for more information :
                                    http://docs.python.org/library/logging.html#logger-objects
        
        
        Clients
        =======
        
        *Python*: `py-elevator <http://github.com/oleiade/py-elevator>`_
        
        *Go*: `go-elevator <http://github.com/oleiade/go-elevator>`_ (Early early, so early version)
        
        *Clojure* : *Coming soon*
        
        *C* : *Coming soon*
        
        
        Thanks
        ======
        
        Thanks to `srinikom <https://github.com/srinikom>`_ for its `leveldb-server <https://github.com/srinikom/leveldb-server>`_ which was a very good base to start from.
        
        
        
        0.5c / 2013-03-18
        ==================
        
          * Fix : DatabaseStore last acess property
          * Fix: init script creates pid file
          * Fix: pyzmq version
          * Fix: explicit daemon init failures
        
        0.5 / 2013-02-01
        ==================
        
          * Remove: legacy setup_loggers function
          * fix #123: exposing a database object
          * ref #123: Renamed DatabasesHandler to DatabaseStore
          * Fix: elevator benchmarks
          * Fix: supervisor test should remove their tests files
          * Add: tests for backend atm
          * Add: backend supervisor tests + fixes
          * update: enhance backend majordome management
          * fix #125: backend does not instantiate it's own DatabasesHandler anymore
          * Fix: elevator tests fakers now uses a clear files/dirs pattern
          * Update: more obvious DatabaseHandler args names
          * Add: benchmarks using hurdles and pyelevator
          * update #120 : Auto re-mount unmounted database on new requests
          * Fix : backend properly tears down workers
          * fix #120, fix #91: Implement Majordom watcher thread
          * Update #120: set databases last access marker
          * Update 120: move ocd worker to backend module
          * Update #121: implement last activity action on workers
          * Update #121: Documented worker
          * Update #121: Workers poll to reduce cpu usage + backend refactoring
          * Update #121: use an internal message protocol between supervisor and workers
          * Update: Moved the backend elements in their own module
          * Fix #122: workers now set their processing state
          * Refactor: moved loggers init in their own log module
          * Update #121: fixed workers stop action
          * Update #121: Added constants to normalize interaction with workers
          * Add #121: basic workers supervisor implementation, implies a lot of refactoring
          * Update: rename server poller
          * Update: use ROUTER/DEALER terminology and rename workerpool and proxy to backend and frontend
          * Update: renamed conf module to args
        
        0.4b / 2013-01-28
        ==================
        
          * Fix: Refactor api tests
          * Fix #119: Range and Slice now support include_key, and include_value params
          * Remove: max cache management + Add: Lru cache and bloom filters
        
        0.4a / 2013-01-22
        ==================
        
          * Add : Implement PING command
          * Add : Cli module
          * Add : Debian packaging files
          * Update: Use plyvel leveldb backend
          * Update: Use plyvel bloom filter in read operations
          * Update: Add experimental command line doc
          * Update: Set fabfile as a module
          * Update: Documentation to fit with plyvel
          * Update #114: Run MGet against db snapshot
          * Update : working cmdline
          * Fix #114: Enhance MGET perfs by acting on a min/max keys range slice
          * Fix #113: handle MGET arguments in command line
          * Many other little updates and fixes, see logs
        
        
        0.4 / 2012-10-22
        ==================
        
          * Add: restore theme
          * Add : Base sphinx documentation
          * Update : new License MIT
          * Fix #86: IOError when bad config file supplied as cmdline argument
          * Fix #95: Elevator will start and log errors even though some databases are corrupted
          * Fix : log-level debug messages format
          * Fix : travis, tests, requirements
        
        0.3d / 2012-10-19
        ==================
        
          * Add : Request error for invalid request messages
          * Update #91: Mount default at server startup
          * Update #91: Mount/Unmount command + auto-mount on connect
          * Update #91: add a ticker class, which executes a function every x seconds
          * Update #30, Update #99: Compress Responses on demande (request.meta['compression'])
          * Update #88, Update #99: now responses comes in two parts header+content
          * Update #88: Fix MGet, Range, Slice return values types to suite with new responses format
          * Update #88: Refactored Request/Responses format
          * Update : Refactored DatabasesHandler internal storage
          * Update : Few refactoring on loggers handling
          * Update : Refactored DBConnect no more db_uid to provide in request
          * Fix #97: provide mono-letters args
          * Fix #89: Log requests/responses on log-level=DEBUG
          * Fix #87: Refactored logging
          * Fix #100: Non blocking workers, graceful shutdown == PERFORMANCES
          * Fix #98: Activity logging on both file and stdout
          * Fix #101: fixed ipc handling
          * Fix : api tests for compatibility with new Req/Resp
          * Fix : refactored tests for new Range/Slice behavior when size == 1
          * Fix : Mount/Unmount passed args
        
        
Keywords: elevator leveldb database key-value
Platform: UNKNOWN
Classifier: Topic :: Database :: Database Engines/Servers
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 2.7
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
