Sedíte v prevádzkovom stredisku platobného switchu, ktorý stojí medzi obchodníkmi a vydavateľmi kariet. Každú minútu prichádza asi 400 transakcií za sekundu; každá sa ohodnotí skóre podvodu, čaká na voľné spojenie a odošle sa vydavateľovi na odpoveď. Model počíta fronty, časové limity, opakovania klientov, kompromis protipodvodného filtra a záskokovú expozíciu z učebnicových vzorcov. Sumy sú vo všeobecných peňažných jednotkách (u). Len vzdelávacia simulácia — nie je to finančné, právne ani investičné poradenstvo.
Čo sa naučíte
Prečo opakovania môžu zamknúť preťažený switch v búrke opakovaní aj po pridaní kapacity — a ako zahadzovanie záťaže slučku preruší.
Ako prah skóre podvodu vyvažuje straty z podvodov proti zamietnutým dobrým zákazníkom a prečo správny prah závisí od základnej miery podvodov.
Ako jeden pomalý vydavateľ zaplní všetky spojenia (Littleho zákon) a koľko stoja časové limity a záskokové spracovanie.
Simulátor
Čas 0 min
▶Server v prevádzke
⚙Server sa spúšťa
·Voľné miesto v racku serverov
✓Vydavateľ odpovedá normálne
⌛Vydavateľ pomalý alebo vypadnutý
⇄Záskokové spracovanie zapnuté
•Prichádzajúce transakcie
Ovládanie
Každý server má 32 spojení. Pridané servery sa spúšťajú 5 minút; platí sa za každý server, či sa spúšťa, alebo nie.
Prijme najviac 90 % kapacity a prebytok hneď odmietne správou „skúste neskôr“, namiesto toho, aby ho nechal čakať v rade a vypršať.
Ako obchodníci opakujú technickú chybu (až 3 opakovania). Okamžite = v ďalšej minúte; odkladanie = náhodne exponenciálne odkladanie, priemerné oneskorenia 1, 2 a 4 minúty.
Transakcie so skóre rovným alebo vyšším ako tento prah sa zamietnu. Skóre sú v smerodajných odchýlkach legitímnej prevádzky: nižšie znamená viac zastaveného podvodu a viac zamietnutých dobrých zákazníkov.
Skóre, ktoré je takto ďaleko pod prahom, dostane dodatočnú výzvu zákazníkovi namiesto rozhodnutia: 85 % skutočných zákazníkov ju dokončí, 5 % podvodníkov prejde. 0 = vypnuté.
Ako dlho čaká spojenie na odpoveď vydavateľa. Potom switch odošle storno a použije záskokové schválenie (stand-in), alebo zamietne s dôvodom „vydavateľ nedostupný“.
Keď vydavateľ neodpovie včas, switch schváli v jeho mene do tejto sumy. Každé záskokové schválenie je expozícia, ktorú vydavateľ nikdy neoveril. 0 = vypnuté.
Veľký online výpredaj sa otvára v 5. minúte a zdvojnásobí prevádzku na asi 800 transakcií za sekundu na 45 minút. Switch beží na 6 serveroch, dimenzovaných na bežný deň s vyťažením asi 70 %. Obchodníci opakujú každú technickú chybu okamžite. Udržte dobrých zákazníkov schválených a odpovede rýchle bez nákupu kapacity, ktorú nepotrebujete.
Priemerná miera schválenia dobrých zákazníkov ≥ 95 % od začiatku výpredaja
Priemerný čas autorizácie ≤ 500 ms
Náklady na servery ≤ 75 u
Úroveň 2 · Vlna podvodov
V 5. minúte sa začne používať dávka ukradnutých údajov kariet: podiel podvodov v prevádzke vyskočí z 0,1 % na 1 %. Prah zamietnutia je nastavený pre bežné dni (3σ) a dodatočné overenie je vypnuté. Znížte mieru podvodov bez odmietania dobrých zákazníkov.
Priemerná miera podvodov ≤ 25 bb
Priemerná miera schválenia dobrých zákazníkov ≥ 98 %
Dobrí zákazníci zamietnutí pravidlom ≤ 5 ‰
Úroveň 3 · Výpadok vydavateľov
V 5. minúte sa vydavatelia skupiny B — štvrtina všetkej prevádzky — spomalia na priemerný čas odpovede 12 sekúnd. Switch čaká na odpoveď až 8 s, nemá záskokové schválenie a beží na 6 serveroch. Udržte tok zákazníkov zdravých vydavateľov, obsluhujte skupinu B, pokiaľ to je bezpečné, a udržte záskokovú expozíciu a náklady pod kontrolou.
Priemerná miera schválenia dobrých zákazníkov ≥ 86 %
Záskoková expozícia ≤ 9 M u
Náklady na servery ≤ 65 u
Základ — model za číslami
Každý vzťah, ktorý simulátor používa, aj s jeho zdrojom. Konštanty označené ako predpoklady sú ilustračné kalibrácie.
Nové transakcie prichádzajú základnou rýchlosťou krát nárast predaja; počet za minútu je náhodný (Poisson, normálna aproximácia) s trochou nárazovosti.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Predpoklad: počty spojení, časy obsluhy a vydavateľov, oddelenie skóre, miery prechodu dodatočného overenia, podiel zbytočnej práce, sumy a ceny sú ilustračné hodnoty pre strednú veľkosť switchu, nie údaje nijakej skutočnej siete.
Binormálne skóre podvodu: skóre legitímnych a podvodných transakcií sú dve normálne krivky vzdialené o d′; prah vyberá bod na ROC krivke.
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]Predpoklad: počty spojení, časy obsluhy a vydavateľov, oddelenie skóre, miery prechodu dodatočného overenia, podiel zbytočnej práce, sumy a ceny sú ilustračné hodnoty pre strednú veľkosť switchu, nie údaje nijakej skutočnej siete.
Nákladovo optimálny prah: zamietnuť, keď pomer vierohodnosti presiahne pomer nákladov vážený základnou mierou — desaťkrát častejší podvod ho posunie ln 10 / d′ ≈ 0,9σ nižšie.
Dodatočné overenie: skóre v pásme pod prahom sa overuje namiesto rozhodnutia.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Predpoklad: počty spojení, časy obsluhy a vydavateľov, oddelenie skóre, miery prechodu dodatočného overenia, podiel zbytočnej práce, sumy a ceny sú ilustračné hodnoty pre strednú veľkosť switchu, nie údaje nijakej skutočnej siete.
Latencia vydavateľa je exponenciálna; spojenie je obsadené po dobu latencie alebo časového limitu, podľa toho, čo nastane skôr.
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]
Littleho zákon: obsadené spojenia = intenzita príchodov × doba obsadenia.
Erlang C: pravdepodobnosť, že transakcia čaká na voľné spojenie, a pravdepodobnosť, že čaká dlhšie než 2 s časový limit fronty.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Nad kapacitou switch míňa prácu aj na požiadavky, ktoré neskôr zahodí, takže užitočná priepustnosť s rastúcou záťažou klesá; zahadzovanie záťaže odmieta prebytok lacno.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Predpoklad: počty spojení, časy obsluhy a vydavateľov, oddelenie skóre, miery prechodu dodatočného overenia, podiel zbytočnej práce, sumy a ceny sú ilustračné hodnoty pre strednú veľkosť switchu, nie údaje nijakej skutočnej siete.
Opakovania klienta: každá technická chyba sa opakuje až trikrát, okamžite alebo s náhodným exponenciálnym odkladaním.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Predpoklad: počty spojení, časy obsluhy a vydavateľov, oddelenie skóre, miery prechodu dodatočného overenia, podiel zbytočnej práce, sumy a ceny sú ilustračné hodnoty pre strednú veľkosť switchu, nie údaje nijakej skutočnej siete.
Časový limit vydavateľa, storno a záskokové schválenie: sumy sú lognormálne, takže podiel pod limitom a schválený objem vyplývajú z normálnej distribučnej funkcie.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Miera podvodov v bázických bodoch schválenej sumy; 13 bb sa používa ako referenčná mierka pre malé vzdialené platby kartou.
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 timePredpoklad: počty spojení, časy obsluhy a vydavateľov, oddelenie skóre, miery prechodu dodatočného overenia, podiel zbytočnej práce, sumy a ceny sú ilustračné hodnoty pre strednú veľkosť switchu, nie údaje nijakej skutočnej siete.
Náhodnosť: generátor mulberry32 so seedom; použité rozdelenia — rovnomerné, exponenciálne (inverzná CDF), normálne (Box–Muller), Poissonovo (Knuth). Seed je zobrazený a dá sa zdieľať.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013