Skip to content

Commit d1fc90c

Browse files
committed
Add all new options to python api with tests
1 parent f442ff0 commit d1fc90c

File tree

2 files changed

+367
-39
lines changed

2 files changed

+367
-39
lines changed

rocksdb/_rocksdb.pyx

Lines changed: 261 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,6 @@ cdef class ColumnFamilyOptions(object):
969969
copts.parallel_threads = value['parallel_threads']
970970
if 'enabled' in value:
971971
copts.enabled = value['enabled']
972-
973972

974973
property compaction_pri:
975974
def __get__(self):
@@ -1368,6 +1367,18 @@ cdef class Options(ColumnFamilyOptions):
13681367
def __set__(self, value):
13691368
self.opts.max_open_files = value
13701369

1370+
property max_file_opening_threads:
1371+
def __get__(self):
1372+
return self.opts.max_file_opening_threads
1373+
def __set__(self, value):
1374+
self.opts.max_file_opening_threads = value
1375+
1376+
property max_total_wal_size:
1377+
def __get__(self):
1378+
return self.opts.max_total_wal_size
1379+
def __set__(self, value):
1380+
self.opts.max_total_wal_size = value
1381+
13711382
property use_fsync:
13721383
def __get__(self):
13731384
return self.opts.use_fsync
@@ -1392,17 +1403,29 @@ cdef class Options(ColumnFamilyOptions):
13921403
def __set__(self, value):
13931404
self.opts.delete_obsolete_files_period_micros = value
13941405

1406+
property max_background_jobs:
1407+
def __get__(self):
1408+
return self.opts.max_background_jobs
1409+
def __set__(self, value):
1410+
self.opts.max_background_jobs = value
1411+
1412+
property base_background_compactions:
1413+
def __get__(self):
1414+
return self.opts.base_background_compactions
1415+
def __set__(self, value):
1416+
self.opts.base_background_compactions = value
1417+
13951418
property max_background_compactions:
13961419
def __get__(self):
13971420
return self.opts.max_background_compactions
13981421
def __set__(self, value):
13991422
self.opts.max_background_compactions = value
14001423

1401-
property max_background_jobs:
1424+
property max_subcompactions:
14021425
def __get__(self):
1403-
return self.opts.max_background_jobs
1426+
return self.opts.max_subcompactions
14041427
def __set__(self, value):
1405-
self.opts.max_background_jobs = value
1428+
self.opts.max_subcompactions = value
14061429

14071430
property max_background_flushes:
14081431
def __get__(self):
@@ -1428,6 +1451,12 @@ cdef class Options(ColumnFamilyOptions):
14281451
def __set__(self, value):
14291452
self.opts.keep_log_file_num = value
14301453

1454+
property recycle_log_file_num:
1455+
def __get__(self):
1456+
return self.opts.recycle_log_file_num
1457+
def __set__(self, value):
1458+
self.opts.recycle_log_file_num = value
1459+
14311460
property max_manifest_file_size:
14321461
def __get__(self):
14331462
return self.opts.max_manifest_file_size
@@ -1458,18 +1487,6 @@ cdef class Options(ColumnFamilyOptions):
14581487
def __set__(self, value):
14591488
self.opts.manifest_preallocation_size = value
14601489

1461-
property enable_write_thread_adaptive_yield:
1462-
def __get__(self):
1463-
return self.opts.enable_write_thread_adaptive_yield
1464-
def __set__(self, value):
1465-
self.opts.enable_write_thread_adaptive_yield = value
1466-
1467-
property allow_concurrent_memtable_write:
1468-
def __get__(self):
1469-
return self.opts.allow_concurrent_memtable_write
1470-
def __set__(self, value):
1471-
self.opts.allow_concurrent_memtable_write = value
1472-
14731490
property allow_mmap_reads:
14741491
def __get__(self):
14751492
return self.opts.allow_mmap_reads
@@ -1482,6 +1499,24 @@ cdef class Options(ColumnFamilyOptions):
14821499
def __set__(self, value):
14831500
self.opts.allow_mmap_writes = value
14841501

1502+
property use_direct_reads:
1503+
def __get__(self):
1504+
return self.opts.use_direct_reads
1505+
def __set__(self, value):
1506+
self.opts.use_direct_reads = value
1507+
1508+
property use_direct_io_for_flush_and_compaction:
1509+
def __get__(self):
1510+
return self.opts.use_direct_io_for_flush_and_compaction
1511+
def __set__(self, value):
1512+
self.opts.use_direct_io_for_flush_and_compaction = value
1513+
1514+
property allow_fallocate:
1515+
def __get__(self):
1516+
return self.opts.allow_fallocate
1517+
def __set__(self, value):
1518+
self.opts.allow_fallocate = value
1519+
14851520
property is_fd_close_on_exec:
14861521
def __get__(self):
14871522
return self.opts.is_fd_close_on_exec
@@ -1500,19 +1535,67 @@ cdef class Options(ColumnFamilyOptions):
15001535
def __set__(self, value):
15011536
self.opts.stats_dump_period_sec = value
15021537

