Hi Vladimir, Usually, LSM-storage engines serve the range searches the best (Cassandra is one of the examples). The SortedSet of Redis is one of the typical components you can find in LSM-engines.
Presently, Ignite neither supports an LSM store nor a SortedSet data structure. However, the range searches with Ignite still have O(log(n)) complexity, it just takes more steps for the B-tree to collect all the records of a range. - Denis On Fri, Sep 4, 2020 at 3:26 AM Vladimir Pligin <vova199...@yandex.ru> wrote: > Hi Igniters, > > It seems that it's not possible to implement effective leader-board with > the > current Ignite indexes. > Leader-board stores a score and an id of a player of some game. Score is > indexed. One of the possible requests to that data structure is to get some > range of scores based on their rank (it's effectively a number of a row). I > suppose it's required for pagination. For example Redis has an index > (https://redis.io/topics/data-types#sorted-sets) that can be scanned > (https://redis.io/commands/zrange) to a particular line with O(log(n)) > complexity. As far as I know it's node-local. Correct me if I'm wrong but > in > Ignite we scan an index until we find a row corresponding to a limit/offset > clause. It looks like a linear complexity. I suppose it could be possible > to > implement it for REPLICATED caches and local queries. But it's really > difficult for me to estimate the efforts. By the way it would be useful for > analytical tools, most of them paginate. So what do you think is it > possible > to make that happen in Ignite and do we need it at all? Ignite 3.0 maybe? > > > > -- > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ >