4 ms·
As a DBA, I can say that it takes 5 to 10 years for a new database or file system to be ready (reliable, few global mutexes, third-party tools, programming lang
by redis_mlc 7y ago
As a DBA, I can say that it takes 5 to 10 years for a new database or file system to be ready (reliable, few global mutexes, third-party tools, programming language support, etc.) for production with paid customers.
So you should be using MySQL or Postgres for the Source of Truth (SoT) and things like Cassandra or CockroachDB for specialized use cases (caches, end-user metrics with TTL, etc.) But I would never put important data in a distributed database since there's too many moving parts and it's impossible to verify if the input matches the output over a decade.
If you need multi-master for failover today, I would pick Percona XtraDB Cluster (I've used it in production for 5 years) or MySQL 8.
https://dev.mysql.com/doc/refman/8.0/en/group-replication-multi-primary-mode.html https://dev.mysql.com/doc/refman/8.0/en/group-replication-mu...
If you don't have paying clients, then it really doesn't matter what tools you choose.
An example of the above is MongoDB, irrationally beloved by HN. Until recently it had a global write mutex and a POS (myisam-class) storage engine. After most companies migrated off of it for production, there are two Innodb-class storage engines now (native and WiredTiger) that add credibility ... after a decade of data loss and poor write performance. Those new engines will be ready for heavy-duty use in ... about 5 years.
- winrid 7y agoOne small data point - our small MongoDB cluster serves around 2gb/s traffic of times. Much more reliable than it was three years ago.
- Irishsteve 7y agoFound your post interesting. Thats it :-)
- StreamBright 7y agoExactly. I also migrated companies off from MongoDB after a total data-loss that even the vendor could not recover or explain. Postgres is surprisingly capable, rock solid service that is always my first choice. I also used Riak in production for several years and the biggest problem was with it that the operations team forgot the root password because they did not need to login for a long time. :) I have heard great things about Percona XtraDB but I never used it. RocksDB is also interesting but it is just a data store not a full fledged service, based on it there is one service called TiDB that I have heard is very reliable.
- manigandham 7y agoTiDB is not based on RocksDB, it runs on top of TiKV which is a custom distributed key/value store written in rust.
- StreamBright 7y agoI thought it uses RocksDB and the Rust interface they wrote. https://github.com/pingcap/rust-rocksdb https://github.com/pingcap/rust-rocksdb https://github.com/tikv/tikv/blob/master/src/storage/kv/rocksdb_engine.rs https://github.com/tikv/tikv/blob/master/src/storage/kv/rock...
- jinqueeny 7y agoTiKV is built on top of RocksDB, see our chief engineer’s speech of how we used RocksDB in TiKV: https://pingcap.com/blog/2017-09-15-rocksdbintikv/ https://pingcap.com/blog/2017-09-15-rocksdbintikv/ Because of the write amplification issue of RocksDB, we build a RocksDB plugin, TiTan. Here is its design and implementation detail: https://pingcap.com/blog/titan-storage-engine-design-and-implementation/ https://pingcap.com/blog/titan-storage-engine-design-and-imp...
- StreamBright 7y agoExcellent thank you.