Design decisions

When architecting a system, it is inevitable to make certain high-level design decisions.

Some of these decisions, if they’re wrong, can lead to the re-architecturing and re-writing of the whole system some months later, so there is an incentive to keep things rather generic. On the other hand, trying to make system too generic is just another recipe to disaster (usually expressed in terms of missed deadlines and unmanageable code).

IT Hares try to describe certain not-so-obvious architectural decisions, and some considerations which should be kept in mind while making them.

Distributed Databases 101: CAP, BASE, and Replication

October 17, 2016 by “No Bugs” Bunny

From Duchess DB. An invitation from Queen DB

Quote:

The worst case of inconsistency happens when row X in database A is modified (by a Client connected to datacenter A), and the same row X in database B is independently modified too (by a Client connected to datacenter B).

Another Quote:

One way to avoid reports affecting operational DB, is via creating a read-only replica of our main operational DB – and running our reports off that replica.

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.System ArchitectureDesign decisions

Tagged With: DatabaseServer
Read more

Databases 101: ACID, MVCC vs Locks, Transaction Isolation Levels, and Concurrency

October 11, 2016 by “No Bugs” Bunny

Database alphabet soup: ACID, BASE, CAP, etc.

Quote:

for larger-scale MOGs, functionality-wise it is common to have 4 different types of databases: transactional processing (OLTP) DBs, real-time reporting DBs, archive DBs, and analytical DBs (OLAP)

Another Quote:

both MVCC-based and Lock-based DBMS issue locks (and therefore, both can cause all kinds of trouble such as deadlocks etc.); however, the difference lies with the number of locks issued by them.

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.System ArchitectureDesign decisions

Tagged With: DatabaseServer
Read more

MMOG Server-Side. Eternal Linux-vs-Windows Debate

January 4, 2016 by “No Bugs” Bunny

Linux-vs-Windows Armwrestling

Quote:

Each server is only as secure as its admin

Another Quote:

For cheaper servers, the difference between Windows and Linux can eat as much as 50% of the server rental price (though for those servers which are more or less optimal price-performance-wise observed difference was closer to 20-30%).

Filed under: Book: D&D of MOGs1st beta of Vol. I-IIIOn.System ArchitectureRequirement analysisDesign decisions

Read more

Client-Side. Client Architecture Diagram, Threads, and Game Loop

December 14, 2015 by “No Bugs” Bunny

Queues and Finite State Machines (QnFSM) architecture diagram

Quote:

To have a good concurrency model, it is not strictly necessary to program in Erlang

Another Quote:

Most of developers agree that FSM-based programming is beneficial in the medium- to long-run.

Filed under: Book: D&D of MOGs1st beta of Vol. I-IIIOn.System ArchitectureDesign decisions(Re)Actors

Read more