
Quote: | “99% of reporting requests and 99.9% of analytics is purely historical” |
Another Quote: | “Information within the audit table should be sufficient to validate/justify current state” |
[→] |
analytics for those Senior Software Developers, Team Leads, Architects, and Project Managers who're Able to Think
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.
posted by "No Bugs" Hare
Quote: | “99% of reporting requests and 99.9% of analytics is purely historical” |
Another Quote: | “Information within the audit table should be sufficient to validate/justify current state” |
[→] |
posted by "No Bugs" Hare
Quote: | “As the RDBMS keeps modifying its tables – the tables gradually degrade” |
Another Quote: | “As we can see from the table above – choosing your RDBMS it is not as easy as it might seem.” |
[→] |
posted by "No Bugs" Hare
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” |
[→] |
posted by "No Bugs" Hare
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.” |
[→] |
posted by "No Bugs" Hare
Quote: | “in real world, after deployment, most of the changes in DB structure are about widening columns and adding the new ones” |
Another Quote: | “For documents and BLOBs, NoSQL is a natural habitat” |
[→] |
posted by "No Bugs" Hare
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.” |
[→] |
posted by "No Bugs" Hare
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.” |
[→] |