IT Hare on Soft.ware

Tap to confirm selection


Your mileage may vary. Batteries not included

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.

Design Decisions, page 1/4 :

Gradual OLTP DB Development – from Zero to 10 Billion Transactions per Year and Beyond

“to make an efficient representation usable for OLAP – we need to modify our data on its way to OLAP replicas”
Another Quote:
“Each of the DB Server Apps is a replica master, but all replica targets are within the same Replica DB”

Representing The Same Data Structure in SQL and NoSQL (from Classical Codd-style SQL to Key-Value NoSQL with SQL-with-XML and Structured NoSQL in between)

“while duplication MAY indeed improve performance – undue duplication also MAY hit performance pretty badly”
Another Quote:
“NoSQL will usually call for another denormalisation on top of what we’ve described above for SQL-with-XML.”

OLTP. Compiling SQL Bindings.

“If we’re speaking about millions transactions per day over just a few hundred of different SQL statements – compiling those statements a million times (instead of a few hundred times) will be a dramatic waste of resources.”
Another Quote:
“Once upon a time, I observed the largest C++ file in my career – it was a 30’000-line file(!) consisting merely of ODBC bindings (and that was just for 300 or so SQL statements)”

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

“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”