Hi,
I'm designing an appliance (think: 24/7/365/decades) in which Postgres
will act as a "skin" on the sole persistent store. I.e., there is no
"filesystem" visible to clients; *all* persistent (and temporary/shared)
data is presented through Postgres.
There are three different types of data maintained in the RDBMS:
- static (firmware images, "reference" data, appliance configuration, etc)
- evolving (largely static but slowly evolving)
- transient (temp tables/joins, etc. built by cooperating groups of clients)
As this is an appliance, cost is important -- along with availability.
It's not acceptable to plan on a hardware upgrade in anything less than
a decade or more)
I would, ideally, like to tailor the media used for each type of (above)
data. E.g., QLC SSDs for static data, SLC SSDs (or HDDs) for evolving
and RAMdisks for transient.
Can I do this? And, would my "expectations" for the types of accesses
in each tablespace be intuitive? E.g., could I expect no/few WRITES
to the tablespace with the static data if I never call for it to be
explicitly updated?? (IIRC, Oracle allows a tablespace to be qualified
as "READ-ONLY" and implemented on true R/O media)
Or, does Postgres expect to be able to access any media however it wants
(i.e., R/w), regardless of the expected access patterns of the data stored
there?