-
Notifications
You must be signed in to change notification settings - Fork 6.3k
RocksJava API TODO
This page sets out the known TODO items for the RocksJava API, it also shows who is thinking/working on a particular topic; Through this mechanism hopefully we can avoid duplicating effort.
-
Fix locking issues with
Slice
/DirectSlice
fromComparator
. Move to thread-local storage of cached slice objects rather than singleSlice
locking with mutex. @adamretter -
Perhaps decide weather to use only
Slice
orDirectSlice
to simplify overall API implementation, probablyDirectSlice
is more memory efficient. -
Use the Slice class in other Java classes where
byte[]
was previously used, so that we better align with C++ API, e.g.RocksIterator
. -
Rework
WBWIIterator
to use bothSlice
andDirectSlice
(see above). -
Implement ARM (Automatic Resource Management) e.g.
try-with-resources
Java 7 use viaCloseable
/AutoCloseable
for iterators, db, write batches etc. -
Introduce
final
on variables/members everywhere they are immutable. @adamretter -
Implement
ldb
for Java. For example, the ability to specify the Comparator which implemented in Java. @adamretter -
Custom merge operator for Java. At the moment it is only possible to use merge operators which are available in C++ but not implementing custom functionality solely in Java. @fyrz
-
Expose an AbstractLogger. RocksDB C++ api allows to provide a custom Logger. This shall also be possible from Java side and allows to attach RocksDB logging to application logging facilities. @fyrz
-
Port remaining functionality in
db.h
to RocksJava. @fyrz -
Update Statistics/HistogramData to 3.10 @fyrz
Contents
- RocksDB Wiki
- Overview
- RocksDB FAQ
- Terminology
- Requirements
- Contributors' Guide
- Release Methodology
- RocksDB Users and Use Cases
- RocksDB Public Communication and Information Channels
-
Basic Operations
- Iterator
- Prefix seek
- SeekForPrev
- Tailing Iterator
- Compaction Filter
- Multi Column Family Iterator (Experimental)
- Read-Modify-Write (Merge) Operator
- Column Families
- Creating and Ingesting SST files
- Single Delete
- Low Priority Write
- Time to Live (TTL) Support
- Transactions
- Snapshot
- DeleteRange
- Atomic flush
- Read-only and Secondary instances
- Approximate Size
- User-defined Timestamp
- Wide Columns
- BlobDB
- Online Verification
- Options
- MemTable
- Journal
- Cache
- Write Buffer Manager
- Compaction
- SST File Formats
- IO
- Compression
- Full File Checksum and Checksum Handoff
- Background Error Handling
- Huge Page TLB Support
- Tiered Storage (Experimental)
- Logging and Monitoring
- Known Issues
- Troubleshooting Guide
- Tests
- Tools / Utilities
-
Implementation Details
- Delete Stale Files
- Partitioned Index/Filters
- WritePrepared-Transactions
- WriteUnprepared-Transactions
- How we keep track of live SST files
- How we index SST
- Merge Operator Implementation
- RocksDB Repairer
- Write Batch With Index
- Two Phase Commit
- Iterator's Implementation
- Simulation Cache
- [To Be Deprecated] Persistent Read Cache
- DeleteRange Implementation
- unordered_write
- Extending RocksDB
- RocksJava
- Lua
- Performance
- Projects Being Developed
- Misc