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

Mohamed Mahmoud (El-Geish) updated SAMZA-647:
---------------------------------------------
    Attachment: getAllPerf.png
                BatchingKeyValueStore.diff

The crash was caused by the following statement in 
TestKeyValueStores::testDeleteAllWhenPartialMatch:

assertEquals(1, store.all.size)

As you can see, I failed to close the iterator — which shouldn’t be a big deal 
since its finalize() calls close(), but apparently there’s a bug in 
RockObject::dispose(), which I’m hunting down, that causes a SIGSEGV when the 
Finalizer tries to finalize it.

I also added another perf test, for Write-Once-Read-Many scenarios, which 
returned the following results (also in favor of getAll).

> A new KeyValueStore interface should support getAll(List<K>)
> ------------------------------------------------------------
>
>                 Key: SAMZA-647
>                 URL: https://issues.apache.org/jira/browse/SAMZA-647
>             Project: Samza
>          Issue Type: Improvement
>          Components: kv
>    Affects Versions: 0.9.0
>            Reporter: Mohamed Mahmoud (El-Geish)
>            Assignee: Mohamed Mahmoud (El-Geish)
>              Labels: features
>             Fix For: 0.10.0
>
>         Attachments: BatchingKeyValueStore.diff, build-1.err_pid49877.log, 
> build.log, getAllPerf.png
>
>
> For stores that support multiGet, like RocksDB, this can improve performance 
> when batch querying; this could be simply implemented as a pass-through call 
> to the underlying storage engine.
> For stores that don't support multiGet, we can simply return an iterator for 
> the corresponding values by looping over keys and calling get() for each one.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to