Finance — operacije plačil Model v živo

Delate na operativnem pultu plačilnega stikala, ki stoji med trgovci in izdajatelji kartic. Vsako minuto prispe okoli 400 transakcij na sekundo; vsaka dobi rezultat goljufije, čaka na prost vtič povezave in se posreduje izdajatelju za odgovor. Model izračuna čakalne vrste, časovne omejitve, ponovne poskuse odjemalcev, kompromis protigoljufivega filtra in izpostavljenost nadomestnega odobravanja iz učbeniških formul. Zneski so v splošnih denarnih enotah (u). Samo izobraževalna simulacija — ni finančni, pravni ali naložbeni nasvet.

Kaj se boste naučili

Simulator

Čas 0 min
Ponujena obremenitev (nove + ponovni poskusi) 400 · Ponovni poskusi 0 · Stopnja odobritve dobrih strank 99,9% · Čas avtorizacije 330 ms · Zasedeni vtiči povezav 69% · Strežniki v obratovanju 6 (+0) · Stopnja goljufij (delež odobrenega zneska) 10,4 bp · Potekle časovne omejitve izdajateljev 0,0% · Izpostavljenost nadomestne odobritve 0,00 M uProtigoljufivi filtert = 3,00σ✓ 99,9% · ? 0,0% · ✗ 0,1%Ustavljena goljufija 31%Stopnja goljufij (deležodobrenega zneska) 10,4 bp400 tx/s · ↻ 0Avtorizacijski strežniki▶▶▶▶▶▶··················Zasedeni vtiči povezav 69%330 ms · ✗ 0,0%Izdajatelji A✓ 250 msIzdajatelji B✓ 250 ms⏱ 8 s · ⌛ 0,0% · Σ 0 uStopnja odobritve dobrih strank 99,9%Izpostavljenost nadomestne odobritve 0,00 M u
  • Strežnik v obratovanju
  • Strežnik se zaganja
  • Prosto mesto v omari strežnikov
  • Izdajatelj odgovarja normalno
  • Izdajatelj počasen ali izpadel
  • Nadomestna obdelava vklopljena
  • Dohodne transakcije

Kontrole

Vsak strežnik ima 32 vtičev povezav. Dodani strežniki se zaganjajo 5 minut; zaračuna se vsak strežnik, ne glede na to, ali se zaganja ali ne.

Sprejme največ 90 % zmogljivosti in presežek takoj zavrne z »poskusite pozneje«, namesto da bi ga pustil čakati v vrsti in poteči.

Kako trgovci ponovijo tehnično napako (do 3 ponovni poskusi). Takoj = v naslednji minuti; odlašanje = naključno eksponentno odlašanje, povprečni zamiki 1, 2 in 4 minute.

Transakcije z rezultatom na ali nad tem pragom se zavrnejo. Rezultati so v standardnih odklonih zakonitega prometa: nižje pomeni več ustavljene goljufije in več zavrnjenih dobrih strank.

Rezultati, ki so toliko pod pragom, dobijo dodaten izziv za stranko namesto odločitve: 85 % pravih strank ga dokonča, 5 % goljufov ga opravi. 0 = izklopljeno.

Kako dolgo vtič povezave čaka na odgovor izdajatelja. Nato stikalo pošlje preklic in uporabi nadomestno odobritev (stand-in) ali zavrne z »izdajatelj ni na voljo«.

Ko izdajatelj ne odgovori pravočasno, stikalo v njegovem imenu odobri do tega zneska. Vsaka nadomestna odobritev je izpostavljenost, ki je izdajatelj nikoli ni preveril. 0 = izklopljeno.

Kazalniki

Stopnja odobritve dobrih strank
99,9%
običajno
Čas avtorizacije
330ms
običajno
Stopnja goljufij (delež odobrenega zneska)
10,4bp
običajno
Zasedeni vtiči povezav
69%
običajno
Stopnja odobritve, zdravi izdajatelji99,9 %
Dobre stranke, zavrnjene s pravilom goljufije1,3 ‰
Transakcije, poslane na dodatno preverjanje0,0 %
Ustavljena goljufija31 %
Nove transakcije400 tx/s
Ponujena obremenitev (nove + ponovni poskusi)400 tx/s
Ponovni poskusi0 tx/s
Zavrženo (odgovor »poskusite pozneje«)0 tx/s
Zavrženo v vrsti0,0 %
Potekle časovne omejitve izdajateljev0,0 %
Nadomestne odobritve0 tx/s
Strežniki v obratovanju6
Strežniki se zaganjajo0
Hitrost stroškov strežnikov36 u/h
Dosedanji stroški strežnikov0 u
Izpostavljenost nadomestne odobritve0,00 M u
Doslej odobrena goljufija0,00 M u
Doslej izgubljene dobre transakcije0,0 k tx
Transakcije, ki čakajo na ponovni poskus0 tx
Zakasnitev skupine izdajateljev B (povprečje)250 ms

