Skip to content

0.3.0

Choose a tag to compare

@hartmut-co-uk hartmut-co-uk released this 26 Feb 18:27
· 327 commits to main since this release

Added

  • approximateNumEntries was added using SELECT COUNT(*) with WARN log & request timeout of 5s

Changed / Removed

  • keyValueStore now supports org.apache.kafka.streams.state.ReadOnlyKeyValueStore#prefixScan(Object, Serializer)
    • Implements a solution using range on BLOB type key using ((Bytes) from).increment(), identically to RocksDB + InMemory KV Stores
    • The solution now works for all CQL databases, replacing the ScyllaDB specific solution (see right below)
  • adapts, enhances example 'processor-api-all-range-prefix-count' (previously 'processor-api-prefixscan')
    • added additional description to example README
    • added/fixed JavaDoc for WordCountProcessor
    • now also runs approximateNumEntries

Removed

  • stringKeyValueStore was removed with all belonging code (PartitionedStringKeyScyllaKeyValueStoreRepository, ...)
    • This removes the special implementation of org.apache.kafka.streams.state.ReadOnlyKeyValueStore#prefixScan(Object, Serializer) for ScyllaDB backed stores with String keys.
      (The implementation was based on ScyllaDB LIKE operator query on TEXT type clustering key)
    • This is longer required since replaced with generic solution implemented for keyValueStore (see right above)

Security

  • successfully tested the library against 'CQL injection' via withTableOptions(..)
    => tried to add compaction = { 'class' : 'LeveledCompactionStrategy' };DROP TABLE xyz which fails due to wrong syntax in Cassandra 3.11/4.1 & ScyllaDB 5.1