Comments (2)
Here's an excerpt from the Zanzibar paper:
Zanzibar’s distributed processing requires measures to accommodate slow tasks. For calls to Spanner and to the Leopard index we rely on request hedging (i.e. we send the same request to multiple servers, use whichever response comes back first, and cancel the other requests). To reduce round-trip times, we try to place at least two replicas of these backend services in every geographical region where we have Zanzibar servers. To avoid unnecessarily multiplying load, we first send one request and defer sending hedged requests until the initial request is known to be slow.
To determine the appropriate hedging delay threshold, each server maintains a delay estimator that dynamically computes an Nth percentile latency based on recent measurements. This mechanism allows us to limit the additional traffic incurred by hedging to a small fraction of total traffic.
Effective hedging requires the requests to have similar costs. In the case of Zanzibar’s authorization checks, some checks are inherently more time-consuming than others because they require more work. Hedging check requests would result in duplicating the most expensive workloads and, ironically, worsening latency. Therefore we do not hedge requests between Zanzibar servers, but rely on the previously discussed sharding among multiple replicas and on monitoring mechanisms to detect and avoid slow servers
from spicedb.
Changed the title, the paper has this to say explicitly about hedging redisaptch:
In the case of Zanzibar’s authorization checks, some checks are inherently more time-consuming than others be- cause they require more work. Hedging check requests would result in duplicating the most expensive workloads and, ironically, worsening latency. Therefore we do not hedge requests between Zanzibar servers, but rely on the pre- viously discussed sharding among multiple replicas and on monitoring mechanisms to detect and avoid slow servers.
from spicedb.
Related Issues (20)
- OptionalConcreteLimit and OptionalCursor on LookupSubjects doesn't work. HOT 2
- Proposal: Support ABAC dynamically without hard code criteria in relation caveat, or provide caveat context in authn call HOT 8
- Proposal: Health check endpoint for HTTP API HOT 5
- Return Evaluated Caveat Context
- Add ability to toggle certain schema warnings off
- Evaluate replacing ristretto with theine-go
- support normalization of caveat context data
- --datastore-bootstrap-overwrite is additive, not overwriting previous namespaces HOT 5
- v1.34.0 Segfault on ReadRelationships before WriteSchema when using memstore HOT 9
- Unnecessary COALESCE Used
- Maybe a bug or not! Spicedb connect to Pgbouncer report error "prepared statement name is already in use (SQLSTATE 08P01)" HOT 2
- Schema Change Events via Watch API
- wildcard support HOT 4
- Would it be possible to use SpiceDB with sqlite/libsql? HOT 1
- failed to create datastore: failed to load bootstrap files: could not lookup caveat
- SpiceDB version middleware not enabled in `serve-testing` mode
- GOMAXPROCS, GOMEMLIMIT logs emitted on all CLI commands HOT 2
- It would be nice if by specifying some relation we could use it as indirect inverse relation in schema as well HOT 1
- Getting a duplicated transaction exists when trying to do a write request HOT 2
- Add external support for streaming relationships into and out of SpiceDB
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spicedb.