Hi! I'm a student from CMU and I'm writing a brief introduction article about YugaByte DB. I'm wondering what join algorithms is YugaByte DB using currently? For example like Hash Join, Sort-Merge Join, Semi Join, etc. From the documentation I can find that only YSQL supports join operations but it doesn't mention how these operations are performed internally. Thanks for the help!
Hi, thanks for your interest in YugaByte DB. Our architecture largely relies on the existing Postgres optimizer and execution engine. Hence all the postgres join methods are available & the optimizer will pick the best one based on the query, available indexes and statistics. We plan to improve the accuracy of the statistics supplied by the YB layer to PG optimizer over time.
Also note that the system is primarily designed to support simple joins (for OLTP style queries). Over time we plan to enhance the optimizer to be more data partition aware and appropriately push down filtering etc. to the correct shards to minimize data movement.
Further details are at :- https://blog.yugabyte.com/ysql-architecture-implementing-distributed-postgresql-in-yugabyte-db/
That helps! Thank you so much!
Most helpful comment
That helps! Thank you so much!