Netflix / ocelli

Apache License 2.0
53 stars 28 forks source link

Redundant data requests with redundant response cancellation #76

Open futurely opened 9 years ago

futurely commented 9 years ago

The patent “Redundant data requests with redundant response cancellation” of Jeffrey A. Dean from Google proposed a method to reduce the average response time. Does that method fit into this project?

elandau commented 9 years ago

Yes. Ocelli was designed specifically to allow for such approaches to be easily implemented. The Executor contract was created for that purpose. We do have an implementation that is very similar to this: https://github.com/Netflix/ocelli/blob/master/ocelli-core/src/main/java/netflix/ocelli/executor/BackupExecutor.java

futurely commented 9 years ago

What are the differences and how to fully implement his method?

By the way, it seems that the default limiter always returns true and can't avoid extra backup requests.

elandau commented 9 years ago

I haven't read through the patent but I believe one of the key differences is that our approach waits for an expected response time before issuing a redundant request whereas the approach at Google is to duplicate the request from the beginning.

The default limiter behavior is by design. We are still trying out different methods for restricting excessive backup requests during system wide latency spikes.