Closed mvysny closed 6 years ago
Related issue: https://github.com/mvysny/aedict/issues/721
Just did a very simple performance benchmark, and the CloudAnt performance is simply terrible: it takes 40ms to create a document, and 40ms to run a single query. I'm pretty sure that CouchBase with ForestDB was way faster; I'll need to attach performance measurements.
On the same machine performance-testing CouchBase+ForestDB: creating a document takes ~1ms, a single query takes 2ms and single document retrieval takes ~1,5ms. That's like 20-40 times faster than CloudAnt Sync! It's probably because CloudAnt Sync uses Sqlite underneath, while CouchBase uses ForestDB. However the performance of CloudAnt Sync is simply unacceptable.
This looks VERY interesting: https://www.dizitart.org/nitrite-database.html - and it has Kotlin support! https://github.com/dizitart/nitrite-database/tree/master/potassium-nitrite Getting started: https://dzone.com/articles/nitrite-an-embedded-nosql-database-for-javaandroid
Nitrite looks awesome: it is based on a well-tested H2 mvstore and is extremely fast:
And it's pure Java! So it's 10 times faster than CouchBase Lite, and 200-400 times faster than CloudAnt. Unfortunately there are sync issues: https://github.com/dizitart/nitrite-database/issues/73
Using the underlying H2 MVStore yields even more brutal performance: saving a binary entry takes 0,03ms; retrieval of a saved binary takes 0,01ms. And what's the best thing - we can simply use Kafka for synchronization purposes!
Replaced CBL with UMN: https://gitlab.com/mvysny/umn in Aedict 3.50
Possible CouchBase replacements: