Talking to the right shard
In this chapter, we have chosen to represent database shards as PostgreSQL schema names. So, if our basic schema is named myapp
, shard 1 would be myapp1
, shard 15 would be myapp15
, and so on. This is what we call the logical shard name.
Beyond this, shards should be independent of each other such that they can be relocated to another PostgreSQL server arbitrarily. However, if shards can be moved at will, how do we find them? Much like LVM has a physical drive, logical shards have a corresponding physical shard. The physical shard is the server where the logical shard currently resides. Think of it like this diagram:
Elements such as clients
, products
, and vendors
are shared resources that all PostgreSQL shard servers can use. This is where our foreign tables would be beneficial. The logical shards (schemas) myapp1
through myapp4
all reside on PG Server 1
, and myapp5
through myapp8
live on PG Server 2
. In this architecture, we have eight logical shards distributed...