SQLite has no compression support, MySQL/MariaDB have page-level compression which doesn't work great and I've never seen anyone enable in production, and Postgres has per-value compression which is good for extremely long strings, but useless for short ones.
There are just so many string columns where values and substrings get repeated so much, whether you're storing names, URL's, or just regular text. And I have databases I know would be reduced in size by at least half.
Is it just really really hard to maintain a shared dictionary when constantly adding and deleting values? Is there just no established reference algorithm for it?
It still seems like it would be worth it even if it were something you had to manually set. E.g. wait until your table has 100,000 values, build a dictionary from those, and the dictionary is set in stone and used for the next 10,000,000 rows too unless you rebuild it in the future (which would be an expensive operation).
Global column dictionary has more complexity than normal. Now you are touching more pages than just the index pages and data page. The dictionary entries are sorted, so you need to worry about page expansion and contraction. They sidestep the problems by making it immutable, presumably building it up front by scanning all the data.
Not sure why using FSST is better than using a standard compression algorithm to compress the dictionary entries.
Storing the strings themselves as dictionary IDs is a good idea, as they can be processed quickly with SIMD.
It's very popular in Germany, with several million units installed. They call it balcony solar panel. People hang the panels on their balconies in apartment buildings. Germany allows up to 800-watt systems.
It's a very simple system, a solar panel coupled with a micro inverter that converts DC to AC power. It is plugged into a regular wall outlet to provide additional power to the home. The added power is an additional source of electricity in addition to the grid. Any electrical devices drawing power from the circuit draw from the closet source first (due to Kirchhoff's Law), i.e. from the solar panel, then any additional need will be drawn from the farther away grid.
The micro inverter needs to be UL 16741 compliant for anti-islanding protection, to shut off in case the grid has shut power down, so that the solar panel won't back feed power into the grid.
In U.S., Utah has already passed a law to allow plug-in solar systems for up to 1200 watts without permit requirement and allowing back-feed into the grid. A few other states are considering.
There are limits to the power fed into a circuit. Normal household electrical wire can handle up to 15amp (1800 watts on 120V) of electric load. The plug-in power from the solar panels should not exceed the limit. This means the power generated is meant to supplement the household power need rather than completely covering it. Any reduction from the grid helps.
I talked to my city's (in California) building department. They haven't heard of it and need time to do research. The building inspector says that as long as the solar panels are not modifying the structure of the building (on roof or on wall), they don't care. They said putting the panels on the ground in the yard is fine.