1538+
property stats_persist_period_sec:
1539+
def __get__(self):
1540+
return self.opts.stats_persist_period_sec
1541+
def __set__(self, value):
1542+
self.opts.stats_persist_period_sec = value
1543+
1544+
property persist_stats_to_disk:
1545+
def __get__(self):
1546+
return self.opts.persist_stats_to_disk
1547+
def __set__(self, value):
1548+
self.opts.persist_stats_to_disk = value
1549+
1550+
property stats_history_buffer_size:
1551+
def __get__(self):
1552+
return self.opts.stats_history_buffer_size
1553+
def __set__(self, value):
1554+
self.opts.stats_history_buffer_size = value
1555+
15031556
property advise_random_on_open:
15041557
def __get__(self):
15051558
return self.opts.advise_random_on_open
15061559
def __set__(self, value):
15071560
self.opts.advise_random_on_open = value
15081561

1562+
property db_write_buffer_size:
1563+
def __get__(self):
1564+
return self.opts.db_write_buffer_size
1565+
def __set__(self, value):
1566+
self.opts.db_write_buffer_size = value
1567+
15091568
# TODO: need to remove -Wconversion to make this work
15101569
# property access_hint_on_compaction_start:
15111570
# def __get__(self):
15121571
# return self.opts.access_hint_on_compaction_start
15131572
# def __set__(self, AccessHint value):
15141573
# self.opts.access_hint_on_compaction_start = value
15151574

1575+
property new_table_reader_for_compaction_inputs:
1576+
def __get__(self):
1577+
return self.opts.new_table_reader_for_compaction_inputs
1578+
def __set__(self, value):
1579+
self.opts.new_table_reader_for_compaction_inputs = value
1580+
1581+
property compaction_readahead_size:
1582+
def __get__(self):
1583+
return self.opts.compaction_readahead_size
1584+
def __set__(self, value):
1585+
self.opts.compaction_readahead_size = value
1586+
1587+
property random_access_max_buffer_size:
1588+
def __get__(self):
1589+
return self.opts.random_access_max_buffer_size
1590+
def __set__(self, value):
1591+
self.opts.random_access_max_buffer_size = value
1592+
1593+
property writable_file_max_buffer_size:
1594+
def __get__(self):
1595+
return self.opts.writable_file_max_buffer_size
1596+
def __set__(self, value):
1597+
self.opts.writable_file_max_buffer_size = value
1598+
15161599
property use_adaptive_mutex:
15171600
def __get__(self):
15181601
return self.opts.use_adaptive_mutex
@@ -1525,6 +1608,90 @@ cdef class Options(ColumnFamilyOptions):
15251608
def __set__(self, value):
15261609
self.opts.bytes_per_sync = value
15271610

1611+
property wal_bytes_per_sync:
1612+
def __get__(self):
1613+
return self.opts.wal_bytes_per_sync
1614+
def __set__(self, value):
1615+
self.opts.wal_bytes_per_sync = value
1616+
1617+
property strict_bytes_per_sync:
1618+
def __get__(self):
1619+
return self.opts.strict_bytes_per_sync
1620+
def __set__(self, value):
1621+
self.opts.strict_bytes_per_sync = value
1622+
1623+
property enable_thread_tracking:
1624+
def __get__(self):
1625+
return self.opts.enable_thread_tracking
1626+
def __set__(self, value):
1627+
self.opts.enable_thread_tracking = value
1628+
1629+
property delayed_write_rate:
1630+
def __get__(self):
1631+
return self.opts.delayed_write_rate
1632+
def __set__(self, value):
1633+
self.opts.delayed_write_rate = value
1634+
1635+
property enable_pipelined_write:
1636+
def __get__(self):
1637+
return self.opts.enable_pipelined_write
1638+
def __set__(self, value):
1639+
self.opts.enable_pipelined_write = value
1640+
1641+
property unordered_write:
1642+
def __get__(self):
1643+
return self.opts.unordered_write
1644+
def __set__(self, value):
1645+
self.opts.unordered_write = value
1646+
1647+
property allow_concurrent_memtable_write:
1648+
def __get__(self):
1649+
return self.opts.allow_concurrent_memtable_write
1650+
def __set__(self, value):
1651+
self.opts.allow_concurrent_memtable_write = value
1652+
1653+
property enable_write_thread_adaptive_yield:
1654+
def __get__(self):
1655+
return self.opts.enable_write_thread_adaptive_yield
1656+
def __set__(self, value):
1657+
self.opts.enable_write_thread_adaptive_yield = value
1658+
1659+
property max_write_batch_group_size_bytes:
1660+
def __get__(self):
1661+
return self.opts.max_write_batch_group_size_bytes
1662+
def __set__(self, value):
1663+
self.opts.max_write_batch_group_size_bytes = value
1664+
1665+
property write_thread_max_yield_usec:
1666+
def __get__(self):
1667+
return self.opts.write_thread_max_yield_usec
1668+
def __set__(self, value):
1669+
self.opts.write_thread_max_yield_usec = value
1670+
1671+
property write_thread_slow_yield_usec:
1672+
def __get__(self):
1673+
return self.opts.write_thread_slow_yield_usec
1674+
def __set__(self, value):
1675+
self.opts.write_thread_slow_yield_usec = value
1676+
1677+
property skip_stats_update_on_db_open:
1678+
def __get__(self):
1679+
return self.opts.skip_stats_update_on_db_open
1680+
def __set__(self, value):
1681+
self.opts.skip_stats_update_on_db_open = value
1682+
1683+
property skip_checking_sst_file_sizes_on_db_open:
1684+
def __get__(self):
1685+
return self.opts.skip_checking_sst_file_sizes_on_db_open
1686+
def __set__(self, value):
1687+
self.opts.skip_checking_sst_file_sizes_on_db_open = value
1688+
1689+
property allow_2pc:
1690+
def __get__(self):
1691+
return self.opts.allow_2pc
1692+
def __set__(self, value):
1693+
self.opts.allow_2pc = value
1694+
15281695
property row_cache:
15291696
def __get__(self):
15301697
return self.py_row_cache
@@ -1539,6 +1706,84 @@ cdef class Options(ColumnFamilyOptions):
15391706
self.py_row_cache = value
15401707
self.opts.row_cache = self.py_row_cache.get_cache()
15411708

