[ 
https://issues.apache.org/jira/browse/KAFKA-4212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16880077#comment-16880077
 ] 

Chris Toomey commented on KAFKA-4212:
-------------------------------------

[~mjsax] there are at least 3 different teams (I'm working with James) that 
need this simple TTL feature for when KTables are being used as topic caches 
and for which the provided solution is fine.

There may be other use cases as you suggest that this solution isn't the right 
fit, and that's fine, but we can't wait around for somebody to figure our and 
implement the perfect solution for all those use cases plus the one we have 
that this solves.

So let's please agree to accept this change for the good of all the developers 
that share our common use case, document the simple mechanics of how it works, 
and you can add in a bunch of caveats of your use cases that it doesn't 
address. Perhaps then you would like to open a different ticket to address 
those use cases.

thanks.

> Add a key-value store that is a TTL persistent cache
> ----------------------------------------------------
>
>                 Key: KAFKA-4212
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4212
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>    Affects Versions: 0.10.0.1
>            Reporter: Elias Levy
>            Priority: Major
>              Labels: api
>
> Some jobs needs to maintain as state a large set of key-values for some 
> period of time.  I.e. they need to maintain a TTL cache of values potentially 
> larger than memory. 
> Currently Kafka Streams provides non-windowed and windowed key-value stores.  
> Neither is an exact fit to this use case.  
> The {{RocksDBStore}}, a {{KeyValueStore}}, stores one value per key as 
> required, but does not support expiration.  The TTL option of RocksDB is 
> explicitly not used.
> The {{RocksDBWindowsStore}}, a {{WindowsStore}}, can expire items via segment 
> dropping, but it stores multiple items per key, based on their timestamp.  
> But this store can be repurposed as a cache by fetching the items in reverse 
> chronological order and returning the first item found.
> KAFKA-2594 introduced a fixed-capacity in-memory LRU caching store, but here 
> we desire a variable-capacity memory-overflowing TTL caching store.
> Although {{RocksDBWindowsStore}} can be repurposed as a cache, it would be 
> useful to have an official and proper TTL cache API and implementation.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to