Skip to content

Switch to NoSQL with server sync capabilities #721

Closed

Description

@mvysny

Currently Aedict's way of storing data is really REALLY old and crappy, you can read about this more here: https://www.patreon.com/posts/true-cloud-7533022

So, the logical solution is to move to NoSQL databases with server sync capabilities. Possible solutions are:

  1. CouchBase Lite
  2. https://github.com/couchbaselabs/TouchDB-Android - deprecated and they moved to CouchBase so goto 1
  3. http://www.iboxdb.com/ - interesting, but the sync looks weird, I'm not sure whether the sync works over a TCP/IP connection

The problem with CouchBase is that the ForestDB engine is untested and buggy: https://github.com/couchbase/couchbase-lite-java-core/issues/1536 https://github.com/couchbase/couchbase-lite-java-core/issues/1533
https://github.com/couchbase/couchbase-lite-core/issues/42

I'm not sure whether I wish to use the SQLite engine - it's slower and it's getting replaced by the ForestDB engine.

Activity

  1. self-assigned this
    on Dec 27, 2016
  2. mvysny commented on Jan 26, 2017

    @mvysny
    OwnerAuthor

    Implemented in Aedict Online and Aedict 3.39.28

  3. mvysny commented on Jan 28, 2017

    @mvysny
    OwnerAuthor

    Please read https://www.patreon.com/posts/aedict-online-on-7838397 and https://www.patreon.com/posts/its-done-and-out-7893290 for more information for more information about how it works and how to enable it.

    Basically, the sync now works in scope of individual notepad entries: every notepad line now has an ID - if that line is deleted, the delete is propagated to all devices. It is a huge improvement over previous backup/restore style which would simply zip entire notepad and overwrite anything you had on your device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions