Фінансы — платэжныя аперацыі Жывая мадэль

Вы працуеце ў аперацыйным цэнтры платэжнага камутатара, які стаіць паміж гандлярамі і эмітэнтамі картак. Кожную хвіліну паступае каля 400 транзакцый у секунду; кожная ацэньваецца на махлярства, чакае вольны слот злучэння і перадаецца свайму эмітэнту для атрымання адказу. Мадэль разлічвае чэргі, тайм-аўты, паўторныя спробы кліентаў, кампраміс антымахлярскага фільтра і рызыку stand-in па падручнікавых формулах. Сумы даюцца ў агульных грашовых адзінках (u). Толькі навучальная сімуляцыя — не фінансавая, юрыдычная або інвестыцыйная парада.

Чаму вы навучыцеся

Сімулятар

Час 0 хв
Прапанаваная нагрузка (новыя + паўторныя) 400 · Паўторныя спробы 0 · Узровень ухвалення добрых кліентаў 99,9% · Час аўтарызацыі 330 ms · Занятыя слоты злучэння 69% · Серверы ў эксплуатацыі 6 (+0) · Узровень махлярства (доля ухваленай сумы) 10,4 bp · Тайм-аўты эмітэнтаў 0,0% · Рызыка stand-in 0,00 M uАнтымахлярскі фільтрt = 3,00σ✓ 99,9% · ? 0,0% · ✗ 0,1%Спыненае махлярства 31%Узровень махлярства (доляухваленай сумы) 10,4 bp400 tx/s · ↻ 0Серверы аўтарызацыі▶▶▶▶▶▶··················Занятыя слоты злучэння 69%330 ms · ✗ 0,0%Эмітэнты A✓ 250 msЭмітэнты B✓ 250 ms⏱ 8 s · ⌛ 0,0% · Σ 0 uУзровень ухвалення добрых кліентаў 99,9%Рызыка stand-in 0,00 M u
  • Сервер у эксплуатацыі
  • Сервер запускаецца
  • Вольнае месца ў стойцы сервераў
  • Эмітэнт адказвае нармальна
  • Эмітэнт павольны або недаступны
  • Апрацоўка stand-in уключана
  • Уваходныя транзакцыі

Кіраванне

Кожны сервер трымае 32 слоты злучэння. Дададзеным серверам трэба 5 хвілін на запуск; плаціць трэба за кожны сервер, нават калі ён запускаецца.

Прымае не болей за 90 % магутнасці, а лішак адразу адказвае «паўтарыце пазней», замест таго каб даць яму стаяць у чарзе і выходзіць па тайм-аўце.

Як гандляры паўтараюць тэхнічны збой (да 3 паўтораў). Адразу = на наступнай хвіліне; backoff = выпадковая экспаненцыяльная затрымка, сярэднія затрымкі 1, 2 і 4 хвіліны.

Транзакцыі з ацэнкай на ўзроўні гэтага парогу або вышэй адхіляюцца. Ацэнкі выражаюцца ў стандартных адхіленнях сапраўднага трафіку: ніжэй азначае больш спыненага махлярства і больш адхіленых добрых кліентаў.

Ацэнкі, што знаходзяцца настолькі ніжэй за парог, атрымліваюць дадатковую праверку кліента замест рашэння: 85 % сапраўдных кліентаў праходзяць яе, 5 % махляроў праходзяць. 0 = выключана.

Як доўга слот злучэння чакае адказу эмітэнта. Пасля гэтага камутатар адпраўляе скасаванне (reversal) і выкарыстоўвае stand-in або адхіляе з прычынай «эмітэнт недаступны».

Калі эмітэнт не адказвае своечасова, камутатар ухваляе ад яго імя да гэтай сумы. Кожнае ўхваленне stand-in — гэта рызыка, якую эмітэнт ніколі не правяраў. 0 = выключана.

Паказчыкі

