First MongoDB data model problem, _id is the PK column. Two tables (link, count) have composite PK which isn't supported by MongoDB. The workarounds are: * have unique index on them and artificia...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10862519
We probably could have implemented single-shard transactions in MongoDB by now with all of this time & energy devoted to this thread.
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10784187
> Are there happy Mongo customers doing userland 2-phase commit? Yes, but probably not in the way you're asking this question or that we are discussing now wrt LinkBench. I think we are probably ...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10784185
Not buying it. Show the code. It will be slow. It will be much more complex. Not a fan of the "you don't need single-shard transactions, but if you do here do 2-phase commit from userland". I thi...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10783968
I'm not trying to say it's great, just that complexity is equivalent. The prepare-commit roundtrips only happen at commit time. The more complex the actual transaction is, the less relative overh...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10783827
Seriously doubt it. Not sure whether you are joking. 2-phase commit done in userland means 2 transactions, 1 for the PREPARE phase and 1 for the COMMIT phase. Hot spots will be much hotter, code ...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10783707
Ok, if the SQL implementation depends on SELECT FOR UPDATE then I guess the 2 phase commit pattern is a reasonably close equivalent and wouldn't necessarily even have much worse performance. 2 ph...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10782933
Users strongly prefer correct counts, especially power users who work hard to increase their counts. User experience for liking something is also better when you see the count change. Business lo...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10781323
> Solution 1 doesn’t scale. We can’t put 1M friends into one document. Correct. I was assuming on the order of thousands. You could still break this into only a few documents, with tens of th...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10781250
Assume 1) database must be sharded 2) some nodes have more than a million friends/edges/links 3) workload is probably more complex than you realize -- read the LinkBench source to see the read-mo...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10781194
Hi Vadim While the two phase commit pattern describe in our manual can sometimes be useful, I suspect benchmarking it will be a wasted effort. Nobody would implement performance critical parts of...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10780707
It is indeed a challenge to implement LinkBench logic for MongoDB without multi-document atomicity. We are looking if we can use this technique to achieve that http://docs.mongodb.org/v2.2/tutori...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10774161
Thanks. Socialite might be interesting but it would help to get a writeup in one place that explains the data model and basic queries/transactions. Looking at code I see follower counts requires ...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10774102
Mark, We are working on MongoDB implementation, it will be available. And yes, I am going to run long-hours benchmarks, the results will be available.
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10774083
I am still hoping that someone publishes MongoDB port of linkbench
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10774076
You might want to take a look at the reference implementation for social graph called Socialite written in Java using MongoDB: https://github.com/10gen-labs/socialite it has configurable schema o...
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10774052
I am interested in results for runs over several hours where the database is much larger than RAM, even better if this uses flash/SSD storage.
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10773770
Thanks for fixing the coordinated omission problem in LinkBench. http://psy-lob-saw.blogspot.com/2015/03/fixing-ycsb-coordinated-omission.html
https://www.percona.com/blog/linkbenchx-benchmark-based-arrival-request-rate/#comment-10773733