I'm looking for a database that achieves the following:
- fully ACID.
- relational with joins.
- has transactions.
- allows the administrator to specify sharding rules (for example: users from Europe should be located in the european data center).
- the toughest requirement: upon network partition, like two datacenters disconnected from each other, each datacenter should be able to read and write to the nodes in it. Basically, I'm willing to sacrifice partial availability to partition tolerance. Sadly, most solutions will stall all reads and writes in case of a split-brain. (thus, preferring availability over partition tolerance)
I prefer an open source solution but willing to consider proprietary solutions as well.