Re:Jepsen: Testing Partition Tolerance of PostgreSQL, Redis,...
by olavgg on Friday May 02, 2014 @11:50AM
(#7686399)
Wouldn't message queues help you with this? They can be easily scaled horizontally to handle any write load and correctly insert data to the database safe over time.
You can also shard your database to distribute write load.
Re:Jepsen: Testing Partition Tolerance of PostgreSQL, Redis,...
by falcolas on Friday May 02, 2014 @12:09PM
(#7686498)
All of those absolutely help, at the cost of added complexity, additional points of failure, and hardware/VPS costs. And you still risk losing data, or at least data integrity.
Not to mention there are still hard limits on how quickly you can insert data into a database with 100% durability (which is, of course, impossible, but another topic entirely), and there are scales where even these mitigation tactics can't help you anymore (in particular, online casino games have this problem since they are persisting the state of multiple players very frequently).
Seconds, or even minutes worth of lost data do cost the company, but not nearly as much as poor performance. And unfortunately, developers tend to over-value data in the equation, leading to decisions which cause a company problems when it comes time to grow.
Ultimately, the best tools for ensuring business continuity (with few exceptions) is redundancy coupled with a set of proper backups.