Trend

Stopnja odobritve dobrih strank: — %100,00,0

Krizni scenariji

Stopnja 1 · Konica razprodaje

Velika spletna razprodaja se odpre v 5. minuti in podvoji promet na okoli 800 transakcij na sekundo za 45 minut. Stikalo teče na 6 strežnikih, dimenzioniranih za običajen dan z okoli 70-odstotno zasedenostjo. Trgovci vsako tehnično napako takoj ponovijo. Obdržite dobre stranke odobrene in odgovore hitre, ne da bi kupovali zmogljivost, ki je ne potrebujete.

  • Povprečna odobritev dobrih strank ≥ 95 % od začetka razprodaje
  • Povprečni čas avtorizacije ≤ 500 ms
  • Stroški strežnikov ≤ 75 u

Stopnja 2 · Val goljufij

V 5. minuti se začne uporabljati serija ukradenih podatkov kartic: delež goljufij v prometu skoči z 0,1 % na 1 %. Prag zavrnitve je nastavljen za običajne dni (3σ), dodatno preverjanje pa je izklopljeno. Znižajte stopnjo goljufij, ne da bi zavračali dobre stranke.

  • Povprečna stopnja goljufij ≤ 25 bt
  • Povprečna odobritev dobrih strank ≥ 98 %
  • Dobre stranke, zavrnjene s pravilom ≤ 5 ‰

Stopnja 3 · Izpad izdajateljev

V 5. minuti se izdajatelji skupine B — četrtina vsega prometa — upočasnijo na povprečni čas odgovora 12 sekund. Stikalo čaka na odgovor do 8 s, nima nadomestne odobritve in teče na 6 strežnikih. Ohranite pretok strank zdravih izdajateljev, skupino B obravnavajte, kolikor je varno, in izpostavljenost nadomestne odobritve ter stroške obdržite pod nadzorom.

  • Povprečna odobritev strank zdravih izdajateljev ≥ 90 %
  • Povprečna odobritev dobrih strank ≥ 86 %
  • Izpostavljenost nadomestne odobritve ≤ 9 M u
  • Stroški strežnikov ≤ 65 u

Osnova – model za številkami

Vsaka zveza, ki jo simulator uporablja, z virom. Konstante, označene kot predpostavke, so ilustrativne umeritve.

