Skip to content
This repository has been archived by the owner on Feb 25, 2020. It is now read-only.

Remove MongoDB dependency #523

Open
jdegoes opened this issue Oct 5, 2013 · 4 comments
Open

Remove MongoDB dependency #523

jdegoes opened this issue Oct 5, 2013 · 4 comments
Assignees

Comments

@jdegoes
Copy link
Contributor

jdegoes commented Oct 5, 2013

Precog currently uses MongoDB to persist metadata, such as account information, security information, and so forth. MongoDB is a database in its own right, which has to be installed and maintained. This takes a lot of time and domain knowledge.

In order to minimize the moving pieces in Precog, remove a point of failure, and simplify both initial installation of Precog and ongoing maintenance, the dependency on MongoDB needs to be completely eliminated.

We need to swap out MongoDB with a robust, pure Java embedded database (such as H2), which will make it easier to allow users to introduce redundancy in the future (by switching to a distributed SQL database).

The main criteria is that whatever we use to replace MongoDB should not require installation or maintenance of any kind; it needs to be idiot-proof, crash-proof (auto-recovery), and configuration-free.

Per @nuttycom, the main touch point in the code for the security service is ApiKeyFinder (what about for the accounts service?). The trickier bit will be refactoring and dead code elimination in the dvergr service.

@nuttycom
Copy link
Contributor

nuttycom commented Oct 6, 2013

This can be achieved by implementing the ApiKeyFinder trait to work
directly atop an HSQLDB (or similar) database instance. The trickier bit
here will be the refactoring and dead code elimination in the dvergr
service (which should be undertaken irrespective of whether or not Mongo is
no longer supported for account management.

Also: the auth and accounts services need to be merged, and their
interfaces simplified.

On Sat, Oct 5, 2013 at 1:57 PM, John A. De Goes notifications@github.comwrote:

Precog currently uses MongoDB to persist metadata, such as account
information, security information, and so forth. MongoDB is a database in
its own right, which has to be installed and maintained. This takes a lot
of time and domain knowledge.

In order to minimize the moving pieces in Precog, remove a point of
failure, and simplify both initial installation of Precog and ongoing
maintenance, the dependency on MongoDB needs to be completely eliminated.

We could swap out MongoDB with a robust, pure Java embedded database (such
as H2), which would make it easier to allow users to introduce redundancy
in the future.

The main criteria is that whatever we use to replace MongoDB should not
require installation or maintenance of any kind; it needs to be
idiot-proof, crash-proof (auto-recovery), and configuration-free.


Reply to this email directly or view it on GitHubhttps://github.com//issues/523
.

@jdegoes
Copy link
Contributor Author

jdegoes commented Oct 6, 2013

Description updated with @nuttyom's feedback and #530 created for merging auth / accounts.

@ghost ghost assigned jdegoes Dec 5, 2013
@traycho-zz
Copy link

Do you plan to implement this in near future or the repo won't be updated with new code ?

@jdegoes
Copy link
Contributor Author

jdegoes commented Feb 18, 2014

The repo will be updated with the new code as soon as it's ready.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants