Random questions about DB
Posted: Tue May 06, 2014 7:11 pm
I'm trying not to bug Domob and Micheal with stupid questions about the databases on the developer mailing list, so I figured I would reveal my ignorance to the forum and ask some silly questions about the database backends.
Full disclaimer: I've programmed using NoSQL and relational databases but I really don't understand the internal mechanics of databases nor Bitcoin beyond basic functional usage. Anyway, back to the (side)show.
I'm worried about having to port this stuff to a cross-browser, client-side database for Speech.js. Right now, I use the Namecoin RPC interface to push new entries into CouchDB. I use CouchDB because it could easily scale to millions of clients and because PouchDB rolls CouchDB's amazing synchronization capabilities into a cross-browser database abstraction.
Right now, Libcoin relies on SQLite, Namecoin relies on BerkeleyDB, and the mainline Bitcoin is using LevelDB.
SQLite makes sense for Kraken as relational databases were explicitly designed for financial transactions. However, SQLite was meant for small databases but it's doubling the size of the Bitcoin blockchain (~30Gigs ATM). Perhaps they just sync their Bitcoin instances with a more mature SQL database for server transactions? Why wouldn't Kraken switch to libmysqld at this point?
Furthermore, SQLite has been giving Domob headaches and it's likely that they will keel HunterCoin on BerkeleyDB. Bitcoin switched to LevelDB but LevelDB is also tuned for small databases.
So, for my most clueless question: what about building a storage abstraction layer? I know that this is more work than just switching to any single database, but I know of a few OSS projects with them.
Full disclaimer: I've programmed using NoSQL and relational databases but I really don't understand the internal mechanics of databases nor Bitcoin beyond basic functional usage. Anyway, back to the (side)show.
I'm worried about having to port this stuff to a cross-browser, client-side database for Speech.js. Right now, I use the Namecoin RPC interface to push new entries into CouchDB. I use CouchDB because it could easily scale to millions of clients and because PouchDB rolls CouchDB's amazing synchronization capabilities into a cross-browser database abstraction.
Right now, Libcoin relies on SQLite, Namecoin relies on BerkeleyDB, and the mainline Bitcoin is using LevelDB.
SQLite makes sense for Kraken as relational databases were explicitly designed for financial transactions. However, SQLite was meant for small databases but it's doubling the size of the Bitcoin blockchain (~30Gigs ATM). Perhaps they just sync their Bitcoin instances with a more mature SQL database for server transactions? Why wouldn't Kraken switch to libmysqld at this point?
Furthermore, SQLite has been giving Domob headaches and it's likely that they will keel HunterCoin on BerkeleyDB. Bitcoin switched to LevelDB but LevelDB is also tuned for small databases.
So, for my most clueless question: what about building a storage abstraction layer? I know that this is more work than just switching to any single database, but I know of a few OSS projects with them.