Update _rocksdb.pyx
This commit is contained in:
parent
d94c3a57c0
commit
b721c18a6a
1 changed files with 38 additions and 5 deletions
|
@ -580,7 +580,8 @@ cdef class BlockBasedTableFactory(PyTableFactory):
|
||||||
block_size=None,
|
block_size=None,
|
||||||
block_size_deviation=None,
|
block_size_deviation=None,
|
||||||
block_restart_interval=None,
|
block_restart_interval=None,
|
||||||
whole_key_filtering=None):
|
whole_key_filtering=None,
|
||||||
|
enable_index_compression=True):
|
||||||
|
|
||||||
cdef table_factory.BlockBasedTableOptions table_options
|
cdef table_factory.BlockBasedTableOptions table_options
|
||||||
|
|
||||||
|
@ -596,6 +597,11 @@ cdef class BlockBasedTableFactory(PyTableFactory):
|
||||||
else:
|
else:
|
||||||
table_options.hash_index_allow_collision = False
|
table_options.hash_index_allow_collision = False
|
||||||
|
|
||||||
|
if enable_index_compression:
|
||||||
|
table_options.enable_index_compression = True
|
||||||
|
else:
|
||||||
|
table_options.enable_index_compression = False
|
||||||
|
|
||||||
if checksum == 'crc32':
|
if checksum == 'crc32':
|
||||||
table_options.checksum = table_factory.kCRC32c
|
table_options.checksum = table_factory.kCRC32c
|
||||||
elif checksum == 'xxhash':
|
elif checksum == 'xxhash':
|
||||||
|
@ -1267,6 +1273,12 @@ cdef class Options(ColumnFamilyOptions):
|
||||||
def __set__(self, value):
|
def __set__(self, value):
|
||||||
self.opts.create_if_missing = value
|
self.opts.create_if_missing = value
|
||||||
|
|
||||||
|
property create_missing_column_families:
|
||||||
|
def __get__(self):
|
||||||
|
return self.opts.create_missing_column_families
|
||||||
|
def __set__(self, value):
|
||||||
|
self.opts.create_missing_column_families = value
|
||||||
|
|
||||||
property error_if_exists:
|
property error_if_exists:
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return self.opts.error_if_exists
|
return self.opts.error_if_exists
|
||||||
|
@ -1315,6 +1327,18 @@ cdef class Options(ColumnFamilyOptions):
|
||||||
def __set__(self, value):
|
def __set__(self, value):
|
||||||
self.opts.max_background_compactions = value
|
self.opts.max_background_compactions = value
|
||||||
|
|
||||||
|
property stats_history_buffer_size:
|
||||||
|
def __get__(self):
|
||||||
|
return self.opts.stats_history_buffer_size
|
||||||
|
def __set__(self, value):
|
||||||
|
self.opts.stats_history_buffer_size = value
|
||||||
|
|
||||||
|
property max_background_jobs:
|
||||||
|
def __get__(self):
|
||||||
|
return self.opts.max_background_jobs
|
||||||
|
def __set__(self, value):
|
||||||
|
self.opts.max_background_jobs = value
|
||||||
|
|
||||||
property max_background_flushes:
|
property max_background_flushes:
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return self.opts.max_background_flushes
|
return self.opts.max_background_flushes
|
||||||
|
@ -1674,23 +1698,32 @@ cdef class DB(object):
|
||||||
self.opts.in_use = True
|
self.opts.in_use = True
|
||||||
|
|
||||||
def __dealloc__(self):
|
def __dealloc__(self):
|
||||||
|
self.close()
|
||||||
|
|
||||||
|
def close(self, safe=True):
|
||||||
cdef ColumnFamilyOptions copts
|
cdef ColumnFamilyOptions copts
|
||||||
|
# -- iFA88 --
|
||||||
|
cdef cpp_bool c_safe = safe
|
||||||
if self.db != NULL:
|
if self.db != NULL:
|
||||||
|
# -- iFA88 -- <<
|
||||||
|
# We need stop backround compactions
|
||||||
|
with nogil:
|
||||||
|
db.CancelAllBackgroundWork(self.db, c_safe)
|
||||||
|
# -- iFA88 -- >>
|
||||||
# We have to make sure we delete the handles so rocksdb doesn't
|
# We have to make sure we delete the handles so rocksdb doesn't
|
||||||
# assert when we delete the db
|
# assert when we delete the db
|
||||||
self.cf_handles.clear()
|
del self.cf_handles[:]
|
||||||
for copts in self.cf_options:
|
for copts in self.cf_options:
|
||||||
if copts:
|
if copts:
|
||||||
copts.in_use = False
|
copts.in_use = False
|
||||||
self.cf_options.clear()
|
del self.cf_options[:]
|
||||||
|
|
||||||
with nogil:
|
with nogil:
|
||||||
del self.db
|
del self.db
|
||||||
|
|
||||||
if self.opts is not None:
|
if self.opts is not None:
|
||||||
self.opts.in_use = False
|
self.opts.in_use = False
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def column_families(self):
|
def column_families(self):
|
||||||
return [handle.weakref for handle in self.cf_handles]
|
return [handle.weakref for handle in self.cf_handles]
|
||||||
|
|
Loading…
Reference in a new issue