Hi Matthias. Thank you for your response.

Yes, I was able to reproduce the null issue reliably. I can't open a JIRA
at this time, but I can say I was using 0.10.1.0 and it was trivial to
reproduce. Just send records and the tombstones to a table topic. Then scan
the range. You'll see the tombstones.

Indeed, ranges are returned with no specific order. I'm not sure what you
mean that default stores are hash-based, but this ordering thing is a shame
because it kind of kills the ability to use KS as a full fledged DB that
lets you index things like HBase (composite keys for lists of items). Is
that how RocksDB works? Just returns range scans in random order? I don't
know C++ so the documentation is a bit opaque to me. But what's the point
of scanning a range if the data comes in some random order? That being the
case, the number of possible use-case scenarios seem to become
significantly limited.


Thank you!
Dmitry

On Tue, Mar 14, 2017 at 1:12 PM, Matthias J. Sax <matth...@confluent.io>
wrote:

> > However,
> >> for keys that have been tombstoned, it does return null for me.
>
> Sound like a bug. Can you reliable reproduce this? Would you mind
> opening a JIRA?
>
> Can you check if this happens for both cases: caching enabled and
> disabled? Or only for once case?
>
>
> > "No ordering guarantees are provided."
>
> That is correct. Internally, default stores are hash-based -- thus, we
> don't give a sorted list/iterator back. You could replace RocksDB with a
> custom store though.
>
>
> -Matthias
>
>
> On 3/13/17 3:56 PM, Dmitry Minkovsky wrote:
> > I am using interactive streams to query tables:
> >
> >             ReadOnlyKeyValueStore<Messages.ByUserAndDate,
> > Messages.UserLetter> store
> >               = streams.store("view-user-drafts",
> > QueryableStoreTypes.keyValueStore());
> >
> > Documentation says that #range() should not return null values. However,
> > for keys that have been tombstoned, it does return null for me.
> >
> > Also, I noticed only just now that "No ordering guarantees are
> provided." I
> > haven't done enough testing or looked at the code carefully enough yet
> and
> > wonder if someone who knows could confirm: is this true? Is this common
> to
> > all store implementations? I was hoping to use interactive streams like
> > HBase to scan ranges. It appears this is not possible.
> >
> > Thank you,
> > Dmitry
> >
>
>

Reply via email to