Yugabyte Blog
blog.yugabyte.com · Company blog · on HN since 2018
Yugabyte's company blog covers its distributed SQL database, including Raft, RocksDB, benchmarks against rivals and PostgreSQL topics.
What HN saysHN commenters use it for database comparisons and architecture explanations, such as the DocDB design on RocksDB and the Postgres timestamp guide.
33HN people shared it
14linked it in comments
61stories submitted
882story points
5 years agolast shared
2018people per year2026
Most-shared posts
- 1Bringing Truth to Competitive Benchmark Claims (YugabyteDB vs. CockroachDB)3 people · 9 points · first shared 2020 · 1 comments on HN
- 2Low Latency Reads in a Distributed Database Using Raft Leader Leases3 people · 3 points · first shared 2019 · discussion on HN
- 3How we built a high performance document store on rocksdb3 people · first shared 2019
- 4Technical Challenges Developing a Distributed SQL Database2 people · 239 points · first shared 2019 · 34 comments on HN
- 5PostgreSQL Timestamps and Timezones: What You Need to Know–and What You Don’t2 people · 27 points · first shared 2022 · 5 comments on HN
- 6Comparing Distributed SQL Performance – Yugabyte/ Amazon Aurora / CockroachDB2 people · 10 points · first shared 2019 · discussion on HN
- 7TCP delaying packets after a network partition is over (YugaByte DB Jepsen test)2 people · 7 points · first shared 2019 · discussion on HN
- 8Techniques for geo-replicated databases with low latency2 people · 7 points · first shared 2019 · discussion on HN
- 9Transforming PostgreSQL into a Distributed SQL Database2 people · 4 points · first shared 2020 · discussion on HN
- 10Issues to Consider When Evaluating FoundationDB2 people · 4 points · first shared 2019 · discussion on HN
- 11CockroachDB vs. YugabyteDB – Architecture and Performance Deep-Dive2 people · 3 points · first shared 2020 · discussion on HN
- 12Jepsen testing on yugabyte db database2 people · first shared 2018
- 13Yugabyte db vs cockroachdb performance benchmarks for internet scale transactional workloads2 people · first shared 2019
- 14Facebooks user db is it sql or nosql2 people · first shared 2020
- 15Announcing Yugabyte DB 2.0 GA: High-Performance Distributed SQL1 people · 106 points · first shared 2019 · 28 comments on HN
What HN people wrote when they linked it
truth_seeker · 2019-07-17
Great !
https://blog.yugabyte.com/rise-of-globally-distributed-sql-databases-r…
I have found this article on their site to be useful.
The article compares different SQL databases under Monolithic SQL Vs NewSQL Vs Globally Distributed SQL databases
tepidandroid · 2019-07-16
There's a feature matrix here [1] comparing YugaByte to CRDB, TiDB, Aurora, CosmosDB, Spanner, MongoDB, FoundationDB, Cassandra and Dynamo. No idea about performance characteristics though.
[1] https://docs.yugabyte.com/latest/comparisons/
edit: there is a relatively recent blogpost comparing the two here: https://blog.yugabyte.com/yugabyte-db-vs-cockroachdb-performance-bench…
Key summary from the post:
In a nutshell, YugaByte DB delivers an average of 3.5x higher throughput and 3x lower latency compared to CockroachDB. Following are the detailed performance characteristics at scale (millions of rows) for internet-scale transactional workloads:
5x more insert throughput, 9x faster
4x more query throughput, 3x faster
4x more distributed transactions throughput
In addition, YugaByte DB offers additional features such as read replicas (for timeline-consistent, low-latency reads from the local region) and automatic data expiry (by setting a TTL at table level or row level).
Obviously to be taken with a grain of salt as with all benchmarks doing head-to-head comparisons.
vietthan · 2022-01-28
link has a /2 at the end, serves up a generic page. Link is:
https://blog.yugabyte.com/postgresql-timestamps-timezones/
manigandham · 2021-05-19
Yugabyte uses actual Postgres code for the query layer, on top of data persistence (distribution/replication) handled by DocDB document store, which itself is a layer on top of RocksDB: https://blog.yugabyte.com/how-we-built-a-high-performance-document-sto…
CockroachDB (aka CRDB) is completely custom and compatible with Postgres wire/datatype protocols, which operates directly on its own key/value store called Pebble (but originally was also RocksDB): https://www.cockroachlabs.com/blog/distributed-sql-key-value-store/
Both systems are foundationally the same SQL-on-KV but implement it very differently.
wingspan · 2021-04-06
You joke, but this is basically how Facebook uses MySQL for the main user table and for the majority of Entities: https://blog.yugabyte.com/facebooks-user-db-is-it-sql-or-nosql/
skunkworker · 2020-12-08
YugabyteDB https://blog.yugabyte.com/how-does-the-raft-consensus-based-replicatio…
And CockroachDB both use raft consensus https://www.cockroachlabs.com/docs/stable/architecture/replication-lay…
WookieRushing · 2020-11-28
This is really common and works pretty awesomely. MySQL is extremely battle tested and there’s lots of experts out there for it.
FB built a similar system to maintain their graph: https://blog.yugabyte.com/facebooks-user-db-is-it-sql-or-nosql/
It’s a ton of tiny DBs that look like one massive eventually consistent DB
nitrobeast · 2020-08-30
Part 2: https://blog.yugabyte.com/yugabytedb-vs-cockroachdb-bringing-truth-to-…
Original post from CockroachLabs: https://www.cockroachlabs.com/blog/unpacking-competitive-benchmarks/
isignal · 2020-05-06
Afaik, Postgres flavored Aurora has a single master for writes and doesn't allow horizontally scaling writes[1]. I believe reads can scale by bringing up multiple read replicas. Cockroach DB is "distributed SQL" so writes are also scaled across multiple nodes.
You can see some details about how this affects write perf in this blog by another distributed SQL database which compares the three databases (YugabyteDB, Aurora and CockroachDB) - https://blog.yugabyte.com/comparing-distributed-sql-performance-yugaby…
[1] There is also multi-master Aurora (but based on https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mu… that only supports 2 read-write masters and has other limitations).
rkarthik007 · 2020-05-04
Hi @catblast,
(I am the CTO of Yugabyte) Your points are all completely valid. Just wanted to add my 2 cents.
With YugabyteDB specifically, we are more than just PostgreSQL wire-compatible, we "reuse" the upper half of PostgreSQL to support almost all PG features (examples: stored procedures, triggers, partial functions, etc). So the aim is to build something that has "almost all PG features" while being able to "run cloud-native - with HA, scale and geo-distribution" - our hope is that this allows YugabyteDB to really become a viable option instead of PostgreSQL when apps are being built for the cloud. Here is a blog post on the benefits we realized reusing PostgreSQL: https://blog.yugabyte.com/why-we-built-yugabytedb-by-reusing-the-postg…
kmuthukk · 2019-09-18
This is due to a combination of factors-- the choice of implementation language (C++), a variety of enhancements to RocksDB, consistent reads from leaders (using leader leases) rather than doing a 3-way quorum read, etc. We discuss these aspects in more detail here:
[1] https://blog.yugabyte.com/how-we-built-a-high-performance-document-sto…
[2] https://blog.yugabyte.com/enhancing-rocksdb-for-speed-scale/
[3] https://blog.yugabyte.com/low-latency-reads-in-geo-distributed-sql-wit…
Nican · 2019-09-05
sidch · 2019-04-26
YugaByte DB product manager here. we have compared the Spanner and Calvin architectures in depth previously (https://blog.yugabyte.com/google-spanner-vs-calvin-global-consistency-… one key difference comes from the fact that Calvin’s deterministic locking protocol requires advance knowledge of all transactions’ read/write sets before transaction execution can begin -- this leads to repeated transaction restarts if the secondary index is on a column whose value is changing frequently as well as no support for client-initiated sessions transactions. in other words, Calvin is better suited for a transactional NoSQL database as opposed to a true distributed SQL database.
abadid · 2018-09-21
Looks like you cross-posted this comment here and on my blog, so I'll also cross-post in my response.
I am quite confused by your statement that YugaByte does not claim linearizability. The C of CAP is linearizability (see the original CAP theorem https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf). By claiming to be CP from CAP, you are claiming linearizability.
CockroachDB also makes the same CP claim. However, they explicitly walk back from this claim (https://www.cockroachlabs.com/blog/living-without-atomic-clocks/). In contrast, YugaByte documentation makes no effort to walk back from this claim. Rather, the documentation seems to indicate that YugaByte is linearizable at: https://blog.yugabyte.com/jepsen-testing-on-yugabyte-db-database/ and https://docs.yugabyte.com/latest/develop/learn/acid-transactions/.
Also, I would encourage you to read the Herlihy-Wing paper on linearizability published in 1990. You seem to be confusing linearizability with ACID isolation levels, which are actually a different concept. Peter Bailis has a good blog post on the difference: http://www.bailis.org/blog/linearizability-versus-serializability/.
On your third point, we agree. However, the point of my post is that relying on max clock skew without hardware support is dangerous. I’m going so far as to say that it’s so dangerous that it is incorrect to claim consistency guarantees when you make such assumptions.
I would really encourage YugaByte to consider using global…