Узровень ухвалення добрых кліентаў
99,9%
норма
Час аўтарызацыі
330ms
норма
Узровень махлярства (доля ухваленай сумы)
10,4bp
норма
Занятыя слоты злучэння
69%
норма
Узровень ухвалення, здаровыя эмітэнты99,9 %
Добрыя кліенты, адхіленыя правілам махлярства1,3 ‰
Транзакцыі, накіраваныя на step-up0,0 %
Спыненае махлярства31 %
Новыя транзакцыі400 tx/s
Прапанаваная нагрузка (новыя + паўторныя)400 tx/s
Паўторныя спробы0 tx/s
Скінута (адказ «паспрабуйце пазней»)0 tx/s
Адкінута ў чарзе0,0 %
Тайм-аўты эмітэнтаў0,0 %
Ухваленні stand-in0 tx/s
Серверы ў эксплуатацыі6
Серверы, што запускаюцца0
Хуткасць выдаткаў на серверы36 u/h
Выдаткі на серверы на сённяшні момант0 u
Рызыка stand-in0,00 M u
Ухваленае махлярства на сённяшні момант0,00 M u
Страчаныя добрыя транзакцыі на сённяшні момант0,0 k tx
Транзакцыі, што чакаюць паўтору0 tx
Затрымка эмітэнтаў групы B (сярэдняя)250 ms

Тэндэнцыя

Узровень ухвалення добрых кліентаў: — %100,00,0

Крызісныя сцэнарыі

Узровень 1 · Пікавы ўсплёск распродажу

Вялікі анлайн-распродаж адкрываецца на 5-й хвіліне і падвойвае трафік да каля 800 транзакцый у секунду на 45 хвілін. Камутатар працуе на 6 серверах, разлічаных на звычайны дзень пры загрузцы каля 70 %. Гандляры паўтараюць кожны тэхнічны збой адразу. Захоўвайце ўхваленне добрых кліентаў і хуткія адказы, не купляючы магутнасць, якая вам не патрэбна.

  • Сярэдняе ўхваленне добрых кліентаў ≥ 95 % ад пачатку распродажу
  • Сярэдні час аўтарызацыі ≤ 500 ms
  • Выдаткі на серверы ≤ 75 u

Узровень 2 · Хваля махлярства

На 5-й хвіліне пачынае выкарыстоўвацца партыя скрадзеных даных картак: доля махлярства ў трафіку падскоквае з 0,1 % да 1 %. Парог адхілення настроены на звычайныя дні (3σ), а step-up выключаны. Знізьце ўзровень махлярства, не адштурхоўваючы добрых кліентаў.

  • Сярэдні ўзровень махлярства ≤ 25 bp
  • Сярэдняе ўхваленне добрых кліентаў ≥ 98 %
  • Добрых кліентаў, адхіленых правілам ≤ 5 ‰

Узровень 3 · Збой эмітэнта

На 5-й хвіліне эмітэнты групы B — чвэрць усяго трафіку — запавольваюцца да сярэдняга часу адказу 12 секунд. Камутатар чакае адказу да 8 s, не мае stand-in і працуе на 6 серверах. Захоўвайце паток кліентаў здаровых эмітэнтаў, абслугоўвайце групу B наколькі можна бяспечна і трымайце рызыку stand-in і выдаткі пад кантролем.

  • Сярэдняе ўхваленне кліентаў здаровых эмітэнтаў ≥ 90 %
  • Сярэдняе ўхваленне добрых кліентаў ≥ 86 %
  • Рызыка stand-in ≤ 9 M u
  • Выдаткі на серверы ≤ 65 u

Аснова — мадэль за лічбамі

Кожнае суадносіна, якое выкарыстоўвае сімулятар, з яго крыніцай. Пастаянныя, пазначаныя як дапушчэнні, — ілюстрацыйныя каліброўкі.

