News for hackers. Stuff that matters.
Re:Introducing Workers KV by kloepper on Friday September 28, 2018 @10:23AM (#18093580)
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.
Re:Introducing Workers KV by zzzcpan on Friday September 28, 2018 @10:30AM (#18093642)
So 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.
Re:Introducing Workers KV by kentonv on Friday September 28, 2018 @10:35AM (#18093685)
Indeed. 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.
Re:Introducing Workers KV by _pmf_ on Friday September 28, 2018 @03:02PM (#18096100)
OT: we need to read more about your website-in-kv-thingy setup.
Re:Introducing Workers KV by kentonv on Friday September 28, 2018 @04:30PM (#18096787)
It 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. :)

Re:Introducing Workers KV by kloepper on Friday September 28, 2018 @10:35AM (#18093689)
Yes, that is one of the models we have been considering.
Re:Introducing Workers KV by falcolas on Friday September 28, 2018 @11:02AM (#18093922)
So, 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?

Re:Introducing Workers KV by zackbloom on Friday September 28, 2018 @11:21AM (#18094110)
One 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.

Re:Introducing Workers KV by zzzcpan on Friday September 28, 2018 @11:11AM (#18094002)
Rate limiting doesn't have to be coordinated to work. But you do need a PN-Counter, which they are only considering at this point.
Re:Introducing Workers KV by falcolas on Friday September 28, 2018 @11:22AM (#18094117)
A 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).
Re:Introducing Workers KV by zzzcpan on Friday September 28, 2018 @12:41PM (#18094773)
PN-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.