ფინანსები — გადახდების ოპერაციები ცოცხალი მოდელი

თქვენ ხართ გადახდების სვიჩის (payment switch) ოპერაციების მაგიდასთან, რომელიც ვაჭრებსა და ბარათების გამცემებს შორის დგას. ყოველ წუთს დაახლოებით 400 ტრანზაქცია წამში შემოდის; თითოეული თაღლითობაზე ფასდება, თავისუფალ კავშირის სლოტს ელოდება და პასუხისთვის თავის გამცემთან იგზავნება. მოდელი სახელმძღვანელოს ფორმულებით ითვლის რიგებს, ტაიმაუტებს, კლიენტების განმეორებებს, თაღლითობის ფილტრის კომპრომისს და stand-in რისკს. თანხები ზოგად ვალუტის ერთეულებშია (u). მხოლოდ საგანმანათლებლო სიმულაცია — არა ფინანსური, იურიდიული ან საინვესტიციო რჩევა.

რას ისწავლით

სიმულატორი

დრო 0 min
შემოთავაზებული დატვირთვა (ახალი + განმეორებები) 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 = შემთხვევითი ექსპონენციალური backoff, საშუალო დაყოვნებები 1, 2 და 4 წუთი.

ტრანზაქციები ამ მნიშვნელობის ტოლი ან მეტი ქულით უარყოფილია. ქულები ნამდვილი ტრაფიკის სტანდარტული გადახრებითაა: დაბალი ნიშნავს მეტ შეჩერებულ თაღლითობას და მეტ უარყოფილ კარგ კლიენტს.

ქულები, რომლებიც ზღვარზე ამდენით დაბლაა, გადაწყვეტილების ნაცვლად დამატებით შემოწმებას იღებენ კლიენტისგან: ნამდვილი კლიენტების 85 % მას ასრულებს, თაღლითების 5 % გადის. 0 = გამორთულია.

რამდენ ხანს ელოდება კავშირის სლოტი გამცემის (issuer) პასუხს. ამის შემდეგ სვიჩი აგზავნის გაუქმებას (reversal) და იყენებს stand-in-ს ან უარყოფს „გამცემი მიუწვდომელია“ მიზეზით.

როცა გამცემი დროულად არ პასუხობს, სვიჩი მის სახელით ამტკიცებს ამ თანხამდე. ყოველი stand-in დამტკიცება რისკია, რომელიც გამცემს არასოდეს შეუმოწმებია. 0 = გამორთულია.

ინდიკატორები

კარგი კლიენტების დამტკიცების მაჩვენებელი
99,9%
ნორმალური
ავტორიზაციის დრო
330ms
ნორმალური
თაღლითობის მაჩვენებელი (დამტკიცებული თანხის წილი)
10,4bp
ნორმალური
დაკავებული კავშირის სლოტები
69%
ნორმალური
დამტკიცების მაჩვენებელი, ჯანსაღი გამცემები99,9 %
თაღლითობის წესით უარყოფილი კარგი კლიენტები1,3 ‰
Step-up-ზე გაგზავნილი ტრანზაქციები0,0 %
შეჩერებული თაღლითობა31 %
ახალი ტრანზაქციები400 tx/s
შემოთავაზებული დატვირთვა (ახალი + განმეორებები)400 tx/s
განმეორებები0 tx/s
შემცირებული (პასუხი „სცადეთ მოგვიანებით“)0 tx/s
რიგში გაუქმებული0,0 %
გამცემის ტაიმაუტები0,0 %
Stand-in დამტკიცებები0 tx/s
სერვისში მყოფი სერვერები6
სერვერები ირთვება0
სერვერების ხარჯის ტემპი36 u/h
სერვერების ხარჯი აქამდე0 u
Stand-in რისკი0,00 M u
აქამდე დამტკიცებული თაღლითობა0,00 M u
აქამდე დაკარგული კარგი ტრანზაქციები0,0 k tx
განმეორებას მოლოდინში მყოფი ტრანზაქციები0 tx
გამცემთა ჯგუფი B დაყოვნება (საშუალო)250 ms

ტენდენცია

კარგი კლიენტების დამტკიცების მაჩვენებელი: — %100,00,0

კრიზისული სცენარები

დონე 1 · გაყიდვის პიკური აფეთქება

დიდი ონლაინ გაყიდვა მე-5 წუთს იწყება და ტრაფიკს 45 წუთის განმავლობაში დაახლოებით 800 ტრანზაქციამდე წამში ორმაგებს. სვიჩი 6 სერვერზე მუშაობს, რომლებიც ჩვეულებრივი დღისთვისაა გათვლილი დაახლოებით 70 % დატვირთვით. ვაჭრები ყოველ ტექნიკურ წარუმატებლობას დაუყოვნებლივ იმეორებენ. კარგი კლიენტები დამტკიცებული და პასუხები სწრაფი შეინარჩუნეთ იმ სიმძლავრის ყიდვის გარეშე, რომელიც არ გჭირდებათ.

  • კარგი კლიენტების საშუალო დამტკიცება ≥ 95 % გაყიდვის დაწყებიდან
  • ავტორიზაციის საშუალო დრო ≤ 500 ms
  • სერვერების ხარჯი ≤ 75 u

დონე 2 · თაღლითობის ტალღა

მე-5 წუთზე მოპარული ბარათების მონაცემების პარტიის გამოყენება იწყება: ტრაფიკში თაღლითობის წილი 0,1 %-დან 1 %-მდე ახტება. უარყოფის ზღვარი ჩვეულებრივი დღეებისთვისაა დაყენებული (3σ), step-up კი გამორთულია. თაღლითობის მაჩვენებელი შეამცირეთ კარგი კლიენტების უარყოფის გარეშე.

  • თაღლითობის საშუალო მაჩვენებელი ≤ 25 bp
  • კარგი კლიენტების საშუალო დამტკიცება ≥ 98 %
  • წესით უარყოფილი კარგი კლიენტები ≤ 5 ‰

დონე 3 · გამცემის შეფერხება

მე-5 წუთზე B ჯგუფის გამცემები — მთელი ტრაფიკის მეოთხედი — პასუხის საშუალო დროზე 12 წამამდე ნელდებიან. სვიჩი პასუხს 8 წმ-მდე ელოდება, 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-ის გავლის მაჩვენებლები, ფუჭად დახარჯული სამუშაოს წილი, თანხები და ფასები ილუსტრაციული მნიშვნელობებია საშუალო ზომის სვიჩისთვის და არა რომელიმე რეალური ქსელის მაჩვენებლები.
კლიენტების განმეორებები: ყოველი ტექნიკური წარუმატებლობა სამჯერ მეტად მეორდება, დაუყოვნებლივ ან შემთხვევითი ექსპონენციალური backoff-ით.
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 გენერატორი; გამოყენებული განაწილებები — თანაბარი, ექსპონენციალური (შებრუნებული CDF), ნორმალური (ბოქს–მიულერი), პუასონის (კნუტი). სიდი ნაჩვენებია და გაზიარებადია.

წყაროები

  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

ვინ აკეთებს ამას პროფესიად

საგანმანათლებლო მოდელი — არ არის განკუთვნილი ოპერაციული გადაწყვეტილებებისთვის. რეალური ობიექტები ყველა მუდმივას საკუთარ აღჭურვილობასა და მონაცემებზე ადგენენ.