Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-8197 Improve RocksDB performance
  3. ISPN-12011

Investigate CompactionFilter for purging expired entries in RocksDB

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Sub-task Sub-task
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • None
    • Loaders and Stores
    • None

      RocksDB allows the application to process/delete entries during compaction, and we could use this CompactionFilter callback to implement the purging of expired entries.

      It's not straightforward, through: CompactionFilter must be implemented in a native (C++) library. rocksdb-jni allows using a native implementation from Java, but it does not allow defining it in Java (like it does for comparators).

      Potential solutions:

      1. Write a native library implementing CompactionFilter for our current storage format
      2. Change the value format to match the Cassandra storage format and use the predefined CassandraCompactionFilter
      3. Revive the now-removed LuaCompactionFilter and write our filter implementation in Lua
      4. Contribute an adapter for Java CompactionFilter implementations to the RocksDB project, inspired by the existing AbstractComparator

              Unassigned Unassigned
              dberinde@redhat.com Dan Berindei (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: