faible latence, haut debit perfug (septembre 2014)

Post on 19-Jun-2015

506 Views

Category:

Engineering

1 Downloads

Preview:

Click to see full reader

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)

top related