faible latence, haut debit perfug (septembre 2014)
DESCRIPTION
vidéo disponible : http://tv.octo.com/videos/les-secrets-de-la-finance-pour-avoir-des-systemes-reactifs/ Comment concevoir des systèmes capables d’encaisser des dizaines de milliers d’updates par seconde sans s’engorger, ni dépasser la milli seconde de traitement ? Comment écrire du code scalable qui reste lisible –mais garanti 100% sans deadlock ? Que recouvre le reactive manifesto ? et les termes : conflation, sequencer, immutable state ? Après vous avoir présenté les besoins et contraintes du trading électronique, nous répondrons à toutes ces questions dans une session … résolument réactive. Note: il s'agit de la présentation que nous avions faîte à DEVOXX France en Avril 2014, mais revue et corrigée pour notre session au PerfUG de Septembre (avec une nouvelle charte graphique donc)TRANSCRIPT
Basses latences, hauts débits : les secrets de la finance pour avoir des systèmes réactifs
Cyrille DUPUYDAUBY Thomas PIERRAIN !SOCIETE GENERALE
use case driven (blog) Many Cores (blog)
Qui sommes nous ?
@cyrdup @tpierrain
Agenda
• Banque d’investissement & marchés électroniques (–10mn)
• Construisons ensemble un « Pricer » (–20mn)
• Patterns: sequencer et conflation (–20mn)
• Reactive Manifesto & Conclusion (– 5 mn)
@cyrdup @tpierrain
La banque d'investissement
• Fournir des solutions de financement
• Proposer des solutions d'investissements
• Créer des produits financiers
• Agir sur les marchés
@cyrdup @tpierrainhttp://upload.wikimedia.org/wikipedia/commons/b/b8/Sao_Paulo_Stock_Exchange.jpg
@cyrdup @tpierrain
Les activités de marché
Carnet d’ordres
Prix
Moteur
PAS
COMPRIS?
@cyrdup @tpierrain
Le supermarché
@cyrdup @tpierrain
Les acteurs
Investisseurs
Market Makers
Scalpers
@cyrdup @tpierrain
Les automatesAlgo trading
Arbitrage
@cyrdup @tpierrain
Les enjeux
• Complexité !
• Fiabilité/disponibilité !
• Capacité en volume !
• Latence !
!
@cyrdup @tpierrain
Les enjeux
• Complexité • 5200 Releases/an
• Fiabilité/disponibilité • 5,5 * 24
• Capacité en volume • 5M executions/jour, 250K market update/Sec
• Latence • ≈ 5 ms end to end, 50 µsec pour haute fréquence
@cyrdup @tpierrain
Agenda
• Banque d’investissement & marchés électroniques (–10mn)
• Construisons ensemble un « Pricer » (–20mn)
• Patterns: sequencer et conflation (–20mn)
• Reactive Manifesto & Conclusion (– 5 mn)
Le Pasta Pricer
@cyrdup @tpierrain
Mission
• Calculer en temps réel le prix des paquets de pâtes proposées
• Offre en pates: • 4 tailles de paquet: 250g, 500g, 1Kg, 2Kg
• 4 types de farine: basique, premium, bio, complète
• 3 recettes: sans oeufs, avec et riche en oeuf
• 50 formes et couleurs différentes
soit 2400 types de pates !
@cyrdup @tpierrain
Calculer le prix
• Le prix dépend des cours • des différents types de blés
• des oeufs (le cas échéant)
• du carton et/ou du plastique (emballage)
• d’autres ingrédients optionnels (pates colorées): tomate épinards
@cyrdup @tpierrain
Designons notre Pasta pricer!
en mode ¨EVENT STORMING¨
@cyrdup @tpierrain
Bases pour notre représentationPasta pricer
des flux d evenementson reçoit ..
on publie ..
dans la même boite...
@cyrdup @tpierrain
Bases pour notre représentationPasta pricer
3 étapes
Calculerdecoder encoder
@cyrdup @tpierrain
Bases pour notre représentationPasta pricer
3 étapes
Calc Encdecinputs outputs
pennepennepennepennepennepennepennegnocchi
pennepennepennepennepennepennepennepenne
2400 pates différentes
@cyrdup @tpierrain
Designons notre Pasta pricer!
on commence?
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
1110010101...
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
gnocchi
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
gnocchi
Gnocchi 5.4 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
gnocchi
Gnocchi 5.4 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
gnocchi
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
penne
Oeufs 1.5 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
penne
penne 2.1 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
penne
penne 2.1 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
penne
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
Oeufs 1.5 €
penne
pennepennepennepennepennepennepennepen
nepennepenne—- — pen
nepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
Oeufs 1.5 €
penne——— —
——pennepennepennepennepennepennepenne————
—
0110010110
0…
@cyrdup @tpierrain
Approche mono thread
Oeufs 1.5 €
Calc Encdec
Pasta pricer
pennepennepenne—-
— ——
0110010110
0…
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
Oeufs 1.5 €
pennepenne——-
0110010110
0…
@cyrdup @tpierrain
Approche mono thread
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain
Approche mono thread
avis sur la solution?-On n exploite pas la CPU au mieux -prix des dernières pâtes calculées en retard - le mono-thread: intéressant pour la ultra low
latency - pas ici avec nos contraintes - le moment de // nos calculs !
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
@cyrdup @tpierrain
Approche 1 worker thread / pâtePasta pricer
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
1110010101...
@cyrdup @tpierrain
Approche 1 worker thread / pâtePasta pricer
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
Oeufs bios 3.5 €
@cyrdup @tpierrain
Approche 1 worker thread / pâtePasta pricer
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...Oeufs bios 3.5 €
@cyrdup @tpierrain
Approche 1 worker thread / pâtePasta pricer
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
oeufs 3.5 €
oeufs 3.5 €
oeufs 3.5 €
oeufs 3.5 €
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
oeufs 3.5 €
oeufs 3.5 €
oeufs 3.5 €
oeufs 3.5 €
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
penne 5.4 €
.... .... €
...... 8.2 €
.... €
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
penne 5.4 €
.... .... €
...... 8.2 €
.... €
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- ——- —
—- ——- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- ——- —
—- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
11101001011
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
111101.
.....
....—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
111101.
.....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain
Approche 1 worker thread / pâte
Avis?-2400 threads ... Ca va pas la tête ?!? - context switches de malade -modèle pas scalable... ni raisonnable - il faut // d accord- mais plus finement -approche suivante !
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
1110010101...
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
penne bio
Oeufs bios 3.5 €
Oeufs bios 3.5 €
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
penne bio
Gnocchi bio
5.4 €
penne bio
3.2 €
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
penne bio
Gnocchi bio
5.4 €
penne bio
3.2 €
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
penne bio
01100011010
…
11111000110
…
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
penne bio
01100011010
…
11111000110
…
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…11111000110
…
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…
11111000110
…
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…
11111000110
…
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche pool de threadPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche « pool de thread »Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Approche « pool de thread »
c est mieux, non?
@cyrdup @tpierrain
Approche « pool de thread »
race conditions ?!?
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer: concentrons nous sur les gnocchis !
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
1110010101...
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
0001110010 ...
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
carton +1.2 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
carton +1.2 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
carton +1.2 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
5.4 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
5.4 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
5.4 €
Gnocchi bio
4.4 € !!!
!!!
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
4.4 €
01100101100
… 5.4 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
Gnocchi bio
4.4 €
01100101100
…
5.4 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
01100101100
…
1100010111 …
5.4 €
4.4 €
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100101100
…
1100010111 …
5.4 €
4.4 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100101100
…
1100010111 …
5.4 €
4.4 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
dernier prix pour les gnocchis: 4.4 € !!!
@cyrdup @tpierrain
Pool de thread & race conditions…Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
1100010111 …
4.4 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
dernier prix pour les gnocchis: 4.4 € !!!
@cyrdup @tpierrain
Pool de thread & race conditions…
Probleme:- le dernier prix publié pour les gnocchis
ne tient pas compte de la dernières info reçue
solution:- Il faut que les prix soient publiés en
respectant l ordre des inputs reçus
@cyrdup @tpierrain
Approche multi tasks / thread pool
respecter l ordre OK, mais comment?
avec des locks?
@cyrdup @tpierrain
Approche multi tasks / thread pool
les vieux maitres en multithreading ont un dicton :
¨qui dit lock ... ... dit deadlock¨
@cyrdup @tpierrain
Approche multi tasks / thread pool
1. Protéger l acces à nos ressources (pates dans un monde // et asynchrone
2. pas de deadlock - donc pas de lock ni de wait sans timeout dans le code du pricer
3. pas d expertise de dingue obligatoire en multithreading
en resume, on veut:
@cyrdup @tpierrain
En réalité, si on résume encore +
On veut rendre la programmation reactive
accessible à tous et sans danger
@cyrdup @tpierrain
Agenda
• Banque d’investissement & marchés électroniques (–10mn)
• Construisons ensemble un « Pricer » (–20mn)
• Patterns: sequencer et conflation (–20mn)
• Reactive Manifesto & Conclusion (– 5 mn)
@cyrdup @tpierrain
Programmation réactive pour tous !
Notre solution:
¨Le sequencer¨
@cyrdup @tpierrain
Programmation réactive pour tous !
¨Le sequencer¨- un pattern qui garantit l ordre d execution des
tâches associées à un ¨état¨ donnéex: un stream de prix, une négociation, un workflow, etc.
!
- Maintient la cohérence de cet état dans un environnement complètement asynchrone et //
@cyrdup @tpierrain
Programmation réactive pour tous !
¨Le sequencer¨
8 9
!
1 2
1 2 3
@cyrdup @tpierrain
Le sequencer en post-it
Sequencer gnocchi
gnocchi
classe qui agrège un sequencer
le sequencer a qui on confie des
tâches a ¨sequencer¨
interface Sequencer{ void dispatch(Action action); }
programmation asynchrone
@cyrdup @tpierrain
Le sequencer en actionPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
1110010101...
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
0110110101…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
0110110101…
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Gnocchi 5.4 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Gnocchi 5.4 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
01100101100
…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
farine 0.5 €
Sequ gnocchi
gnocchi
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
farine 0.5 €
01100101100
…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
farine 0.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
on REFAIT LE MATCH ?
@cyrdup @tpierrain
Le sequencer en actionPasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
1110010101...
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
0110110101…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
0110110101…
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Oeufs 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Gnocchi 5.4 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
Gnocchi 5.4 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
01100101100
…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
farine 0.5 €
Sequ gnocchi
gnocchi
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
farine 0.5 €
01100101100
…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
farine 0.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Le sequencer en action
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain
Et sous le capot du sequencer ?
@cyrdup @tpierrain
l’implémentation elle, utilise des locks ou des CAS (Compare and Swap) en interne
« Complexité » encapsulée
@cyrdup @tpierrain
!
interface IUnitOfExecution { void dispatch(Action action); }
Pour un usage d’une simplicité …
@cyrdup @tpierrain
Du code !
du code !
@cyrdup @tpierrain
Pasta Pricer powered by
@cyrdup @tpierrain
Avantages du sequencer
simplicité lisibilité fiabilité
non bloquant !
en revanche ... !
il va nous manquer un autre outil ...
@cyrdup @tpierrain
Un autre outil ?!?
¨et oui ... de l eau qui
dort, se méfier il faut ¨
@cyrdup @tpierrain
Le problème des pics de charge
Comment les absorber sans prendre de la
latence?
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi epinard
gnocchi epinard
épinard 1.5 €
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
Sequ rotini
epinard
rotini epinard
épinard 1.5 €
Sequ pici
epinard
Pici epinard
épinard 1.5 €
système déjà chargé
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
1110010101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
100100101...
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
farine bio 1.1 €
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
100100101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
oeufs bios 2.2 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
0111100101...
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
100100101...
farine bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
blé bios 0.2 € . .. ..
.. .. ..
.. .. .. .
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
blé bios 0.2 € . .. ..
.. .. ..
.. .. .. .
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
0111100101...
farine bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
01100101100…
01100101100…
01100101100…
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
01100101100…
01100101100…
01100101100…
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
Oeufs bios 3.5 €
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
Oeufs bios 3.5 €
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
Oeufs bios 3.5 €
!!!
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €
!!!
@cyrdup @tpierrain
Exemple de pic de charge
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
Oeufs bios 3.5 €
OEUFS BIOS 1.7 €blé bios
0.2 €farine
bio 1.1 €
oeufs bios 2.2 €farine
bio 1.1 €
prix plus frais !!!
!!! vieux prix
@cyrdup @tpierrain
En cas de pic de charge…
comment dépenser sa CPU a bon escient ?
la conflation
@cyrdup @tpierrain
La conflation
¨ C est le moyen d amortir les pics de charge quand le système est déjà bien occupé ¨
@cyrdup @tpierrain
2 types de conflationle Balking Le dernier message sur le même sujet vient remplacer le précédent. ¨Annule et remplace¨
le merge le dernier message sur le même sujet vient fusionner son contenu avec le précédent
Oeufs bios 3.5 €
Oeufs bios 4.1 €
Oeufs bios 4.1 €
t1 t0 t2
Oeufs bios 5kg: 20 €
Oeufs bios 1kg: 5 €
Oeufs bios 1 kg: 5 €
5 kg: 20 €
t0t1 t2
@cyrdup @tpierrain
A ne pas confondre avec …
La conflation n est pas de
l échantillonage !
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi epinard
gnocchi epinard
épinard 1.5 €
Sequ rotini
epinard
rotini epinard
épinard 1.5 €
Sequ pici
epinard
Pici epinard
épinard 1.5 €
système déjà chargé
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
1110010101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
100100101...
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
farine bio 1.1 €
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
100100101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
oeufs bios 2.2 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.9 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
0111100101... farine
bio 1.1 €Oeufs
bios 3.9 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €
farine bio 1.1 €Oeufs
bios 3.9 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
100100101... farine
bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
blé bios 0.2 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
blé bios 0.2 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
farine bio 1.1 €Oeufs
bios 3.5 €
0111100101...
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…OEUFS
BIOS 1.7 €
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 3.5 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 1.7 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 1.7 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 1.7 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 1.7 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 1.7 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100…
01100101100…
01100101100…
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 1.7 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100…
01100101100…
01100101100…
blé bios 0.2 €
farine bio 1.1 €Oeufs
bios 1.7 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 1.7 €
blé bios 0.2 €
farine bio 1.1 €
@cyrdup @tpierrain
Même pic de charge… avec conflation
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 1.7 €
blé bios 0.2 €
farine bio 1.1 €
prix frais ;-/ engorgement limité
@cyrdup @tpierrain
Back pressure obligatoire !
¨la conflation ne s exerce que sur un système déjà occupé ¨
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
1110010101...
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
100100101...
Oeufs bios 3.5 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
100100101...
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
0111100101...
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
100100101...
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
blé bios 0.2 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
blé bios 0.2 €
0111100101...
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €Blé
bio 0.2 €
Oeufs bios 1.7 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
Blé bio
0.2 €
Oeufs bios 1.7 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
Blé bio
0.2 €
oeufs bios 1.7 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
Blé bio
0.2 €
oeufs bios 1.7 €
@cyrdup @tpierrain
L’impact négatif des buffers intermédiaires…
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs bios 3.5 €
farine bio 1.1 €
Oeufs bios 3.9 €
farine bio 1.1 €
Blé bio
0.2 €
oeufs bios 1.7 €
prend du retard par le centre !!!
@cyrdup @tpierrain
… pour que la conflation soit effective …
évitez les buffer ou les files
intermédiaires !
@cyrdup @tpierrain
Donc …
Pour juguler les pics de charge
@cyrdup @tpierrain
Demo
@cyrdup @tpierrain
Facteurs clés pour le succès
• L’importance de la modélisation de votre //isme !
• L’importance de la mesure
SLA percentiles !
@cyrdup @tpierrain
Un avis, maître ?
¨un ensemble de propriétés, un
système Réactif est ¨
@cyrdup @tpierrain
Agenda
• Banque d’investissement & marchés électroniques (–10mn)
• Construisons ensemble un « Pricer » (–20mn)
• Patterns: sequencer et conflation (–20mn)
• Reactive Manifesto & Conclusion (– 5 mn)
@cyrdup @tpierrain
Reactive manifesto v2
react to events react to load
: covered today
@cyrdup @tpierrain
Etre réactif …
Ce n’est pas un marteau en or
@cyrdup @tpierrain
Etre réactif …
C’est une forme particulière de design
@cyrdup @tpierrain
Une forme de design …
… qui a besoin de nouvelles patterns
@cyrdup @tpierrain
Etre réactif …1. Ce n’est pas un marteau en or
2. C’est une forme particulière de design
3. Qui a besoin de nouvelles patterns
@cyrdup @tpierrain
Une dern
ière
chose …
@cyrdup @tpierrain
@cyrdup @tpierrain
« Michonne » statement
• Application scalable verticalement
• Deadlock-free applications - OO composable dans un env //
• Concurrence « digeste » (tout public)
• Modèle de concurrence modifiable a posteriori
• TDD friendly
@cyrdup @tpierrain
La philosophie Michonne
• No lock-no deadlock
• Approche pit of success
• Une librairie, pas un framework
• Des primitives plutôt que des acteurs
• Modèle de composition façon « poupée russe » (sequencer, conflation, …)
• Un modèle asynchrone
Venez jouer avec nous !
Essayez Michonne ! !
pour aider à raffiner son API
!et/ou
!
Rejoignez le projet
en .NET, ou pour portage Java?
Merci pour votre attention !
@cyrdup @tpierrain
Quelques références1. Sites / blogs
• http://www.reactivemanifesto.org/
• http://mechanical-sympathy.blogspot.fr/ (Martin THOMPSON)
• http://dupdob.wordpress.com/ (many cores)
• http://tpierrain.blogspot.fr/ (use case driven)
2. Vidéos • Metrics, Metrics everywhere (Coda HALE)
https://www.youtube.com/watch?v=czes-oa0yik
• Vidéo: How NOT to measure latency (Gil TENE) http://www.infoq.com/presentations/latency-pitfalls
• React2014: https://www.youtube.com/user/reactconf/videos
3. Ouvrage: • Release It!: Design and deploy prod ready software (Michael T. NYGARD)