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