3 ms·
Well, I have operated a MMO on my system for 4 years and the source is open. What do you think? Please stop down voting without arguments, you are making the w
by bullen 6y ago
Well, I have operated a MMO on my system for 4 years and the source is open. What do you think?
Please stop down voting without arguments, you are making the world a lesser place.
- lostcolony 6y agoAs I mentioned elsewhere, your use case likely mitigates the network failures. A given user is likely talking to only one node; you aren't getting writes to one, reads to another, let alone conflicting writes across nodes. Nor are you dealing with anything where inconsistencies create real problems, such as dealing with real world money (your users are more likely to go "Urgh, I thought I had enough X for that! Guess I have to go farm some more", not "WHERE THE HELL IS MY MONEY?! I DEPOSITED $1k LAST NIGHT, WHERE IS IT !?"). Nor have you solved your core problem better than an eventually consistent system would have (though possibly in a more energy efficient way, per your claim). There's also a bit of irony asking "what do (I) think", and then objecting that my comments are made 'without arguments'. No, there are pretty clear arguments, to which your only response is "well, I have operated a successful MMO". I never said you didn't, nor that a DB that handles partitions incorrectly can't be useful (hell, I've written production systems reliant on Mnesia in Erlang, which in the event of a netsplit just...splits, and stays split, because it fit out use case). Just that your claim that "CRDTs and Paxos like protocols don't make any sense", and that just doing what you did is sufficient for any distributed system, is reflective of you, not of reality.
- bullen 6y agoErlang, Go and Rust are completely meaningless languages because they cannot share memory efficiently, ie. they cannot operate one-to-many, many-to-one or many-to-many efficiently. So I value your arguments about "people have researched this" like I do with all people that don't get their hands dirty and prove things practically first, because obviously you have not. I use real data from the real world, you should try it, you might invent something. But yes my system relies on being connected to one node at the time like you said previously.
- lostcolony 6y agoBarely going to touch those language claims; I've written production systems in two of those, and Java, your preferred stack. They all can share memory efficiently between units of concurrency; this just seems like another example of you claiming your own limited knowledge as being truth. In terms of building real world systems - oh, but I have. Over a decade of building distributed systems, across 5 different companies. In domains that cared about correctness. You have a data point; a weak one. "This worked for me". Which I'm not arguing against (well, I'm nuancing it a bit; it worked sufficiently well to not cause business issue, which is a different metric than system correctness, but somewhat immaterial). What I'm arguing against is your claim that "This will work for everyone" and "everything else is too complicated". Which you've been unable to refute. In fact, you've been unable to even provide evidence for your own position (beyond the aforementioned "it worked for me"), let alone the counter claim.
- bullen 6y agoMy preferred stack is Java for server side, but C for the client. All other languages are completely flawed in too many ways that any sane person would choose to use them other than by mistake. I have given you the source of a 2000 line distributed database that out-scales all other databases for 80% of their uses, and all you did was to down vote me. I'm just saying "here is what I learned", you have thought me nothing.