[
https://issues.apache.org/jira/browse/SAMZA-658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guozhang Wang reassigned SAMZA-658:
-----------------------------------
Assignee: Guozhang Wang
> Iterator.remove breaks caching layer
> ------------------------------------
>
> Key: SAMZA-658
> URL: https://issues.apache.org/jira/browse/SAMZA-658
> Project: Samza
> Issue Type: Bug
> Components: kv
> Affects Versions: 0.9.0
> Reporter: Naveen
> Assignee: Guozhang Wang
> Labels: newbie
>
> If you get an iterator from the underlying layer from any store (InMemory),
> we just return the underlying iterator. Upon invoking remove operation on the
> iterator, we just delete the value from the underlying store.
> InMemory:
> {code}
> override def remove(): Unit = iter.remove()
> {code}
> This removes it from the store, but the cache still has the value and returns
> a value when requested for the key in the subsequent calls for the key. When
> the iterator.remove() is invoked, we need make sure that all the layers
> remove the key before we remove it from the underlying store.
> RocksDB doesn't support remove on iterator, so it's probably only for
> inmemory store we have this issue.
> {code}
> def remove() = throw new UnsupportedOperationException("RocksDB iterator
> doesn't support remove")
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)