hofmockel
43a6997362
Fix deadlock on shutdown by releasing the GIL during del
...
On delete rocksdb waits for the background thread to finish.
However the background threads needs the GIL to execute python-code
(for example comparator)
=>
* main thread has GIL
* main thread waits for background thread
* background thread tries to get GIL
which means deadlock
2014-01-24 17:03:14 +01:00
hofmockel
c8b92d5adb
Fore future use, prevent options beeing shared with other DB objects
...
For better logging I'm going to inject the rocksdb info_logger into the C++ Wrapper classes
=> The classes on the options object have a member to a DB specific logger
=> This c++ classes can only belong to a SINGLE db
=> For simplicity make this requirement also for the options object itself
2014-01-23 08:53:14 +01:00
hofmockel
a4c93f7144
__dealloc__ is also called if __cinit__ raises, be more robust in freeing
2014-01-23 08:34:26 +01:00
hofmockel
6ad545cea0
Fix possible crash if snapshot and DB take part in cyclic gargabe collection
...
The cyclic garbage collector may choose this snappshot object to break the
cycle. In that case tp_clear will remove the reference to self.db.
So if __dealloc__ of the snapshot is called, self.db is not valid anymore
2014-01-23 08:10:51 +01:00
hofmockel
bb31b34613
Depend on cython 0.20 to use the @cython.no_gc_clear decorator
2014-01-23 08:06:14 +01:00
hofmockel
a1cb7f9efc
Raise error if offset+size is too big
2014-01-21 17:34:01 +01:00
hofmockel
3afcb98657
Add doce for prefix_extractor
2014-01-21 17:28:38 +01:00
hofmockel
36eb7024d3
Make 'prefix_extractor' active
2014-01-21 17:26:30 +01:00
hofmockel
6f452968bc
PySliceTransfrom to bridge python and c++
2014-01-21 13:15:26 +01:00
hofmockel
40c87ae7ed
C callbacks to C++ for wrapping SliceTransfrom
2014-01-21 13:15:26 +01:00
hofmockel
c7d192128b
Call it.Prev() without the GIL
2014-01-19 13:45:02 +01:00
hofmockel
ccfa2b522e
Iterator notifies errors via 'it.status()'
2014-01-19 13:41:49 +01:00
hofmockel
0d20a2564a
Prevent crash if python code is executed in a rocksdb background thread
2014-01-19 12:35:36 +01:00
hofmockel
ecb6e26546
Release the GIL if calls into rocksdb are made
2014-01-18 12:24:49 +01:00
hofmockel
86e6aef6cb
Tag all the C++ functions with nogil and except+
2014-01-17 20:06:17 +01:00
hofmockel
828be96dba
Update docu about the bytes and unicode
2014-01-17 07:43:51 +01:00
hofmockel
79e8f5da8c
Use bytes for the internal representation of a WriteBatch
2014-01-17 07:39:33 +01:00
hofmockel
46298a8f93
Add a text about bytes and unicode in pyrocksdb
2014-01-16 22:02:46 +01:00
hofmockel
38f9c6b57f
Fix import to support python3
2014-01-16 21:33:37 +01:00
hofmockel
7d61b63b79
Separate strictly between bytes/unicode
...
which makes py3 support possible
2014-01-16 21:32:00 +01:00
hofmockel
6277f9ab5c
Support unicode objects for paths
...
Use sys.getfilesystemencoding() for encoding
2014-01-16 08:51:01 +01:00
hofmockel
b4fb12589d
Fix refcount error and use cythons <bytes> to convert a python object to char*
2014-01-15 09:53:27 +01:00
hofmockel
29551902e7
Update the 'rocksdb' build instruction
2014-01-15 09:17:41 +01:00
hofmockel
c0027bdd52
Add makefile for docs
...
Easier to use than always calling 'sphinx-build ...'
2014-01-15 09:16:38 +01:00
hofmockel
21c06f83ca
Add a .gitignore
2014-01-15 09:10:59 +01:00
hofmockel
f87ac5939f
Add links to docu and how pip install from github works
2014-01-13 20:03:44 +01:00
hofmockel
77c384b6b0
Initial commit of the driver
2014-01-13 19:52:22 +01:00
stephan-hof
e85239c6b9
Initial commit
2014-01-13 10:42:31 -08:00