3 ms·
Zanzibar has a notion of «User sets» to allow expressing conditions such as «File X can be viewed by (all users who can view Folder Y)» to avoid too much duplic
by wereHamster 5y ago
Zanzibar has a notion of «User sets» to allow expressing conditions such as «File X can be viewed by (all users who can view Folder Y)» to avoid too much duplication in the rule sets. One challenge they had was to make resolving these rules not too slow, since that forms basically a graph (= graph traversal)
- kache_ 5y agoReading the Zanzibar paper is actually how I learned about how powerful of an optimization technique denormalization could be
- ogazitt 5y agoIt's definitely a good paper :) Denormalization has been around since Date/Codd invented 6NF and relational databases, and then we all realized that most applications have to precompute some joins in order to execute in a performant fashion. In SQL Server we used to call them "materialized views".
- ogazitt 5y agoYes, flattening the graph is essential to getting reasonable performance. A separate (difficult) problem is to keep all the tuple data consistent with the data in your store (often these contain duplicate info).