thegeekyasian/geo-assist

Some suggestions

nazarimilad opened this issue · 3 comments

Awesome project!

Some remarks and questions I have:

  • RAM: using K-d-trees: how is the memory complexity? Can you provide some measurements and graphs for big amounts of data? I think using some OSM country data could be a good idea.

  • What about the time complexity of the supported operations: insertion, fetching and deletion?

  • Is there support to persist the indexes to disk and reread them from disk?

  • I think it would be very helpful to provide some performance comparisons with the geo-spatial indexing engine of some popular databases.

  • What If I have a geospatial element that needs to be updated? For example the latitude needs to be corrected. Is there support for an "UPDATE" operation, and thus is updating the K-d tree possible? Or is there a work around: delete and insert? Maybe a good idea to document this in your README.md

  • What if I also have elevation data?

Thanks a lot for your feedback @nazarimilad

Benchmarks are a good suggestion, I will perform tests and add benchmarks to this repository soon.

Regarding other suggestions, I am already working on a lot of improvements. I will update the README.md too.

I will keep you posted with the related updates on this thread 😄

@thegeekyasian Great work! Would you be interested to reuse existing benchmarks for your project?

Sbt-JMH plugin is used under the hood. It allows to measure throughput, allocations or any other CPU metrics like instruction per cycle, cache misses, branch mis-predictions. Also, it can show reports in a form of flame-graphs or pretty-print disassembled machine instructions generated by JIT compilers for hot loops with links to the source lines in comments.

@thegeekyasian Great work! Would you be interested to reuse existing benchmarks for your project?

Sbt-JMH plugin is used under the hood. It allows to measure throughput, allocations or any other CPU metrics like instruction per cycle, cache misses, branch mis-predictions. Also, it can show reports in a form of flame-graphs or pretty-print disassembled machine instructions generated by JIT compilers for hot loops with links to the source lines in comments.

Thank you very much @plokhotnyuk. I really appreciate your suggestion and thanks for sharing the reference.
I already have some benchmarks created, which I plan to add to the repository soon. I will look into your project and will see if I can reuse anything for better benchmarks. The projects looks super cool. 🚀

And I might ping you for assistance, if that is required :D TIA