silverlyra
Joined 8 years ago
Joined 8 years ago
after smart money then moves to predicting the period of the oscillations, …
RetryKV implements the KV methods by delegating to the underlying client. But before it delegates an immutable request (e.g., range), it sets the request retry policy to repeatable [3].
Retries are implemented with a gRPC interceptor, which checks the retry policy when deciding whether a request should be retried [4].
The Jepsen writeup says a client can retry a request when “the client can prove the first request could never execute, or that the request is idempotent”. In my (cold) read of the code, the Go client stays within those bounds.
For non-idempotent requests, the Go client only retries when it knows the request was never sent in the first place [5]. For idempotent requests, any response with gRPC status unavailable will be retried [6].
Unlike jetcd, the Go client’s retry behavior is safe.
[1] https://github.com/etcd-io/etcd/blob/main/client/v3/kv.go#L9... [2] https://github.com/etcd-io/etcd/blob/main/client/v3/retry.go... [3] https://github.com/etcd-io/etcd/blob/main/client/v3/retry_in... [4] https://github.com/etcd-io/etcd/blob/main/client/v3/retry_in... [5] https://github.com/etcd-io/etcd/blob/main/client/v3/retry.go... [6] https://github.com/etcd-io/etcd/blob/main/client/v3/retry.go...
You could (e.g.) annotate all key fields as IDENTIFIERs. Client code can assume those will always be set in server responses, but are optional when making an RPC request to create that resource.
(This may just work in theory, though – I’m not sure which code generators have good support for field_behavior.)
Location: San Francisco Bay Area (Oakland)
Remote: yes
Willing to relocate: no
Technologies: Rust, Go, TypeScript, Kubernetes, AWS, Terraform, GraphQL
Résumé/CV: https://lyra.engineer/resume.pdf
Github: https://github.com/silverlyra
Email: lyra+hn [at] omg.lol
I'm an experienced infrastructure and full-stack engineer. Over my time working at Medium, I led the redevelopment of its production environment, migrating the whole site and all services onto Kubernetes, and facilitating safe continuous deployment for all engineering teams.
I can serve as a tech lead of a team or a project, working across a company to get things done, and also as a staff+-level IC in smaller companies or greenfield projects.But I don't know of any other way this would happen.
When you create a Worker with the worker_threads module, Node spawns a new V8 isolate in the same process: https://github.com/nodejs/node/blob/v20.12.1/src/node_worker...
It’s much more isolation than C threads – the entry point for a thread is a whole module (not a function), and threads must use message passing to communicate. They can share memory, but only via [Shared]ArrayBuffer objects. They're in the same OS process, but each have their own global process object.
But I think it'd meet your need for an in-process isolated execution environment, which you can terminate from the main thread after a timeout.
They did build out fast charging – but at some locations, the local electric utility couldn't support it:
> While the company had installed its own charging network as part of the electrification push that started in 2021, some older airports, such as New Jersey’s Newark, don’t get enough power from the electricity grid or lack the infrastructure to support the number of so-called Superchargers that Hertz needed to get EVs back on the road in a half-hour or less. Once a Tesla was returned to those locations, Hertz employees often had to drive them for miles to find a Supercharger[…]
The image of Hertz staff driving around Jersey, searching for an open supercharger any time a Tesla needed a fast turnaround … tragicomedy.
I would think that only a gradual pilot rollout of Tesla rentals could have saved this from getting out of hand. Instead they ordered 100,000 full-price Teslas, and congratulated themselves on getting a lock on a market … a market which proved to be much smaller and more expensive to serve than they'd imagined.
curl -sL https://github.com/backblaze-b2-samples/cloudflare-b2/raw/main/README.md | head -n 1
# Cloudflare Worker for Backblaze B2
yes, it's a worker Location: San Francisco Bay Area (Oakland)
Remote: yes
Willing to relocate: no
Technologies: Rust, Go, TypeScript, Kubernetes, AWS, Terraform, GraphQL
Résumé/CV: https://lyra.engineer/resume.pdf
Github: https://github.com/silverlyra
Email: lyra+hn [at] omg.lol
I'm an experienced infrastructure and full-stack engineer. Over my time working at Medium, I led the redevelopment of its production environment, migrating the whole site and all services onto Kubernetes, and facilitating safe continuous deployment for all engineering teams.I can serve as a tech lead of a team or a project, working across a company to get things done, and also as a staff+-level IC in smaller companies or greenfield projects.
it sounds ironic, but much of the shift to suburban development patterns in the USA was indeed driven by the Great Migration into cities – specifically, the migration of formerly-enslaved Black Americans out of the rural south and into cities. US public policy was very explicit about disinvesting in cities and destroying vibrant urban neighborhoods, replacing them with freeways and parking lots.
today, large portions of US cities are zoned for exclusively single-family homes, and other zoning requirements like parking minimums, and minimum setback and lot sizes continue to slow urban, transit-oriented redevelopment.
my high school made sure I knew how to use both a band saw and a stand mixer; why not a courtroom? that's a systemic failure we could yet address
I would love for this thread to accomplish something other than meta rifraff, so — I’ve never worked as an Apple Store floor sales person, but:
> In the 90's, a USB cable was just four braided wires – literal copper wires which link copper pins in your [computer] with your [printer]. Two of them carried the data, and the other carried power and ground. This worked, and it was an affordable, easy-to-implement standard which spread like dandelion seeds on the wind.
> Now in the 2020's, we have USB-C. Have you ever had a kind of “friend” who tries to be “everything to everyone“? Well, that‘s USB-C.
> We fixed some things with USB A and mini – er, micro – B, like how hard they were to plug in, and how you invariably seemed to find yourself holding them upside down more than 50% of the time!
> And, well, engineers being engineers, and USB standing for universal serial bus, we tried to also solve all other problems at the same time. Like you couldn’t use a USB cable for video, or to power an air fryer.
> So, these days, USB cables are more than braids of copper wire. They are “active” cables! meaning they have a microchip inside. Even our cables became little computers.
> And we kept backwards compatibility with USB, so that if you use a plug adapter, you can take an original 90’s USB mouse and plug it right into your brand new iPhone n±1!
> Or nowadays, you might grab the wrong cable in your kitchen, and plug your toaster oven into your iPhone. yikes! I know you came in to the store today with a simple-seeming question, and we’ve been standing here now for minutes, and I apologize – but now I hope I can answer your question about why this cable isn’t recognized by your new phone.
> When an active cable is plugged in, the chip inside the cable “negotiates” with the chip inside the device. For a device you hold in your hand and use without thinking about it, like your phone, we have made the negotiator more stringent than we did in our tablet. :)
[email protected]