Hello Alexey, It's not so difficult to implement new type of indexing of data, but if you want to reach performance in distributed environment you need to have strong knowledge of a data you're indexing and what kind of queries you want to execute. Should be this index in-memory only or you want to persist it? In case of persistence your index should fit our page memory model requirements. In both cases your index should be ready to work in concurrent environment.
In general index can be implemented in two ways per-partition and per-node. Per-partition may be efficient if you have a lot of points (x,y) representing a big one, e.g. image. In this case it's required that all of these points will be in one partition that query e.g. makes images intersection will execute in one node. But if you have multiple images, your index will contain also another points from other object and will overload it. Per-node may be efficient if you have a lot of points (x,y) that are independent of each other, that you will use it as spatial e.g.. But in this case, I think K-d tree is preferable as it can be used in more wide way. Could you please share use cases you're trying to solve with QuadTree? With close to real data and examples of queries? Because now the question is too abstract and it's hard to understand how it should be implemented to reach good results. 2018-08-01 16:45 GMT+03:00 Alexey Zinoviev <zaleslaw....@gmail.com>: > Hi, Igniters. > > Currently I'm working on different math stuff over the Apache Ignite and in > a few tasks I need to implement in memory something like this > > https://en.wikipedia.org/wiki/Quadtree > > I didn't find such index in Apache Ignite, but maybe it's under development > by somebody? > > Is it a difficult to add a new index type to our distributed SQL (from > point of view of different infrastructure issues and so on P.S I don't > worry the math stuff here because I've implemented it many times in > non-distributed version)? > > It will be great to hear any kind of your thoughts and maybe somebody could > help with implementation > > zaleslaw >