Implementation of a Hybrid / Disk based queuing system

Mercati finanziari


  • REGOLAMENTATI
  • OVER THE COUNTER (OTC)

MERCATI REGOLAMENTATI


  • Scambi seguono regole specifiche
  • Alta standardizzazione degli strumenti
  • Mercato Investitori Retail
  • Obbligo di Concentrazione
    (book proposte acquisto / vendita)
  • Scambi anonimi e pubblici

MERCATI OTC


  • Bassa  Standardizzazione Contratti
    (CDS, Switch, Loan, ...)
  • Mercato Investitori Wholesale
  • Scambi bi-laterali
  • Non centralizzati
  • Non anonimi
  • Non pubblici
  • Pricing pre-trade attraverso EMAIL
  • Fino a 20.000 email / giorno

pricing strumenti finanziari


Richiede due dimensioni principali

  • Reference Data (oggetto del pricing)
  • Proposta di acquisto / vendita

Pricing - Reference data


  • Emittenti
  • Strumenti
    (Obbligazioni, CDS,  Indici, Loan, ...)
  • Aggiornamenti Asincroni ed Incrementali

Proposte acquisto / venditA


  • Comunicazione via email
  • Dati non strutturati (e.g. non-xml)
  • Contenuto della comunicazione non validato
  • Codifica basata anche su convenzioni bi-laterali

esempio contenuti email


  • WFC 6.60 38  95/  1MM
  • GDP 5.00% '32        102.875 - 103.875
  • GRIFOLS $TLB, 100⅜-100¾  3X3
  • L+350, 1% FL, JUN'17 MAT, Ba2/BB FACILITY, Ba3/BB- CORPORATE

Architettura


  • Sistema basato su una pipeline principale
  • La pipeline varia a seconda dello strumento

pipeline


  • Mail Server / Propagator
  • Parser
  • Validazione
    • Auto Cleaning
    • Manual Cleaning
  • Invio Dati ai Clienti
  • Aggregazione e Distribuzione

Sistemi distribuiti


  • Utilizzo  di Code
  • Messaggi consumati quando possibile
  • Diversi processi paralleli procedono a velocita' diverse
  • I sistemi sono loosely coupled

Code


  • Disk Based (AKA Code fisiche)
    • Sicure
    • Lente
  • In-Memory (RAM Memory)
    • Insicure
    • Veloci

Disk vs in-memory


  • RAM Access: 10 ns
  • Disk Access: 10 ms ( 1.000.000 x )

performance coda fisica


  • Peak Time: 1.600 msg / min = 28 msg / sec
  • Media di circa 350 / 400 quotazioni / sec
  • Piu' componenti sullo stesso server comportano
    maggior pressione sul sistema
  • IL COLLO DI BOTTIGLIA E' L'ACCESSO AL DISCO!

soluzione ibrida - logica


  • Usare la RAM quando non ci sono rallentamenti
  • Utilizzare il disco oltre un certo numero di messaggi in attesa
  • Soglie di sicurezza configurabili

Soluzione IBRIDA - struttura


  • Coda In-Memory
  • Coda Disk-Based
  • Motore di Inoltro messaggi
  • Macchina a Stati
  • Interruttore In-Memory / Disk Based


soluzione ibrida - componenti


Soluzione ibrida - stati


  • Non Started ( Coda Fisica - Motore Spento)
  • Default (Coda In-Memory - Motore Acceso)
  • Safe (Coda Fisica - Motore Spento)
  • Recovery (Coda Fisica - Motore Acceso)

soluzione ibrida - diagramma stati



soluzione ibrida - improvement



Implementation of a 

By Davide Duran

Implementation of a 

  • 881