3 ms·
Last write wins. There are several features for controlling consistency that we have been prototyping. Based on how storage is used we will enable those as the
by kloepper 8y ago
Last write wins. There are several features for controlling consistency that we have been prototyping. Based on how storage is used we will enable those as the product matures.
- zzzcpan 8y agoSo why not strong eventual consistency and CRDTs? As they fit perfectly for such functions running on edge nodes and no silly limitations of 1 write per second necessary.
- kentonv 8y agoIndeed. This is just stage 1 of our storage plans. We have some really cool stuff in the works but we wanted to get basic KV functionality out there for people to start using ASAP.
- _pmf_ 8y agoOT: we need to read more about your website-in-kv-thingy setup.
- kentonv 8y agoIt was pretty trivial. I just stored each page into a value and served them out of there, with some stupid code to infer content-type from file extension. I meant it as a dumb demo because I wasn't feeling creative. I didn't know John would mention it in his blog. :) Currently this isn't a great way to serve content because the values are limited to 64k, you have to infer content-type (which makes your URLs ugly), etc. So I don't recommend it. We'll come up with something better in the future. :)
- kloepper 8y agoYes, that is one of the models we have been considering.
- falcolas 8y agoSo, with a global consistency window of 10s, and 1 write per second, would consistency ever be reached if a key is written to every second? What value would be visible? One great example of why this would matter to me - could workers ever institute a coordinated rate limiting function using this KV store?
- zackbloom 8y agoOne thing to remember is you have at least two other ways of storing values. Each worker has global memory which persists between invocations (local, atomic), and you have access to the Cache API (per-data center, ephemeral). By combining those with KV to do global coordination on a more course time scale, I think you could.
- zzzcpan 8y agoRate limiting doesn't have to be coordinated to work. But you do need a PN-Counter, which they are only considering at this point.
- falcolas 8y agoA PN-Counter is a method of coordination. And if the writes were coordinated with the consistency time, that would be sufficient to implement consistent counters (or even a naive counter in a store given atomic operatons).
- zzzcpan 8y agoPN-Counter is coordination-free counter, it can't be used as a method of coordination. But it's ok for global rate limiting, as it doesn't have to guarantee exact rate at any point in time, as long as it eventually averages on specified rate.