1709+
property fail_if_options_file_error:
1710+
def __get__(self):
1711+
return self.opts.fail_if_options_file_error
1712+
def __set__(self, value):
1713+
self.opts.fail_if_options_file_error = value
1714+
1715+
property dump_malloc_stats:
1716+
def __get__(self):
1717+
return self.opts.dump_malloc_stats
1718+
def __set__(self, value):
1719+
self.opts.dump_malloc_stats = value
1720+
1721+
property avoid_flush_during_recovery:
1722+
def __get__(self):
1723+
return self.opts.avoid_flush_during_recovery
1724+
def __set__(self, value):
1725+
self.opts.avoid_flush_during_recovery = value
1726+
1727+
property avoid_flush_during_shutdown:
1728+
def __get__(self):
1729+
return self.opts.avoid_flush_during_shutdown
1730+
def __set__(self, value):
1731+
self.opts.avoid_flush_during_shutdown = value
1732+
1733+
property allow_ingest_behind:
1734+
def __get__(self):
1735+
return self.opts.allow_ingest_behind
1736+
def __set__(self, value):
1737+
self.opts.allow_ingest_behind = value
1738+
1739+
property preserve_deletes:
1740+
def __get__(self):
1741+
return self.opts.preserve_deletes
1742+
def __set__(self, value):
1743+
self.opts.preserve_deletes = value
1744+
1745+
property two_write_queues:
1746+
def __get__(self):
1747+
return self.opts.two_write_queues
1748+
def __set__(self, value):
1749+
self.opts.two_write_queues = value
1750+
1751+
property manual_wal_flush:
1752+
def __get__(self):
1753+
return self.opts.manual_wal_flush
1754+
def __set__(self, value):
1755+
self.opts.manual_wal_flush = value
1756+
1757+
property atomic_flush:
1758+
def __get__(self):
1759+
return self.opts.atomic_flush
1760+
def __set__(self, value):
1761+
self.opts.atomic_flush = value
1762+
1763+
property avoid_unnecessary_blocking_io:
1764+
def __get__(self):
1765+
return self.opts.avoid_unnecessary_blocking_io
1766+
def __set__(self, value):
1767+
self.opts.avoid_unnecessary_blocking_io = value
1768+
1769+
property write_dbid_to_manifest:
1770+
def __get__(self):
1771+
return self.opts.write_dbid_to_manifest
1772+
def __set__(self, value):
1773+
self.opts.write_dbid_to_manifest = value
1774+
1775+
property log_readahead_size:
1776+
def __get__(self):
1777+
return self.opts.log_readahead_size
1778+
def __set__(self, value):
1779+
self.opts.log_readahead_size = value
1780+
1781+
property best_efforts_recovery:
1782+
def __get__(self):
1783+
return self.opts.best_efforts_recovery
1784+
def __set__(self, value):
1785+
self.opts.best_efforts_recovery = value
1786+
15421787

15431788
# Forward declaration
15441789
cdef class Snapshot

0 commit comments

Comments
 (0)