基于leveldb后端的磁盘密钥/值存储

Elevator的Python项目详细描述


http://dl.dropbox.com/u/2497327/baneer.png

用python编写的基于leveldb的键值存储允许高性能的磁盘批量读写。

允许异步、多线程和/或远程访问多级数据库后端。

它依赖于zeromq网络库和msgpack序列化格式,可以在语言和 平台。

有关详细信息,请参见Documentation

取决于

  • zmq-3.x
  • PYZMQ(用ZMQ-3.x制造)
  • 级别数据库
  • 请稍候

安装

简单的方法:

pip install elevator

黑客之路:

$ pip install fabric
$ fab build
$ pip install -r requirements.txt
$ python setup.py install

使用量

安装电梯后,可以使用电梯可执行文件启动服务器。 注意–daemon选项是一次性的,允许您作为守护程序运行电梯服务器, 将PID存储在.pid文件中的/tmp

有关电梯配置的示例,请参见config/elevator.conf

示例

$ elevator --help
usage: elevator -h

Elevator command line manager

optional arguments:
    -h, --help       show this help message and exit
    -d, --daemon      Launch elevator as a daemon
    -c, --config      Path to elevator server config file, eventually
    -t, --transport   Transfert protocol (tcp | ipc)
    -b, --bind        Ip to bind server to
    -p, --port        Port the server should listen on
    -w, --workers     How many workers should be spawned (Threads with concurrent access to all the db store)
    -P, --paranoid    If option is set, Elevator will shutdown and log on first unhandled exception

客户

pythonpy-elevator

gogo-elevator(早期,所以早期版本)

clojurecoming soon

ccoming soon

谢谢

感谢srinikom为其leveldb-server这是一个非常好的基础开始。

N.N.N/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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java AfterburnerFX加载错误文件xyz。未找到fxml,正在尝试使用驼峰案例   java如何灵活地使用通用对象?   JAVA JPA保存到TSV而不是SQL   java关闭当前窗口并弹出上一个窗口(windowListener)   java删除\删除绑定对象   java构造函数。newInstance()在JUnit和实际运行时中的行为不同   java将字符串中的字符翻转到字母顺序   如何让java等待事件?   使用Flyway的java MySQL JDBC驱动程序   java ImageAdapter从HashMap put方法返回NullPointerException   java Camel:找不到restlet bean   java Gradle下载源依赖项   POST方法Spring和Thymeleaf中的java编码问题   用于管理后台作业的java Spring兼容机制   java在连续发送25MB文件5到10次的同时,我通过javamail收到以下异常   java应用程序在试图更改重新加载的片段中的FloatingActionButton的状态时不断崩溃   运行小程序时出现java Magic value错误   java如何使用jdbc连接将excel工作表中的数据存储到mysql数据库   Eclipse,来自src的Java。文件夹?