Readyset is a MySQL and Postgres wire-compatible caching layer that sits in front of existing databases to speed up queries and horizontally scale read throughput. Under the hood, ReadySet caches the results of cached select statements and incrementally updates these results over time as the underlying data changes.
/// Enable experimental support for straddled joins (joins with partial keys traced to both
/// parents)
#[arg(long, env = "EXPERIMENTAL_STRADDLED_JOIN_SUPPORT", hide = true)]
pub enable_experimental_straddled_joins: bool,
this if used with a parameter, starts with enable and uses the word joins plural, if used as an ENV variable, this does not contain the word enable it uses the word join singular and has a _support in the end.
This is a problem because:
if we pass this as a parameter, it will complain if the parameter does not exists, however, if we are using readyset as a service, it uses the ENV and you will not know that you are using a wrong parameter until you try to cache a query that needs support for whatever you are trying to enable.
Currently changing those configurations require to re-create the whole readyset installation, meaning a new snapshot will take place
Description
Readyset support some experimental features, that are not enabled by default. The current list is https://github.com/readysettech/readyset/blob/stable-240627/readyset-server/src/lib.rs#L611-L636
Take for example straddle joins:
this if used with a parameter, starts with
enable
and uses the wordjoins
plural, if used as an ENV variable, this does not contain the wordenable
it uses the wordjoin
singular and has a_support
in the end.This is a problem because:
Change in user-visible behavior
Requires documentation change