Releases: marykdb/rocksdb-multiplatform
10.4.5
10.4.4
Based on RocksDB 10.4.2
Added support for watchOS, tvOS, Android Native.
Added quite a lot of multiplatform implementations for the RocksDB functionalities below.
Table format and filtering
- Block-based table configuration – wrappers expose cache, checksum, index, and hash table tuning knobs for block-based table factories, mirroring the native
BlockBasedTableConfig
API. - Plain table configuration – adds
PlainTableConfig
controls for key sizing, bloom filters, hash-table ratio, encoding, and storage options for prefix-only tables. - Bloom filters –
BloomFilter
wrappers (expect/actual) let multiplatform callers attach bloom filters to table configs with optional block-based builders. - Programmable table filtering –
AbstractTableFilter
andTableProperties
expose table-property metadata so Kotlin callbacks can decide whether to include SST files during compaction or scans.
Options management and tuning
- Mutable column-family options – builder APIs cover write buffers, compaction triggers, and compression selection, plus parsers for RocksDB option strings.
- Mutable database options – similar builders provide runtime tweaks for background jobs, flush behavior, WAL sizing, sync cadence, and off-peak scheduling, including string parsing support.
- Configurable option loading –
ConfigOptions
,DBOptionsInterface
, andOptionsUtil
let clients load the latest on-disk options (or specific files) into live option instances with environment selection and sanity checking. - Compression & compaction knobs – new wrappers cover general, FIFO, and universal compaction options as well as compression window/level/dictionary tuning.
- Table import/ingest options –
ImportColumnFamilyOptions
andIngestExternalFileOptions
expose file-move, snapshot-consistency, global-seqno, blocking flush, and ingest-behind switches for SST import workflows.
File management, ingestion, and metadata
- External SST metadata –
ExternalFileIngestionInfo
,LiveFileMetaData
, and enrichedTableProperties
surface file names, column family identifiers, sequence numbers, and compression collectors for ingested or live SSTs. - SST tooling – multiplatform stubs for
SstFileWriter
(fully implemented) andSstFileReader
(ready once native API lands) allow generating or verifying external tables before ingestion. - SST file lifecycle –
SstFileManager
throttles deletion and tracks usage, whileWriteBufferManager
coordinates shared memtable budgets across column families. - Transaction log streaming –
TransactionLogIterator
andTransactionLogBatchResult
provide batch-by-batch WAL access for change capture or recovery tooling.
Background operations and observability
- Extended event listeners –
EventListener
now surfaces callbacks for flush/compaction lifecycle, external file ingestion, background errors, write stalls, and memtable sealing with associated metadata wrappers (FlushJobInfo
,CompactionJobInfo
,ExternalFileIngestionInfo
,WriteStallInfo
,MemTableInfo
). - Background error classification – enumerations capture background error sources, flush reasons, write stall states, and WAL recovery modes for richer diagnostics.
- Performance metrics –
PerfContext
andPerfLevel
expose hundreds of per-operation counters and control their collection scope, whileStatisticsCollector
adds periodic ticker/histogram polling with user callbacks. - Compaction insight –
CompactionJobStats
supplementsCompactionJobInfo
with aggregated record and byte counts for each job.
Caching, environments, and TTL
- Persistent caching & rate limiting – wrappers for
PersistentCache
andRateLimiter
add APIs for tiered caching and background IO throttling, respectively. - Shared environments –
MemEnv
enables purely in-memory environments, whileEnvOptions
andLogger
expose environment-level tuning and logging hooks used by the new utilities. - TTL-aware databases –
TtlDB
open helpers cover single- and multi-column-family scenarios, including per-family TTL arrays and read-only support.
Additional utilities
- Write-ahead log recovery controls –
WALRecoveryMode
options andTransactionLogIterator
integration allow callers to tailor crash recovery semantics and inspect WAL batches. - Write stall diagnostics –
WriteStallInfo
andWriteStallCondition
expose stall transitions alongside the column family involved for better backpressure monitoring.
Full Changelog: 10.4.2...10.4.4
10.4.2
Update to RocksDB 10.4.2
Full Changelog: 9.10.2...10.4.2
9.10.2
Add support for Windows/MingwX64
Full Changelog: 9.10.1...9.10.2
9.10.1
Add support for all relevant compression types to Android platform: LZ4, Zstd, Snappy, BZip2 and Zlib.
Note: Since Snappy is now bundled on Android, it is now the default set compression like on RocksDB itself like the other platforms. Switch to NO_COMPRESSION if you want to keep the same behavior as before on Android
Full Changelog: 9.10.0...9.10.1
9.10.0
Update to RocksDB 9.10.0
Add support for Transactions through TransactionDB and OptimisticTransactionDB
Full Changelog: 9.6.2...9.10.0
9.6.2
Fixed issues with native.
Added Linux targets.
Full Changelog: 9.6.1...9.6.2
9.6.1
Updated to RocksDB 9.6.1. Rewrote native layer to use c API. This enables us to release linux and windows builds in the future.
Also updated to Kotlin 2.1.0.
Full Changelog: 8.0.0...9.6.1
8.0.0
Update to RocksDB 8.0.0
Full Changelog: 7.3.1...8.0.0