Nove transakcije prihajajo z osnovno hitrostjo krat porast prodaje; število na minuto je naključno (Poisson, normalna aproksimacija) z nekaj sunkovitosti.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Predpostavka: števila vtičev, strežni časi in časi izdajateljev, ločitev rezultatov, deleži uspešnosti dodatnega preverjanja, delež zaman porabljenega dela, zneski in cene so ponazoritvene vrednosti za stikalo srednje velikosti, ne podatki katerega koli resničnega omrežja.
Binormalni rezultat goljufije: rezultati zakonitih in goljufivih transakcij sta dve normalni krivulji, oddaljeni za d′; prag izbere točko na krivulji 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]Predpostavka: števila vtičev, strežni časi in časi izdajateljev, ločitev rezultatov, deleži uspešnosti dodatnega preverjanja, delež zaman porabljenega dela, zneski in cene so ponazoritvene vrednosti za stikalo srednje velikosti, ne podatki katerega koli resničnega omrežja.
Stroškovno optimalni prag: zavrni, ko razmerje verjetij preseže razmerje stroškov, uteženo z osnovno stopnjo — desetkrat pogostejša goljufija ga premakne ln 10 / d′ ≈ 0,9σ niže.
decline when e^(d′x − d′²/2) ≥ (1 − π)·c_FP / (π·c_FN) ⇒ t* = [ln((1 − π)c_FP/(π c_FN)) + d′²/2] / d′[8][7]
Dodatno preverjanje: rezultati v pasu pod pragom so izzvani namesto odločeni.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Predpostavka: števila vtičev, strežni časi in časi izdajateljev, ločitev rezultatov, deleži uspešnosti dodatnega preverjanja, delež zaman porabljenega dela, zneski in cene so ponazoritvene vrednosti za stikalo srednje velikosti, ne podatki katerega koli resničnega omrežja.
Zakasnitev izdajatelja je eksponentna; vtič je zaseden toliko časa kot zakasnitev ali časovna omejitev, kar nastopi prej.
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]
Littlov zakon: zasedeni vtiči = hitrost prihodov × čas zasedenosti.
busy slots = λ·S (Little) ⇒ utilization = λ·S / (32 × servers)[3]
Erlang C: verjetnost, da transakcija čaka na prost vtič, in verjetnost, da čaka dlje od 2-sekundne časovne omejitve vrste.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Nad zmogljivostjo stikalo porabi delo tudi za zahteve, ki jih pozneje zavrže, zato koristna prepustnost z rastočo obremenitvijo pada; odlaganje obremenitve presežek zavrne poceni.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Predpostavka: števila vtičev, strežni časi in časi izdajateljev, ločitev rezultatov, deleži uspešnosti dodatnega preverjanja, delež zaman porabljenega dela, zneski in cene so ponazoritvene vrednosti za stikalo srednje velikosti, ne podatki katerega koli resničnega omrežja.
Ponovni poskusi odjemalca: vsaka tehnična napaka se ponovi do trikrat, takoj ali z naključnim eksponentnim odlašanjem.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Predpostavka: števila vtičev, strežni časi in časi izdajateljev, ločitev rezultatov, deleži uspešnosti dodatnega preverjanja, delež zaman porabljenega dela, zneski in cene so ponazoritvene vrednosti za stikalo srednje velikosti, ne podatki katerega koli resničnega omrežja.
Časovna omejitev izdajatelja, preklic in nadomestna odobritev: zneski so lognormalni, zato delež pod mejo in odobreni obseg sledita iz normalne porazdelitvene funkcije.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Stopnja goljufij v bazičnih točkah odobrenega zneska; 13 bt se uporablja kot referenčna lestvica za majhna oddaljena plačila s karticami.
fraud rate = approved fraud amount / approved amount × 10,000 bp (reference scale: 13 bp)[10]
Druge obratovalne konstante, ki jih uporablja model.
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 timePredpostavka: števila vtičev, strežni časi in časi izdajateljev, ločitev rezultatov, deleži uspešnosti dodatnega preverjanja, delež zaman porabljenega dela, zneski in cene so ponazoritvene vrednosti za stikalo srednje velikosti, ne podatki katerega koli resničnega omrežja.

Naključnost: generator mulberry32 s semenom; uporabljene porazdelitve – enakomerna, eksponentna (inverzna CDF), normalna (Box–Muller), Poissonova (Knuth). Seme je prikazano in ga je mogoče deliti.

Viri

  1. Teletraffic Engineering Handbook — Erlang C formula; waiting-time distribution for M/M/n, FCFS — ITU-D Study Group 2 Question 16/2 (V. B. Iversen), 2005
  2. M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013
  3. J. D. C. Little — A Proof for the Queuing Formula: L = λW — Operations Research 9(3):383–387, 1961
  4. Site Reliability Engineering — Ch. 22 Addressing Cascading Failures (retries, randomized exponential backoff, load shedding, work on requests past their deadline) — Beyer, Jones, Petoff, Murphy (eds.), O'Reilly, 2016
  5. N. Bronson, A. Aghayev, A. Charapko, T. Zhu — Metastable Failures in Distributed Systems — HotOS ’21, ACM, 2021
  6. T. Fawcett — An introduction to ROC analysis — Pattern Recognition Letters 27(8):861–874, 2006
  7. R. J. Bolton, D. J. Hand — Statistical Fraud Detection: A Review — Statistical Science 17(3):235–255, 2002
  8. C. Elkan — The Foundations of Cost-Sensitive Learning — IJCAI 2001, 2001
  9. ISO 8583-1:2003 Financial transaction card originated messages — Interchange message specifications — Part 1 (authorization, reversal messages) — ISO/TC 68/SC 9, 2003
  10. Commission Delegated Regulation (EU) 2018/389 — RTS on strong customer authentication, Annex: reference fraud rates (0.13 % for remote card payments up to EUR 100) — Official Journal of the European Union, 2018
  11. N. L. Johnson, S. Kotz, N. Balakrishnan — Continuous Univariate Distributions, Vol. 1 (lognormal distribution, partial moments) — Wiley, 1994

Kdo se s tem ukvarja poklicno

Izobraževalni model – ni za operativne odločitve. Resnični objekti vsako konstanto umerijo na svojo opremo in podatke.