Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NoSQL database #20

Open
ng5 opened this issue Jan 3, 2017 · 7 comments
Open

NoSQL database #20

ng5 opened this issue Jan 3, 2017 · 7 comments

Comments

@ng5
Copy link

ng5 commented Jan 3, 2017

Hi Craig,

thank you for building this open source project. i have checked out the source yesterday and i managed to import QIF transaction ( programmatically!! ) , code is very well written and it appears to be high customizable. I'm working on a web application that allows user to upload OFX or QIF investment accounts to their portfolio.

we use MongoDB for this application. We have good reasons to use MongoDB rather than SQL database, this was decided after recognizing data access pattern via single BSON are much faster than SQL even with an index. Anyway database is hard to switch to at the moment.

Is it possible to extend AbstractJpaDataStore to use nosql databases like MongoDB. i'm happy to work on it by myself and share the code with you.

But i would rather ask your opinion on it first. Did you choose to use SQL because this is ofcourse an accounting system and you definately need ACID properties. In our application there is no need for this and keeping records in a single document is good enough and it provides eventual consistency.

hope to hear your thoughts on it.

Regards,
Rohit

@ccavanaugh
Copy link
Owner

ccavanaugh commented Jan 6, 2017 via email

@ng5
Copy link
Author

ng5 commented Jan 16, 2017

Thank you Craig for your response.

@kumarpranay
Copy link
Contributor

Out of curiosity; why would you choose to have multiple backends for storage on this software. If one is known to be most reliable but slow (say XML ZIP) and other the fastest (say db); should you not limit to these two. Having more means more support and different issues for different users.

@ng5
Copy link
Author

ng5 commented Feb 6, 2017 via email

@ccavanaugh
Copy link
Owner

The initial driver for multiple backends (JPA/Hibernate) was to support client / server access whereas the xml/bxds would be messy. The relational database provides fault tolerance on slow unstable systems.

The xml/bxds are more or less that same, just a different XStream constructor. These two are the fastest but not fault tolerant... especially on slow Windows systems with a large file.

The current two different relational databases (H2, HSQLDB) do have some different performance characteristics, but primary reason for have two was a backup just in case one fizzled out and it helped ensure I was not too closely tied to one database. There was a push to use Derby, but it's file structure is not a single file solution like H2 and HSQLDB.

I was bit by db4o being purchased and phased out and the xml tool I started out with years ago went closed source and as since died off.

I agree that more backend types is more effort and most users don't care.. they just want something that works well.

This is a low priority relative to UI and features. If there was to be a NoSQL solution, I think it only makes sense on the server size... I'm making up it also has a file structure that is difficult to manage for those who just want something that works.

@deepakbabu-vine
Copy link

deepakbabu-vine commented May 13, 2020

Hi Craig
Thanks for your application which is very clean. We are using the Postgres database, so can you use the Postgres database in our code?

Thanks for reply in advance.

@devanand-sysvine
Copy link

Hi Craig,
Thank you for the open source application. Am trying to implement the same in connection with Postgres Database, I was facing the issue with "Did not receive a valid response from the server" with the post configuration of Postgres DB.
Meanwhile with my configuration in persistence.xml got the message as - Connected to remote message server, from message bus class.

Is there any kinda configuration that i miss to achieve the Postgres DB.

Regards,
Dev Anand

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

No branches or pull requests

5 participants