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

Ming Liu commented on KAFKA-7918:
---------------------------------

[~ableegoldman], [~guozhang] [~mjsax],  one good benefit of generics based 
inMemoryStore is to save the serialization cost (one great benefit of using 
inMemoryStore).  In the matter of fact, we do have application relying on such 
inMemoryStore capability to improve the performance.  With this change (when we 
try upgrading from 2.2 to 2.5), a few of our applications can't keep it up 
anymore.  

We did writing code to create InMemoryKeyValueStore<K, V> directly (bypass the 
Store.inMemoryKeyValueStore).   I think we should expose K, V based memory 
store directly, thoughts?

> Streams store cleanup: inline byte-store generic parameters
> -----------------------------------------------------------
>
>                 Key: KAFKA-7918
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7918
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: John Roesler
>            Assignee: A. Sophie Blee-Goldman
>            Priority: Major
>             Fix For: 2.3.0
>
>
> Currently, the fundamental layer of stores in Streams is the "bytes store".
> The easiest way to identify this is in 
> `org.apache.kafka.streams.state.Stores`, all the `StoreBuilder`s require a 
> `XXBytesStoreSupplier`. 
> We provide several implementations of these bytes stores, typically an 
> in-memory one and a persistent one (aka RocksDB).
> Inside these bytes stores, the key is always `Bytes` and the value is always 
> `byte[]` (serialization happens at a higher level). However, the store 
> implementations are generically typed, just `K` and `V`.
> This is good for flexibility, but it makes the code a little harder to 
> understand. I think that we used to do serialization at a lower level, so the 
> generics are a hold-over from that.
> It would simplify the code if we just inlined the actual k/v types and maybe 
> even renamed the classes from (e.g.) `InMemoryKeyValueStore<K,V>` to 
> `InMemoryKeyValueBytesStore`, and so forth.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to