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

Chris Riccomini commented on SAMZA-232:
---------------------------------------

Also, I've removed this as a feature for the 0.7.0 release. If anyone disagrees 
with this, feel free to speak up.

> Keys and values in state should be versioned
> --------------------------------------------
>
>                 Key: SAMZA-232
>                 URL: https://issues.apache.org/jira/browse/SAMZA-232
>             Project: Samza
>          Issue Type: Improvement
>            Reporter: Martin Kleppmann
>
> At the moment, keys and values that are written to a task's key-value store 
> (and the associated changelog stream) are just the bytes that were generated 
> by the serde. This will be a problem in future, since it gives us no way of 
> changing the storage format.
> For example, in order to implement exactly-once semantics, we may want to 
> associate additional metadata with each value (and that metadata would be 
> managed by the framework, and would not be seen by serdes). The current 
> implementation does not give us any room to make such a change, because a job 
> would not know whether the value it is reading includes metadata or not.
> I propose that we prefix every key and every value in the key-value store and 
> the changelog stream with a version number, currently just a zero byte. That 
> is an incompatible change, so we should do it before the 0.7.0 release. In 
> future, if we ever need to change the storage format, we can bump the version 
> number and thus allow jobs to be gracefully upgraded in-place.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to