Menu

IT Hare on Soft.ware

Tap to confirm selection

Subscribe:

Your mileage may vary. Batteries not included

TBH, I am a big fan of actor- and reactor-like programming patterns (also known as Finite State Machines. While you’re not strictly required to use reactors and might be able to get away without them – they DO provide several very substantial benefits.

(Re)Actors, page 2/3 :


Ultimate DB Heresy: Single Writing DB Connection. Part II. Gradual Scalability. All the way from no-scale to perfect-scale.

Quote:
“And after this split of USERS table, the system has achieved perfectly linear scalability.”
Another Quote:
“Start with a simple single-write-connection DB, with reporting running off the same DB”

Ultimate DB Heresy: Single Modifying DB Connection. Part I. Performance (Part II. Scalability to follow)

Quote:
“Dealing with transaction isolation is very far from being a picnic”
Another Quote:
“One of such real-world systems was consistently processing over 30M real-world write transactions/day over one single DB connection, supporting ~100K simultaneous players.”

Deterministic Components for Distributed Systems

Quote:
“Then you can recover from any single server failure in a perfectly transparent manner”
Another Quote:
“after the program fails in production, we can get the input log and run it in the comfort of a developer’s machine, under a debugger, as many times as we want, and get exactly the same variables at exactly the same points as happened in production”

Implementing Queues for Event-Driven Programs

Quote:
“full queues SHOULD NOT happen during normal operation”
Another Quote:
“With queues-implemented-over-mutexes like the ones we’ve written above, the most annoying thing performance-wise is that there is a chance that the OS’s scheduler can force the preemptive context switch right when the thread-being-preempted-is-owning-our-mutex.”

Avoiding Ugly Afterthoughts. Part a. From Writing for Cross-Platform, to Writing for Debugging and Production Post-Mortem, with Error Handling in between

Quote:
“It is strongly recommended to have your build server to compile your game for at least two sufficiently-different platforms from the very beginning”
Another Quote:
“If allocation of 50 bytes causes an “out of memory” error, we’re probably already long dead because of unacceptable swapping. And even if we disabled swap file – chances that we will recover from this condition, are infinitesimally small”

On Zero-Side-Effect Interactive Programming, Actors, and FSMs

Abstract:
“WHY are functional programming languages not popular for interactive programming purposes?” and “WHAT we can do about it?”
Quote:
“IMNSHO, deterministic Actors are the very best thing in existence for interactive programming, with lots of very practical benefits (from production post-mortem, to protection of in-memory state against server faults).”

Unity 5 vs UE4 vs Photon vs DIY for MMO

Quote:
“You can still use HLAPI despite its shortcomings”
Another Quote:
“If you’re using one of the engines above (and not your own one), and your game requires Client-Driven Development Flow, you may want to start with a single-player Unity 5, or with a single-player UE4.”