Sei nella sala operativa di uno switch di pagamento che sta tra esercenti ed emittenti di carte. Ogni minuto arrivano circa 400 transazioni al secondo; ognuna riceve un punteggio di frode, attende uno slot di connessione libero e viene inoltrata al suo emittente per una risposta. Il modello calcola code, timeout, retry dei client, il compromesso del filtro antifrode ed esposizione dello stand-in da formule di manuale. Gli importi sono in unità monetarie generiche (u). Solo simulazione didattica: non è consulenza finanziaria, legale o di investimento.
Cosa imparerai
Perché i retry possono bloccare uno switch sovraccarico in una retry storm anche dopo aver aggiunto capacità, e come il load shedding spezza il circolo.
Come una soglia del punteggio di frode bilancia le perdite da frode con i clienti onesti rifiutati e perché la soglia giusta dipende dal tasso di base delle frodi.
Come un solo emittente lento riempie tutti gli slot di connessione (legge di Little) e quanto costano timeout ed elaborazione in stand-in.
Simulatore
Tempo 0 min
▶Server in servizio
⚙Server in avvio
·Posizione libera nel rack dei server
✓Emittente che risponde normalmente
⌛Emittente lento o fuori servizio
⇄Elaborazione in stand-in attiva
•Transazioni in arrivo
Comandi
Ogni server ha 32 slot di connessione. I server aggiunti impiegano 5 minuti ad avviarsi; ogni server è fatturato, in avvio o no.
Ammette al massimo il 90 % della capacità e risponde subito all'eccesso con «riprova più tardi», invece di lasciarlo in coda a scadere per timeout.
Come gli esercenti ripetono un errore tecnico (fino a 3 tentativi). Immediato = entro il minuto successivo; backoff = backoff esponenziale casualizzato, ritardi medi di 1, 2 e 4 minuti.
Le transazioni con punteggio pari o superiore a questo valore vengono rifiutate. I punteggi sono in deviazioni standard del traffico genuino: più basso significa più frodi fermate e più clienti onesti rifiutati.
I punteggi così al di sotto della soglia ricevono una verifica aggiuntiva al cliente invece di una decisione: l'85 % dei clienti genuini la completa, il 5 % dei truffatori la supera. 0 = disattivato.
Quanto tempo uno slot di connessione attende la risposta dell'emittente. Poi lo switch invia uno storno e usa lo stand-in, oppure rifiuta con «emittente non disponibile».
Quando l'emittente non risponde in tempo, lo switch approva per suo conto fino a questo importo. Ogni approvazione in stand-in è un'esposizione che l'emittente non ha mai verificato. 0 = disattivato.
Indicatori
Tasso di approvazione dei clienti onesti
99,9%
normale
Tempo di autorizzazione
330ms
normale
Tasso di frode (quota dell'importo approvato)
10,4bp
normale
Slot di connessione occupati
69%
normale
Tasso di approvazione, emittenti sani
99,9 %
Clienti onesti rifiutati dalla regola antifrode
1,3 ‰
Transazioni inviate allo step-up
0,0 %
Frodi fermate
31 %
Nuove transazioni
400 tx/s
Carico offerto (nuove + retry)
400 tx/s
Retry
0 tx/s
Rifiutate (risposta «riprova più tardi»)
0 tx/s
Scartate in coda
0,0 %
Timeout degli emittenti
0,0 %
Approvazioni in stand-in
0 tx/s
Server in servizio
6
Server in avvio
0
Costo dei server per unità di tempo
36 u/h
Costo dei server finora
0 u
Esposizione dello stand-in
0,00 M u
Frodi approvate finora
0,00 M u
Transazioni valide perse finora
0,0 k tx
Transazioni in attesa di retry
0 tx
Latenza dell'emittente gruppo B (media)
250 ms
Andamento
Scenari di crisi
Livello 1 · Picco di traffico per i saldi
Un grande saldo online si apre al minuto 5 e raddoppia il traffico a circa 800 transazioni al secondo per 45 minuti. Lo switch ha 6 server, dimensionati per una giornata normale con circa il 70 % di occupazione. Gli esercenti ripetono subito ogni errore tecnico. Mantieni approvati i clienti onesti e le risposte veloci senza comprare capacità che non ti serve.
Approvazione media dei clienti onesti ≥ 95 % dall'inizio del saldo
Tempo medio di autorizzazione ≤ 500 ms
Costo dei server ≤ 75 u
Livello 2 · Ondata di frodi
Al minuto 5 inizia l'uso di un lotto di dati di carte rubate: la quota di frodi nel traffico passa dallo 0,1 % all'1 %. La soglia di rifiuto è impostata per i giorni normali (3σ) e lo step-up è disattivato. Riduci il tasso di frode senza respingere i clienti onesti.
Tasso medio di frode ≤ 25 bp
Approvazione media dei clienti onesti ≥ 98 %
Clienti onesti rifiutati dalla regola ≤ 5 ‰
Livello 3 · Guasto degli emittenti
Al minuto 5 gli emittenti del gruppo B, un quarto di tutto il traffico, rallentano a un tempo medio di risposta di 12 secondi. Lo switch attende fino a 8 s una risposta, non ha stand-in e ha 6 server. Mantieni fluidi i clienti degli emittenti sani, servi il gruppo B finché puoi farlo in sicurezza e tieni sotto controllo esposizione dello stand-in e costi.
Approvazione media dei clienti degli emittenti sani ≥ 90 %
Approvazione media dei clienti onesti ≥ 86 %
Esposizione dello stand-in ≤ 9 M u
Costo dei server ≤ 65 u
Base: il modello dietro i numeri
Ogni relazione usata dal simulatore, con la sua fonte. Le costanti indicate come ipotesi sono tarature illustrative.
Le nuove transazioni arrivano a un tasso di base moltiplicato per l'impennata delle vendite; il conteggio al minuto è casuale (Poisson, approssimazione normale) con un po' di burstiness.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Ipotesi: numero di slot, tempi di servizio e dell'emittente, separazione dei punteggi, tassi di superamento dello step-up, quota di lavoro sprecato, importi e prezzi sono valori illustrativi per uno switch di medie dimensioni, non dati di una rete reale.
Punteggio di frode binormale: i punteggi genuini e di frode sono due curve normali a distanza d′; la soglia sceglie un punto sulla curva ROC.
genuine score ~ N(0,1), fraud ~ N(d′,1), d′ = 2.5; FPR(t) = 1 − Φ(t), TPR(t) = 1 − Φ(t − d′); AUC = Φ(d′/√2) ≈ 0.96[6][7]Ipotesi: numero di slot, tempi di servizio e dell'emittente, separazione dei punteggi, tassi di superamento dello step-up, quota di lavoro sprecato, importi e prezzi sono valori illustrativi per uno switch di medie dimensioni, non dati di una rete reale.
Soglia ottimale per costo: rifiuta quando il rapporto di verosimiglianza supera il rapporto dei costi pesato per il tasso di base; con dieci volte più frodi la soglia scende di ln 10 / d′ ≈ 0,9σ.
Step-up: i punteggi nella fascia sotto la soglia vengono sottoposti a verifica invece di essere decisi.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Ipotesi: numero di slot, tempi di servizio e dell'emittente, separazione dei punteggi, tassi di superamento dello step-up, quota di lavoro sprecato, importi e prezzi sono valori illustrativi per uno switch di medie dimensioni, non dati di una rete reale.
La latenza dell'emittente è esponenziale; uno slot è occupato per la latenza o per il timeout, a seconda di quale arriva prima.
L ~ Exp(mean m); E[min(L, T)] = m(1 − e^(−T/m)), P(L > T) = e^(−T/m); S = 80 ms + forwarded × Σ share·E[min(L,T)][2][9]
Legge di Little: slot occupati = tasso di arrivo × tempo di occupazione.
Erlang C: la probabilità che una transazione attenda uno slot libero e la probabilità che attenda più del timeout di coda di 2 s.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Oltre la capacità lo switch spende lavoro anche su richieste che scarta in seguito, quindi il throughput utile cala all'aumentare del carico; il load shedding rifiuta l'eccesso a basso costo.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Ipotesi: numero di slot, tempi di servizio e dell'emittente, separazione dei punteggi, tassi di superamento dello step-up, quota di lavoro sprecato, importi e prezzi sono valori illustrativi per uno switch di medie dimensioni, non dati di una rete reale.
Retry dei client: ogni errore tecnico viene ripetuto fino a tre volte, subito o con backoff esponenziale casualizzato.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Ipotesi: numero di slot, tempi di servizio e dell'emittente, separazione dei punteggi, tassi di superamento dello step-up, quota di lavoro sprecato, importi e prezzi sono valori illustrativi per uno switch di medie dimensioni, non dati di una rete reale.
Timeout dell'emittente, storno e stand-in: gli importi sono lognormali, quindi la quota sotto il limite e il volume approvato derivano dalla funzione di ripartizione normale.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Tasso di frode in punti base dell'importo approvato; 13 bp è usato come scala di riferimento per i piccoli pagamenti con carta a distanza.
32 slots per server, 2–24 servers, +5 min boot, 6 u per server-hour · switch time 80 ms · queue timeout 2 s · issuer latency 250 ms (group B = 25 % of traffic, ±15 % per minute) · amounts lognormal, median 40 u, σ = 1, fraud ×1.5 · ω = 0.3 · shedding at 90 % · reversal = 80 ms of switch timeIpotesi: numero di slot, tempi di servizio e dell'emittente, separazione dei punteggi, tassi di superamento dello step-up, quota di lavoro sprecato, importi e prezzi sono valori illustrativi per uno switch di medie dimensioni, non dati di una rete reale.
Casualità: un generatore mulberry32 con seed; distribuzioni usate: uniforme, esponenziale (CDF inversa), normale (Box–Muller), Poisson (Knuth). Il seed è mostrato e condivisibile.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013