And we have an additional two packages from the Redis implement that can be used for compare/contrast. redis-livedata miniredis
In theory, we should be able to clone the mongo packages, do a hand-wavy search-and-replace of âmongoâ with âhyderdexâ and be about 80% of the way done to adding an ACID compliant datastore thatâs compatible with the Mongo API.
AFAICT you wouldnât get oplog tailing, right? So livequeries would become pretty inefficient. On the other hand, maybe your app doesnât need them, so YMMV.
We did some tests with TokuMX. Itâs good and gives better performance than 2.6. But, mongodb 3.0 with WiredTiger is just like the same in performance.
From another comment:
TokuMX only fixes the data loss problems in the mongo replication design (by tying acknowledgements to election terms a la raft). TokuMX doesnât fix the stale/dirty reads problem.
Mongo clients just donât expect to verify that the server theyâre talking to is actually the primary; without changing clients or adding a lot of server-side logic to proxy for clients, I donât think this is fixable in the replication design mongo uses and TokuMX inherited.
No oplog tailing, as far as I can tell. Or replica sets or fault-tolerance, for that matter. But Iâm thinking of specific use cases along the lines of storing aggregation data and rolling averages. If Mongo is the bookshelfs of the library, then using HyperDex would be a card-catalog system of sorts.
@nathan_muir - thank you very much for sharing TokuMX. I wasnât aware of them, but that looks like a very interesting solution also.
Why HyperDex in particular? No exact reason; but lots of small reasons⌠the Mongo veneer API and ACID compliance being the two primary ones (and which makes TokuMX also suitable for my needs).
Also, over the next few months, Iâm going to be moving into shard testing of various bioinformatics datasets; and will probably be hacking on the mongo, minimongo, and mongo-livequery packages. Writing a hyperdex, hyperdex-livequery, and minidex package would be the kind of exercise that would require me reading through and understanding the existing mongo drivers, and getting my knowledge of livequery up to the point where I could then hack on the mongo packages themselves.
Hyperdex is the result of their ongoing research at Cornell University. They have a commercial spinoff which sells Hyperdex Warp which adds full ACID transactions on hyperdex. So if you donât need full acid transactions, you can use the OSS version, if you want the extra services you have to pay.