Wouldn't such a system make more sense for sending raw memory directly over the wire in some form of custom protocol? Even UDP would probably be able to approximate that.
Wouldn't such a system make more sense for sending raw memory directly over the wire in some form of custom protocol? Even UDP would probably be able to approximate that.
Would it be feasible to horizontal scale those nodes instead?
Additionally, I don't know why you would choose not to use the capacity of the system you have, just because you can easily scale horizontally. If a bit of engineering time can significantly reduce the number of systems to manage and the hardware budget, seems like a good plan. Especially when these projects are fun to work on and large tech companies want to retain employees.
The work and investment to turn that 4U deployment into two 2U deployments sounds like a far more realistic and effective way to go about the problem.
> Additionally, I don't know why you would choose not to use the capacity of the system you have, just because you can easily scale horizontally.
The point is that the capacity does not exist, hence these patches being shot down by kernel maintainers for being fundamentally broken.
Also, what are the real-world performance improvements of these memory hacks? Adding another COTS box next to the one already deployed should double capacity straight away.
- is supported everywhere
- allows massive reads and writes (whereas UDP often has quite small limits before packets are dropped)
- is reliable (you wont lose data, your data won't corrupt, etc)
So you could use this inside an existing datacenter, with existing hardware, and existing software to debug and monitor it.
If you send GB of memory, the TCP overhead is minimal.
Beating TCP reliability and performance is an extremely ambitious endeavor in practice. Add wide interop to that list and it becomes next to impossible.
How many companies do you know who operate nearly as many servers as Google?