Hi Alan, We saw strata prior to starting of our work and still considering it for implementation because is should give us persistent indexes and that must greatly speedup initial database load time. I believe that selection of persistent or in-memory indexes can be controlled by option because there are some tradeoffs. We didn't choose strata initially to simplify things and get better control over all functions with goal to mimic MongoDB behaviour.
Now strata integration will be much easier because primary code base is ready and there are lot of tests that will ensure that db with strata will work exactly the same. However it is not something we can to do in the nearest time as our plans ordered in following priority: 1. Keep a stable code base for already implemented features to make it possible use it in real apps. Its ok that some features are missing, but those that exist must work as good as with native MongoDB. 2. Implement more essential MongoDB features that might be required for embedded usage. This is something where community feedback is welcome, because we already get what we was searched for. Our own top wish is compound indexes, but as I see it, it can be not easy. 3. Optimize things: speed, code quality, persistent indexes (strata?).... When we start, we make some benchmarks to help us with most important decisions. Like how to serialize data, which approach to choose for queries and so on. However we didn't spent much time on optimization and I'm pretty sure there is place for improvements. But this is low priority because we didn't see much speed difference for our application comparing to MongoDB. Most significant difference is for initial loading for which we do full table scan with goal to rebuild indexes. Regards, Sergey http://bigeasy.github.io/strata/ > > https://github.com/bigeasy/strata ~ (give a star for encouragement) > > Strata is an evented I/O b-tree for Node.js in pure JavaScript. It is a > file > backed b-tree, not in-memory, that has many of the same properties of > TingoDB; > JSON appended files that append immediately for durability. > > I believe that if you were to use Strata as your b-tree, you would still > be able > to say all great things you're now saying about TingoDB, plus you'll > probably be > able to give MongoDB a run for it's money as applications begin to scale. > > Strata uses asynchronous I/O to read and write b-tree pages. It will > answer any > queries from its in-memory cache when it can, so requests can be satisfied > even > when there are evented I/O requests outstanding. > > Strata is persistent. It stores the tree in page files. The page files are > plain > old JSON, text files that are easy to manage, just like TingoDB. Strata is > also > durable. It only appends records to to file, just like TingoDB, so a hard > shutdown will only ever lose the few last records added. Pages are > journaled > when they are vacuumed or rewritten. > > Inserts and deletes are both appends. Vacuuming is done carefully, by > copying, > so data is never lost. Strata is designed to recover from a hard shutdown > in the > middle of a vacuum or tree balance. > > Strata is a b-tree primitive. It is not itself a database. I aim to create > a > collection of database primitives in pure-JavaScript for for Node.js. I > believe > Node.js is the language that is going to give rise to the domain-specific > database, databases that are easy to extend and hack. > > I'd be happy to help you to create Strata-based storage for TingoDB. > > -- > Alan Gutierrez ~ @bigeasy > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
