Description
This would enable multi level routing as compared to the 2 level routing available as of now. On the usage bit, here's an example:
Document Id: myapp!dummyuser!doc
myapp!dummyuser! can be used as the shardkey for searching content for dummyuser.
myapp! can be used for searching across all users of myapp.
I am looking at either a 3 (or 4) level routing. The 32 bit hash would then comprise of 8X4 components from each part (in case of 4 level).
Usage:
Document Id: myapp!dummyuser!doc
To query all users for a particular app (default setup), the route key should be: 'myapp/8!'.
To query a particular user for a specific app, the route key should be: 'myapp!dummyuser!'
The syntax for querying all users for a particular app is required because this router works at both 2 and 3 level of composite id.
A route key of 'myapp!' would technically translate to constructing the hash range with 16 bits coming from the key i.e. 2-level composite id.