Il secchio che perde acqua sa ancora limitare le richieste
Il leaky bucket misura quanto lavoro accettare e recupera capacità con il passare del tempo. Per farlo non serve un processo che svuoti davvero il contatore.
Che succede
Un secchio con un buco è un buon limitatore di richieste. Ogni operazione aggiunge acqua; il foro la lascia uscire a velocità costante. Finché c’è spazio si accetta lavoro, quando finisce lo si rifiuta. È il leaky bucket, un algoritmo che PlanetScale racconta partendo dagli antichi orologi ad acqua.
Il dettaglio elegante è che il software non deve stare a svuotarlo. Conserva soltanto il livello all’ultimo controllo e l’ora di quel controllo. Alla richiesta successiva sottrae quanto sarebbe uscito nel tempo trascorso, senza scendere sotto zero, e verifica se il nuovo lavoro ci stia.
Capacità e velocità di scarico hanno compiti diversi: la prima assorbe un picco, la seconda regola il ritmo sostenibile. E una richiesta complessa può costare più di una semplice, come nell’API GraphQL di Shopify. In questa versione il secchio decide subito se ammettere il lavoro; la variante usata come coda lo lascia invece in attesa di partire.
Perché conta
Assegnare un costo alle richieste permette di gestire insieme picchi brevi e operazioni di peso diverso.
Leggi la fonte
planetscale.comVuoi sapere di più su pillole come questa?
Nella stessa edizione
Redis prepara bitmap che non sprecano mezzo gigabyte per un solo bit
Per riaccendere una microVM in fretta, DigitalOcean carica meno memoria
Il secchio che perde acqua sa ancora limitare le richieste
Next.js ed Expo possono condividere i dati e tenersi le proprie app
Handwired scrive una rete neurale partendo dal programma
Quattro anni di Ludicon: codec scritti a mano e strumenti da costruire con l’AI
Stesso Chromium, un altro lavoro: da Google alla cooperativa Igalia
Cloudflare può controllare se una chiave è attiva prima di bloccarla
Il toolkit RevenueCat prepara acquisti e paywall. Il diff resta davanti a te
Stripe copia i dati dei pagamenti in Postgres, senza un altro mosaico di webhook
Un Supabase locale per ogni agente, senza contendersi il database
Per costruire Forum, Meta ha lasciato i prototipi fuori dalla build pubblica
Copilot tiene frontend e backend nella stessa discussione, anche su Slack e Teams
Prossima Pillola