Новыя транзакцыі паступаюць з базавай хуткасцю, памножанай на ўсплёск продажаў; колькасць за хвіліну выпадковая (Пуасон, нармальнае набліжэнне) з невялікай нераўнамернасцю (ўсплёскамі).
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Дапушчэнне: колькасць слотаў, часы абслугоўвання і эмітэнта, падзел ацэнак, долі праходжання step-up, доля марна патрачанай працы, сумы і цэны — ілюстрацыйныя значэнні для камутатара сярэдняга памеру, а не лічбы якой-небудзь рэальнай сеткі.
Бінармальная ацэнка махлярства: ацэнкі сапраўдных і махлярскіх транзакцый — дзве нармальныя крывыя на адлегласці d′; парог выбірае кропку на 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]Дапушчэнне: колькасць слотаў, часы абслугоўвання і эмітэнта, падзел ацэнак, долі праходжання step-up, доля марна патрачанай працы, сумы і цэны — ілюстрацыйныя значэнні для камутатара сярэдняга памеру, а не лічбы якой-небудзь рэальнай сеткі.
Аптымальны па выдатках парог: адхіляць, калі суадносіны праўдападабенства перавышае суадносіны выдаткаў, узважаныя па базавай частаце — калі махлярства ў дзесяць разоў больш, парог зрушваецца на ln 10 / d′ ≈ 0,9σ ніжэй.
decline when e^(d′x − d′²/2) ≥ (1 − π)·c_FP / (π·c_FN) ⇒ t* = [ln((1 − π)c_FP/(π c_FN)) + d′²/2] / d′[8][7]
Step-up: ацэнкі ў паласе ніжэй за парог правяраюцца дадаткова замест таго, каб прымаць рашэнне.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Дапушчэнне: колькасць слотаў, часы абслугоўвання і эмітэнта, падзел ацэнак, долі праходжання step-up, доля марна патрачанай працы, сумы і цэны — ілюстрацыйныя значэнні для камутатара сярэдняга памеру, а не лічбы якой-небудзь рэальнай сеткі.
Затрымка эмітэнта — экспаненцыяльная; слот займаецца на час затрымкі або тайм-аўту, у залежнасці ад таго, што надыходзіць раней.
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]
Закон Літла: занятыя слоты = інтэнсіўнасць паступлення × час утрымання.
busy slots = λ·S (Little) ⇒ utilization = λ·S / (32 × servers)[3]
Эрланг C: верагоднасць, што транзакцыя чакае вольны слот, і верагоднасць, што яна чакае даўжэй за 2-секундны тайм-аўт чаргі.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Па-за магутнасцю камутатар марнуе працу і на запыты, якія пазней адкідае, таму карысная прапускная здольнасць падае па меры росту нагрузкі; скід нагрузкі адкідае лішак танна.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Дапушчэнне: колькасць слотаў, часы абслугоўвання і эмітэнта, падзел ацэнак, долі праходжання step-up, доля марна патрачанай працы, сумы і цэны — ілюстрацыйныя значэнні для камутатара сярэдняга памеру, а не лічбы якой-небудзь рэальнай сеткі.
Паўторныя спробы кліента: кожны тэхнічны збой паўтараецца да трох разоў — адразу або з выпадковай экспаненцыяльнай затрымкай.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Дапушчэнне: колькасць слотаў, часы абслугоўвання і эмітэнта, падзел ацэнак, долі праходжання step-up, доля марна патрачанай працы, сумы і цэны — ілюстрацыйныя значэнні для камутатара сярэдняга памеру, а не лічбы якой-небудзь рэальнай сеткі.
Тайм-аўт эмітэнта, скасаванне і stand-in: сумы лагнармальныя, таму доля пад лімітам і аб'ём ухвалення вынікаюць з нармальнай функцыі размеркавання.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Узровень махлярства ў базісных пунктах ад ухваленай сумы; 13 bp выкарыстоўваецца як арыенцірная шкала для малых аддаленых картачных плацяжоў.
fraud rate = approved fraud amount / approved amount × 10,000 bp (reference scale: 13 bp)[10]
Іншыя рабочыя пастаянныя, якія выкарыстоўвае мадэль.
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 timeДапушчэнне: колькасць слотаў, часы абслугоўвання і эмітэнта, падзел ацэнак, долі праходжання step-up, доля марна патрачанай працы, сумы і цэны — ілюстрацыйныя значэнні для камутатара сярэдняга памеру, а не лічбы якой-небудзь рэальнай сеткі.

Выпадковасць: генератар mulberry32 з seed; выкарыстаныя размеркаванні — раўнамернае, экспаненцыяльнае (адваротная CDF), нармальнае (Box–Muller), Пуасона (Knuth). Seed паказваецца і яго можна перадаваць.

Крыніцы

  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

Хто гэтым займаецца па прафесіі

Навучальная мадэль — не для аперацыйных рашэнняў. Рэальныя аб'екты каліброўваюць кожную пастаянную пад сваё абсталяванне і даныя.