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