You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by "Naveen (JIRA)" <ji...@apache.org> on 2015/04/25 00:59:38 UTC

[jira] [Updated] (SAMZA-658) Iterator.remove breaks caching layer

     [ https://issues.apache.org/jira/browse/SAMZA-658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Naveen updated SAMZA-658:
-------------------------
    Labels: newbie  (was: )

> 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
>              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)