[infinispan-issues] [JBoss JIRA] (ISPN-12011) Investigate CompactionFilter for purging expired entries in RocksDB
Dan Berindei (Jira)
issues at jboss.org
Wed Jun 17 02:36:00 EDT 2020
[ https://issues.redhat.com/browse/ISPN-12011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Berindei updated ISPN-12011:
--------------------------------
Description:
RocksDB allows the application to process/delete entries during compaction, and we could use this [CompactionFilter|https://github.com/facebook/rocksdb/blob/master/include/rocksdb/compaction_filter.h] 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:
# Write a native library implementing {{CompactionFilter}} for our current storage format
# Change the value format to match the Cassandra storage format and use the predefined {{CassandraCompactionFilter}}
# Revive the now-removed [LuaCompactionFilter|https://github.com/facebook/rocksdb/wiki/Lua-CompactionFilter] and write our filter implementation in Lua
# Contribute an adapter for Java CompactionFilter implementations to the RocksDB project, inspired by the existing AbstractComparator
was:
RocksDB allows the application to process/delete entries during compaction, and we could use this {{}}[CompactionFilter|https://github.com/facebook/rocksdb/blob/master/include/rocksdb/compaction_filter.h] 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:
# Write a native library implementing {{CompactionFilter}} for our current storage format
# Change the value format to match the Cassandra storage format and use the predefined {{CassandraCompactionFilter}}
# Revive the now-removed [LuaCompactionFilter|https://github.com/facebook/rocksdb/wiki/Lua-CompactionFilter] and write our filter implementation in Lua
# Contribute an adapter for Java CompactionFilter implementations to the RocksDB project, inspired by the existing AbstractComparator
> Investigate CompactionFilter for purging expired entries in RocksDB
> -------------------------------------------------------------------
>
> Key: ISPN-12011
> URL: https://issues.redhat.com/browse/ISPN-12011
> Project: Infinispan
> Issue Type: Sub-task
> Components: Loaders and Stores
> Reporter: Dan Berindei
> Priority: Major
> Fix For: 12.0.0.Final
>
>
> RocksDB allows the application to process/delete entries during compaction, and we could use this [CompactionFilter|https://github.com/facebook/rocksdb/blob/master/include/rocksdb/compaction_filter.h] 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:
> # Write a native library implementing {{CompactionFilter}} for our current storage format
> # Change the value format to match the Cassandra storage format and use the predefined {{CassandraCompactionFilter}}
> # Revive the now-removed [LuaCompactionFilter|https://github.com/facebook/rocksdb/wiki/Lua-CompactionFilter] and write our filter implementation in Lua
> # Contribute an adapter for Java CompactionFilter implementations to the RocksDB project, inspired by the existing AbstractComparator
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the infinispan-issues
mailing list