On.System Architecture

System Architecture (and it’s subfield Software Architecture) is a discipline which is surprisingly poorly covered. In a sense, it is still more an art than a science, and usually requires somebody intimately familiar with practical systems, to tell what’s to do and what’s to avoid when building a system.

IT Hares have lots of experience in both Software Architecture and more general System Architecture, and are trying to share their knowledge (and more importantly, their feelings) about them.

Implementing Queues for Event-Driven Programs

June 13, 2016 by “No Bugs” Bunny

Implementing Queues for Event-Driven Programs - Post preview image

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.

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.System Architecture(Re)ActorsOn.ProgrammingTips and Tricks

Read more

Network Programming: Socket Peculiarities, Threads, and Testing

May 9, 2016 by “No Bugs” Bunny

Network Programming: Socket Peculiarities, Threads, and Testing - Post preview image

Quote:

I am not saying that this architecture is the only viable one, but it does work for TCP for sure (and performs reasonably well too)

Another Quote:

The whole task of optimizing performance beyond, say, 20-50K packets/second per box tends to be Quite Elaborated, and involves quite a few things which are platform- and hardware-dependent.

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.System ArchitectureDistributed systemsOn.ProgrammingTips and TricksNetwork Programming

Read more

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

March 28, 2016 by “No Bugs” Bunny

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

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

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.System Architecture(Re)ActorsOn.ProgrammingDebugging

Read more

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

March 14, 2016 by “No Bugs” Bunny

On Zero-Side-Effect Interactive Programming, Actors, and FSMs - Post preview image

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).

Filed under: On.System Architecture(Re)Actors

Read more