Basses latences, hauts débits : les secrets de la 
finance pour avoir des systèmes réactifs 
Cyrille DUPUYDAUBY 
Thomas PI...
Qui sommes nous ? 
use case driven (blog) Many Cores (blog)
Agenda 
• Banque d’investissement & marchés électroniques (–10mn) 
• Construisons ensemble un « Pricer » (–20mn) 
• Patter...
@cyrdup @tpierrain 
La banque d'investissement 
• Fournir des solutions de financement 
• Proposer des solutions 
d'invest...
http://upload.wikimedia.org/wikipedia/commons/b/b8@/Saco_yPradulou_pSt o@ck_tEpxiceharnrgaei.jnpg
@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 automates 
Algo 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 vol...
Agenda 
• Banque d’investissement & marchés électroniques (–10mn) 
• Construisons ensemble un « Pricer » (–20mn) 
• Patter...
Le Pasta Pricer
Mission 
• Calculer en temps réel le prix des paquets de pâtes 
proposées 
• Offre en pates: 
• 4 tailles de paquet: 250g,...
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...
@cyrdup @tpierrain 
Designons notre Pasta pricer! 
en mode 
¨EVENT STORMING¨
Bases pour notre représentation 
@cyrdup @tpierrain 
Pasta pricer 
on des flux d evenements 
reçoit .. 
on 
publie .. 
dan...
Bases pour notre représentation 
@cyrdup @tpierrain 
Pasta pricer 
3 étapes 
decoder Calculer encoder
Bases pour notre représentation 
@cyrdup @tpierrain 
Pasta pricer 
3 étapes 
inputs dec Calc Enc outputs 
ppeennnnee ppeen...
@cyrdup @tpierrain 
Designons notre Pasta pricer! 
on commence?
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
111001 
0101... 
dec Calc Enc 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne ...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
Oeufs 
1.5 € 
dec Calc Enc 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pe...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
Oeufs 
1.5 € 
dec Calc Enc 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pe...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
Oeufs 
1.5 € 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pe...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
Oeufs 
1.5 € 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pe...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc gnocchi 
Enc 
Oeufs 
1.5 € 
pen 
ne 
pen 
ne 
———— 
pen 
...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
Gnocchi 
5.4 € 
dec Calc gnocchi 
Enc 
Oeufs 
1.5 € 
pen 
ne 
pen ...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
Gnocchi 
5.4 € 
gnocchi 
Oeufs 
1.5 € 
pen 
ne 
pen ...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
011001 
01100 
gnocchi 
… 
Oeufs 
1.5 € 
pen 
ne 
pe...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
011001 
01100 
… 
Oeufs 
1.5 € 
pen 
ne 
pen 
ne 
——...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc penne 
Enc 
Oeufs 
1.5 € 
Oeufs 
1.5 € 
———— 
— 
pen 
ne ...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc penne 
Enc 
penne 
2.1 € 
Oeufs 
1.5 € 
———— 
— 
pen 
ne ...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
penne 
penne 
2.1 € 
Oeufs 
1.5 € 
———— 
— 
pen 
ne ...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
011001 
01100 
penne 
… 
Oeufs 
1.5 € 
———— 
— 
pen ...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
011001 
01100 
… 
Oeufs 
1.5 € 
———— 
— 
pen 
ne 
pe...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
Oeufs 
1.5 € 
pen 
ne 
———— 
— 
pen 
ne 
pen 
ne 
pe...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
Oeufs 
1.5 € 
——— — 
—— 
pen 
ne 
———— 
— 
pen 
ne 
...
@cyrdup @tpierrain 
Approche mono thread 
dec Calc Enc 
Oeufs 
1.5 € 
Pasta pricer 
—- 
— —— 
pen 
ne 
pen 
ne 
pen 
ne 
0...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
Oeufs 
1.5 € 
pen 
pen 
——- 
ne 
ne 
01100 
10110 
0...
@cyrdup @tpierrain 
Approche mono thread 
Pasta pricer 
dec Calc Enc 
———— 
— 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche mono thread 
avis sur la solution? 
-On n exploite pas la CPU au mieux 
-prix des dernières p...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Pasta pricer 
pen 
ne 
——— 
—— 
—- 
— 
—- 
— 
—- 
— 
—- 
— 
——— 
—— 
...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Pasta pricer 
pen 
ne 
——— 
—— 
—- 
— 
—- 
— 
—- 
— 
—- 
— 
——— 
—— 
...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Pasta pricer 
pen 
ne 
——— 
—— 
—- 
— 
—- 
— 
Oeufs ... 
—- 
— 
—- 
—...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Pasta pricer 
pen 
ne 
——— 
—— 
oeufs 
3.5 € 
—- 
— 
—- 
— 
—- 
— 
—-...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc oeufs 
enc 
3.5 € 
Calc enc 
Calc enc 
dec ... 
oeufs ...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
dec ... 
.... 
€ 
Calc enc 
C...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
dec ... 
.... 
€ 
Calc enc 
C...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
dec ... 
Calc enc 
Calc enc 
...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
dec ... 
Calc enc 
Calc enc 
...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
pen 
ne 
——— 
—— 
—- .... 
— 
—- 
— 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Calc enc 
Calc enc 
Calc enc 
Calc enc 
pen 
ne 
——— 
—— 
dec ... 
Ca...
Approche 1 worker thread / pâte 
@cyrdup @tpierrain 
Avis? 
-2400 threads ... Ca va pas la tête ?!? 
-context switches de ...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pen 
ne 
pen...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
111001 
0101... 
dec 
pen 
ne ...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
Oeufs 
bios 
3.5 € 
pen 
...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec Oeufs 
bios 
3.5 € 
pen 
n...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Gnocchi 
bio 
5.4 € 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen ...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne 
pen 
ne 
pen 
ne...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
ne 
pen 
ne ...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
ne 
pen 
ne ...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
ne 
pen 
ne ...
@cyrdup @tpierrain 
Approche pool de thread 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
ne 
pen 
ne ...
@cyrdup @tpierrain 
Approche « pool de thread » 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pen 
ne ...
@cyrdup @tpierrain 
Approche « pool de thread » 
c est mieux, non?
@cyrdup @tpierrain 
Approche « pool de thread » 
race conditions ?!?
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer: 
concentrons nous sur les gnocchis ! 
Calc 
Calc 
Cal...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
111001 
0101... 
dec...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
Oeufs 
bios 
3....
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec Oeufs 
bios 
3.5...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
carton 
+1.2 € ...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Gnocchi 
bio 
5.4 € 
Calc 
Enc 
Enc 
Enc ...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Gnocchi 
bio 
4.4 € !!! 
Calc 
Calc 
Calc 
Enc 
Enc 
...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
pe...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
ne...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
ne...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
pen 
ne pen 
ne...
Pool de thread & race conditions… 
@cyrdup @tpierrain 
Probleme: 
-le dernier prix publié pour les gnocchis 
ne tient pas ...
Approche multi tasks / thread pool 
@cyrdup @tpierrain 
respecter l ordre OK, 
mais comment? 
avec des 
locks?
Approche multi tasks / thread pool 
@cyrdup @tpierrain 
les vieux maitres en 
multithreading ont un dicton : 
¨qui dit loc...
Approche multi tasks / thread pool 
@cyrdup @tpierrain 
en resume, on veut: 
1. Protéger l acces à nos ressources 
(pates ...
En réalité, si on résume encore + 
@cyrdup @tpierrain 
On veut rendre la 
programmation reactive 
accessible à tous et san...
Agenda 
• Banque d’investissement & marchés électroniques (–10mn) 
• Construisons ensemble un « Pricer » (–20mn) 
• Patter...
Programmation réactive pour tous ! 
@cyrdup @tpierrain 
Notre solution: 
¨Le sequencer¨
Programmation réactive pour tous ! 
@cyrdup @tpierrain 
¨Le sequencer¨ 
- un pattern qui garantit l ordre d execution des ...
Programmation réactive pour tous ! 
@cyrdup @tpierrain 
¨Le sequencer¨ 
8 
9 
! 
1 
2 
1 
2 
3
@cyrdup @tpierrain 
Le sequencer en post-it 
gnocchi 
Sequencer 
gnocchi 
classe qui 
agrège un 
sequencer 
le sequencer 
...
@cyrdup @tpierrain 
Le sequencer en action 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
Gno 
cchi 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
111001 
0101... 
dec 
Gno 
cchi...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeufs 
1.5 € 
Gno 
cchi 
G...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeufs 
1.5 € 
Gno 
cchi 
G...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oe...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oe...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
011011 
0101… 
dec 
Se...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
farine 
0.5 € 
dec 
Se...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
farine 
0.5 € 
Se...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
gnocchi 
Enc 
Sequ 
gnocchi 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
gnocchi 
Enc 
Sequ 
gnocchi 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
01...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Sequ 
gnocchi 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Sequ 
gnocchi 
01...
@cyrdup @tpierrain 
Le sequencer en action 
GNOCCHI 
6.1 € 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
S...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
GNOCCHI 
6.1 € 
gnocchi 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
S...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
011001 
01100 
… 
gnocchi 
Enc 
Enc 
Enc 
Pasta pricer 
dec ...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
011001 
01100 
… 
Gno 
cch...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
011001 
01100 
… 
Gno 
cch...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Gno 
cchi 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Le sequencer en action 
on REFAIT LE MATCH ?
@cyrdup @tpierrain 
Le sequencer en action 
Pasta pricer 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
dec 
Gno 
cchi 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
111001 
0101... 
dec 
Gno 
cchi...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeufs 
1.5 € 
Gno 
cchi 
G...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeufs 
1.5 € 
Gno 
cchi 
G...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oe...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oe...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
011011 
0101… 
dec 
Se...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
farine 
0.5 € 
dec 
Se...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
farine 
0.5 € 
Se...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
gnocchi 
Enc 
Sequ 
gnocchi 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
gnocchi 
Enc 
Sequ 
gnocchi 
Enc 
Enc 
Pasta pricer 
dec 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Sequ 
gnocchi 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
01...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Sequ 
gnocchi 
fa...
@cyrdup @tpierrain 
Le sequencer en action 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Sequ 
gnocchi 
01...
@cyrdup @tpierrain 
Le sequencer en action 
GNOCCHI 
6.1 € 
gnocchi 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
S...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
GNOCCHI 
6.1 € 
gnocchi 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
S...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
011001 
01100 
… 
gnocchi 
Enc 
Enc 
Enc 
Pasta pricer 
dec ...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
011001 
01100 
… 
Gno 
cch...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
011001 
01100 
… 
Gno 
cch...
@cyrdup @tpierrain 
Le sequencer en action 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Gno 
cchi 
Gno 
cSEQchi 
G...
Et sous le capot du sequencer ? 
@cyrdup @tpierrain
l’implémentation elle, utilise 
des locks ou des CAS 
(Compare and Swap) en 
interne 
@cyrdup @tpierrain 
« Complexité » e...
Pour un usage d’une simplicité … 
@cyrdup @tpierrain 
! 
interface IUnitOfExecution 
{ 
void dispatch(Action action); 
}
@cyrdup @tpierrain 
Du code ! 
du code !
Pasta Pricer powered by 
@cyrdup @tpierrain
@cyrdup @tpierrain 
Avantages du sequencer 
simplicité 
lisibilité 
fiabilité 
non bloquant 
! 
en revanche ... 
! 
il va ...
@cyrdup @tpierrain 
Un autre outil ?!? 
¨et oui ... 
de l eau qui 
dort, se méfier 
il faut ¨
Le problème des pics de charge 
Comment les 
absorber sans 
prendre de la 
@cyrdup @tpierrain 
latence?
système déjà chargé 
@cyrdup @tpierrain 
Exemple de pic de charge 
gnocchi 
epinard 
Calc 
rotini 
epinard 
Calc 
Pici 
ep...
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .....
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.. . . ....
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. .. 
.....
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Enc 
.. .. .. 
.....
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
Enc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Enc 
Pasta p...
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
pen 
ne 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
pen 
ne 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
pen 
ne 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
pen 
ne 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
pen 
ne 
Gno 
cSEQchi 
G...
@cyrdup @tpierrain 
Exemple de pic de charge 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
pen 
ne 
Gno 
cSEQchi 
G...
@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 conflation 
le Balking 
Le dernier message sur le même sujet vient 
remplacer le précédent....
@cyrdup @tpierrain 
A ne pas confondre avec … 
La conflation n est 
pas de 
l échantillonage !
Même pic de charge… avec conflation 
système déjà chargé 
@cyrdup @tpierrain 
gnocchi 
epinard 
Calc 
rotini 
epinard 
Cal...
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
Pasta pricer système déjà chargé 
@cyrdup @tpierrain 
.. .. .. 
.. .. .. 
.. . . . 
....
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
.. .. ....
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
Calc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Calc 
.. .. .. 
....
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
Enc 
....
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
.. .. .. 
.. .. .. 
.. . . . 
. .. 
E...
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
0110010 
1100...
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
0110010 
1100...
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeufs 
bios 
...
Même pic de charge… avec conflation 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeufs 
bios 
...
@cyrdup @tpierrain 
Back pressure obligatoire ! 
¨la conflation 
ne s exerce que 
sur un système 
déjà occupé ¨
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
111001 
0...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeuf...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeuf...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeuf...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
100100 
1...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeuf...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeuf...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
Calc 
Enc 
Enc 
Enc 
Pasta pricer 
dec 
Oeuf...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
farine 
bio 
1.1 € 
Calc 
Enc 
Enc 
Enc 
Pas...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
farine 
bio 
1.1 € 
Calc 
Enc 
Enc 
Enc 
Pas...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
farine 
bio 
1.1 € 
Calc 
Enc 
Enc 
Enc 
Pas...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Calc 
farine 
bio 
1.1 € 
Calc 
Enc 
Enc 
Enc 
Pas...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Oeufs 
bios 
3.9 € 
Calc 
farine 
bio 
1.1 € 
Calc...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Oeufs 
bios 
3.9 € 
Calc 
farine 
bio 
1.1 € 
Calc...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Oeufs 
bios 
3.9 € 
Calc 
farine 
bio 
1.1 € 
Calc...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
farine 
bio 
1.1 € 
Oeufs 
bios 
3.9 € 
Calc 
fari...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
farine 
bio 
1.1 € 
Oeufs 
bios 
3.9 € 
Calc 
fari...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
farine 
bio 
Blé 1.1 € 
bio 
0.2 € 
Oeufs 
bios 
3...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Blé 
bio 
0.2 € 
farine 
bio 
1.1 € 
Oeufs 
bios 
...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
Blé 
bio 
0.2 € 
farine 
bio 
1.1 € 
Oeufs 
bios 
...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
oeufs 
bios 
1.7 € 
Blé 
bio 
0.2 € 
farine 
bio 
...
L’impact négatif des buffers intermédiaires… 
@cyrdup @tpierrain 
Calc 
oeufs 
bios 
1.7 € 
Blé 
bio 
0.2 € 
farine 
bio 
...
… pour que la conflation soit effective … 
@cyrdup @tpierrain 
évitez les buffer 
ou les files 
intermédiaires !
@cyrdup @tpierrain 
Donc … 
Pour juguler les pics de charge
Demo 
@cyrdup @tpierrain
Facteurs clés pour le succès 
• L’importance de la modélisation de votre //isme 
@cyrdup @tpierrain 
! 
• L’importance de ...
@cyrdup @tpierrain 
Un avis, maître ? 
¨un ensemble de 
propriétés, un 
système Réactif 
est ¨
Agenda 
• Banque d’investissement & marchés électroniques (–10mn) 
• Construisons ensemble un « Pricer » (–20mn) 
• Patter...
@cyrdup @tpierrain 
Reactive manifesto v2 
react to events react to load 
: covered today
Etre réactif … 
Ce n’est pas un marteau en or 
@cyrdup @tpierrain
@cyrdup @tpierrain 
Etre réactif … 
C’est une forme particulière 
de design
Une forme de design … 
… qui a besoin de nouvelles patterns 
@cyrdup @tpierrain
@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 ...
@cyrdup @tpierrain 
Une dernière 
chose …
@cyrdup @tpierrain
@cyrdup @tpierrain 
« Michonne » statement 
• Application scalable verticalement 
• Deadlock-free applications - OO 
compo...
@cyrdup @tpierrain 
La philosophie Michonne 
• No lock-no deadlock 
• Approche pit of success 
• Une librairie, pas un fra...
Venez jouer avec nous ! 
Essayez Michonne ! 
! 
pour aider à raffiner son API 
! 
et/ou 
! 
Rejoignez le projet 
en .NET, ...
@cyrdup @tpierrain 
Quelques références 
1. Sites / blogs 
• http://www.reactivemanifesto.org/ 
• http://mechanical-sympat...
Faible latence, haut debit PerfUG (Septembre 2014)
Prochain SlideShare
Chargement dans…5
×

Faible latence, haut debit PerfUG (Septembre 2014)

1 182 vues

Publié le

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)

Publié dans : Ingénierie
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 182
Sur SlideShare
0
Issues des intégrations
0
Intégrations
213
Actions
Partages
0
Téléchargements
23
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Faible latence, haut debit PerfUG (Septembre 2014)

  1. 1. Basses latences, hauts débits : les secrets de la finance pour avoir des systèmes réactifs Cyrille DUPUYDAUBY Thomas PIERRAIN ! SOCIETE GENERALE
  2. 2. Qui sommes nous ? use case driven (blog) Many Cores (blog)
  3. 3. 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
  4. 4. @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
  5. 5. http://upload.wikimedia.org/wikipedia/commons/b/b8@/Saco_yPradulou_pSt o@ck_tEpxiceharnrgaei.jnpg
  6. 6. @cyrdup @tpierrain Les activités de marché
  7. 7. Carnet d’ordres Prix Moteur
  8. 8. PAS COMPRIS?
  9. 9. @cyrdup @tpierrain Le supermarché
  10. 10. @cyrdup @tpierrain Les acteurs Investisseurs Market Makers Scalpers
  11. 11. @cyrdup @tpierrain Les automates Algo trading Arbitrage
  12. 12. @cyrdup @tpierrain Les enjeux • Complexité ! • Fiabilité/disponibilité ! • Capacité en volume ! • Latence ! !
  13. 13. @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
  14. 14. 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
  15. 15. Le Pasta Pricer
  16. 16. 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
  17. 17. 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
  18. 18. @cyrdup @tpierrain Designons notre Pasta pricer! en mode ¨EVENT STORMING¨
  19. 19. Bases pour notre représentation @cyrdup @tpierrain Pasta pricer on des flux d evenements reçoit .. on publie .. dans la même boite...
  20. 20. Bases pour notre représentation @cyrdup @tpierrain Pasta pricer 3 étapes decoder Calculer encoder
  21. 21. Bases pour notre représentation @cyrdup @tpierrain Pasta pricer 3 étapes inputs dec Calc Enc outputs ppeennnnee ppeennnnee ppeennnnee pgneonncechi ppeennnnee ppeennnnee ppeennnnee ppeennnnee 2400 pates différentes
  22. 22. @cyrdup @tpierrain Designons notre Pasta pricer! on commence?
  23. 23. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  24. 24. @cyrdup @tpierrain Approche mono thread Pasta pricer 111001 0101... dec Calc Enc ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  25. 25. @cyrdup @tpierrain Approche mono thread Pasta pricer Oeufs 1.5 € dec Calc Enc ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  26. 26. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne Oeufs 1.5 €
  27. 27. @cyrdup @tpierrain Approche mono thread Pasta pricer Oeufs 1.5 € dec Calc Enc ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  28. 28. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  29. 29. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  30. 30. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  31. 31. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc gnocchi Enc Oeufs 1.5 € pen ne pen ne ———— pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne Oeufs 1.5 €
  32. 32. @cyrdup @tpierrain Approche mono thread Pasta pricer Gnocchi 5.4 € dec Calc gnocchi Enc Oeufs 1.5 € pen ne pen ne ———— pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  33. 33. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc Gnocchi 5.4 € gnocchi Oeufs 1.5 € pen ne pen ne ———— pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  34. 34. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc 011001 01100 gnocchi … Oeufs 1.5 € pen ne pen ne ———— pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  35. 35. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc 011001 01100 … Oeufs 1.5 € pen ne pen ne ———— pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  36. 36. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc penne Enc Oeufs 1.5 € Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  37. 37. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc penne Enc penne 2.1 € Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  38. 38. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc penne penne 2.1 € Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  39. 39. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc 011001 01100 penne … Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  40. 40. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc 011001 01100 … Oeufs 1.5 € ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  41. 41. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc Oeufs 1.5 € pen ne ———— — pen ne pen ne pen ne pen ne ne pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne pen ne pen ne —- — pen ne pen ne
  42. 42. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc Oeufs 1.5 € ——— — —— pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne 01100 10110 0…
  43. 43. @cyrdup @tpierrain Approche mono thread dec Calc Enc Oeufs 1.5 € Pasta pricer —- — —— pen ne pen ne pen ne 01100 10110 0…
  44. 44. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc Oeufs 1.5 € pen pen ——- ne ne 01100 10110 0…
  45. 45. @cyrdup @tpierrain Approche mono thread Pasta pricer dec Calc Enc ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne ———— — pen ne pen ne pen ne pen ne pen ne pen ne pen ne
  46. 46. @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 !
  47. 47. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — —- — —- — —- — ——— —— gno cchi
  48. 48. Approche 1 worker thread / pâte @cyrdup @tpierrain Pasta pricer pen ne ——— —— —- — —- — —- — —- — ——— —— gno cchi dec Calc enc Calc enc Calc enc Calc enc ... Calc enc Calc enc Calc enc Calc enc 111001 0101...
  49. 49. Approche 1 worker thread / pâte @cyrdup @tpierrain Pasta pricer pen ne ——— —— —- — —- — —- — —- — ——— —— gno cchi dec Calc enc Calc enc Calc enc Calc enc ... Calc enc Calc enc Calc enc Calc enc Oeufs bios 3.5 €
  50. 50. Approche 1 worker thread / pâte @cyrdup @tpierrain Pasta pricer pen ne ——— —— —- — —- — Oeufs ... —- — —- — ——— —— gno cchi dec Calc enc Calc enc Calc enc Calc enc Calc enc Calc enc Calc enc Calc enc bios 3.5 €
  51. 51. Approche 1 worker thread / pâte @cyrdup @tpierrain Pasta pricer pen ne ——— —— oeufs 3.5 € —- — —- — —- — —- — ——— —— oeufs 3.5 € gno cchi dec Calc enc Calc enc Calc enc Calc enc ... Calc enc Calc enc Calc enc Calc enc oeufs 3.5 € oeufs 3.5 €
  52. 52. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc oeufs enc 3.5 € Calc enc Calc enc dec ... oeufs 3.5 € Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — pen ne ——— —— —- — —- — —- — ——— —— gno cchi oeufs 3.5 € oeufs 3.5 €
  53. 53. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc dec ... .... € Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — pen ne ——— —— —- — —- — —- — ——— —— gno cchi penne 5.4 € .... .... € ...... 8.2 €
  54. 54. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc dec ... .... € Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — pen ne ——— —— —- — —- — —- — ——— —— gno cchi penne 5.4 € .... .... € ...... 8.2 €
  55. 55. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — pen ne ——— —— —- — —- — —- — ——— —— gno cchi 1110 1001 011 1110 0... 111101 . ..... ....
  56. 56. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — —- — —- — —- — ——— —— gno cchi 1110 1001 011 1110 0... 111101 . ..... ....
  57. 57. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — —- — —- — —- — ——— —— gno cchi 1110 1001 011 1110 0... .... 111101 . ..... pen ne ——— ——
  58. 58. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — —- — —- — ——— —— gno cchi 1110 1001 011 1110 0... 111101 . ..... .... —- —
  59. 59. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 1110 1001 011 1110 0... 111101 . ..... .... —- — —- — —- — —- — ——— —— gno cchi
  60. 60. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 1110 1001 011 1110 0... 111101 . ..... .... —- — —- — —- — —- — ——— —— gno cchi
  61. 61. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 1110 1001 011 1110 0... 111101 . ..... .... —- — —- — —- — —- — ——— —— gno cchi
  62. 62. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 1110 1001 011 1110 0... 111101 . ..... .... —- — —- — —- — —- — ——— —— gno cchi
  63. 63. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 1110 1001 011 1110 0... 111101 . ..... .... —- — —- — —- — —- — ——— —— gno cchi
  64. 64. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 1110 1001 011 111101 . ..... .... —- — —- — —- — —- — ——— —— gno cchi
  65. 65. Approche 1 worker thread / pâte pen ne ——— —— —- .... — —- — @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 111101 . ..... —- — —- — ——— —— gno cchi
  66. 66. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer 111101 . ..... —- — —- — —- — —- — ——— —— gno cchi
  67. 67. Approche 1 worker thread / pâte @cyrdup @tpierrain Calc enc Calc enc Calc enc Calc enc pen ne ——— —— dec ... Calc enc Calc enc Calc enc Calc enc Pasta pricer —- — —- — —- — —- — ——— —— gno cchi
  68. 68. Approche 1 worker thread / pâte @cyrdup @tpierrain 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 !
  69. 69. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  70. 70. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc 111001 0101... dec pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  71. 71. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec Oeufs bios 3.5 € pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  72. 72. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec Oeufs bios 3.5 € pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  73. 73. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio penne bio Oeufs bios 3.5 € Oeufs bios 3.5 €
  74. 74. @cyrdup @tpierrain Approche pool de thread Pasta pricer Gnocchi bio 5.4 € Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio penne bio penne bio 3.2 €
  75. 75. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne Gnocchi bio 5.4 € gnocchi bio penne bio penne bio 3.2 €
  76. 76. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 011000 11010 gnocchi bio penne bio … 111110 00110 …
  77. 77. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio penne bio 011000 11010 … 111110 00110 …
  78. 78. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 011000 11010 … 111110 00110 … pen ne pen ne
  79. 79. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 011000 11010 … 111110 00110 … pen ne pen ne
  80. 80. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 011000 11010 … 111110 00110 … pen ne pen ne
  81. 81. @cyrdup @tpierrain Approche pool de thread Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 011000 11010 … pen ne pen ne
  82. 82. @cyrdup @tpierrain Approche « pool de thread » Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  83. 83. @cyrdup @tpierrain Approche « pool de thread » c est mieux, non?
  84. 84. @cyrdup @tpierrain Approche « pool de thread » race conditions ?!?
  85. 85. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer: concentrons nous sur les gnocchis ! Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  86. 86. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc 111001 0101... dec pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  87. 87. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec Oeufs bios 3.5 € pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  88. 88. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec Oeufs bios 3.5 € pen ne pen pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne ne
  89. 89. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio Oeufs bios 3.5 € pen ne ne
  90. 90. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio Oeufs bios 3.5 € pen ne ne 000111 0010 ...
  91. 91. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio Oeufs bios 3.5 € pen ne ne carton +1.2 €
  92. 92. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec carton +1.2 € pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio Oeufs bios 3.5 € pen ne ne
  93. 93. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio Oeufs bios 3.5 € pen ne ne gnocchi bio carton +1.2 €
  94. 94. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Gnocchi bio 5.4 € Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio Oeufs bios 3.5 € pen ne ne gnocchi bio
  95. 95. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio Oeufs bios 3.5 € pen ne ne Gnocchi bio 5.4 € gnocchi bio
  96. 96. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Gnocchi bio 4.4 € !!! Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio pen ne ne Gnocchi bio 5.4 € gnocchi bio !!!
  97. 97. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio pen ne ne gnocchi bio Gnocchi bio 4.4 € 011001 01100 … 5.4 €
  98. 98. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio pen ne ne Gnocchi bio 4.4 € 011001 01100 … 5.4 €
  99. 99. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen pen ne pen ne pen ne pen ne pen ne ... .. .. pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne gnocchi bio pen ne ne 011001 01100 … 110001 0111 … 5.4 € 4.4 €
  100. 100. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 011001 01100 … 110001 0111 … 5.4 € 4.4 € pen ne pen ne
  101. 101. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 011001 01100 … 110001 0111 … 5.4 € 4.4 € pen ne pen ne dernier prix pour les gnocchis: 4.4 € !!!
  102. 102. Pool de thread & race conditions… @cyrdup @tpierrain Pasta pricer Calc Calc Calc Enc Enc Enc dec pen ne pen ne pen ne pen ne pen ne pen ne Gno cchi pen ne pen ne pen ne pen ne pen ne .... ... pen pen ne pen ne .. .... pen ne ne 110001 0111 … 4.4 € pen ne pen ne dernier prix pour les gnocchis: 4.4 € !!!
  103. 103. Pool de thread & race conditions… @cyrdup @tpierrain 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
  104. 104. Approche multi tasks / thread pool @cyrdup @tpierrain respecter l ordre OK, mais comment? avec des locks?
  105. 105. Approche multi tasks / thread pool @cyrdup @tpierrain les vieux maitres en multithreading ont un dicton : ¨qui dit lock ... ... dit deadlock¨
  106. 106. Approche multi tasks / thread pool @cyrdup @tpierrain en resume, on veut: 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
  107. 107. En réalité, si on résume encore + @cyrdup @tpierrain On veut rendre la programmation reactive accessible à tous et sans danger
  108. 108. 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
  109. 109. Programmation réactive pour tous ! @cyrdup @tpierrain Notre solution: ¨Le sequencer¨
  110. 110. Programmation réactive pour tous ! @cyrdup @tpierrain ¨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 //
  111. 111. Programmation réactive pour tous ! @cyrdup @tpierrain ¨Le sequencer¨ 8 9 ! 1 2 1 2 3
  112. 112. @cyrdup @tpierrain Le sequencer en post-it gnocchi Sequencer 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
  113. 113. @cyrdup @tpierrain Le sequencer en action Pasta pricer Calc Calc Calc Enc Enc Enc dec Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  114. 114. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer 111001 0101... dec Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  115. 115. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  116. 116. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  117. 117. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  118. 118. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € 011011 0101… pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  119. 119. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer 011011 0101… dec Sequ gnocchi Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  120. 120. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer farine 0.5 € dec Sequ gnocchi Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  121. 121. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec farine 0.5 € Sequ gnocchi Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  122. 122. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec farine 0.5 € Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  123. 123. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec farine 0.5 € Gnocchi 5.4 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  124. 124. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc gnocchi Enc Sequ gnocchi Enc Enc Pasta pricer dec farine 0.5 € Gnocchi 5.4 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  125. 125. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc gnocchi Enc Sequ gnocchi Enc Enc Pasta pricer dec farine 0.5 € 011001 01100 … pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  126. 126. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec 011001 01100 … farine 0.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  127. 127. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi farine 0.5 € 011001 01100 … pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  128. 128. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi 011001 01100 … farine 0.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  129. 129. @cyrdup @tpierrain Le sequencer en action GNOCCHI 6.1 € gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  130. 130. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc GNOCCHI 6.1 € gnocchi Enc Enc Enc Pasta pricer dec Sequ gnocchi pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  131. 131. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc 011001 01100 … gnocchi Enc Enc Enc Pasta pricer dec Sequ gnocchi pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  132. 132. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec 011001 01100 … Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  133. 133. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec 011001 01100 … Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  134. 134. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  135. 135. @cyrdup @tpierrain Le sequencer en action on REFAIT LE MATCH ?
  136. 136. @cyrdup @tpierrain Le sequencer en action Pasta pricer Calc Calc Calc Enc Enc Enc dec Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  137. 137. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer 111001 0101... dec Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  138. 138. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  139. 139. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  140. 140. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  141. 141. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec Oeufs 1.5 € 011011 0101… pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  142. 142. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer 011011 0101… dec Sequ gnocchi Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  143. 143. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer farine 0.5 € dec Sequ gnocchi Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  144. 144. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec farine 0.5 € Sequ gnocchi Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  145. 145. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec farine 0.5 € Oeufs 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  146. 146. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec farine 0.5 € Gnocchi 5.4 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  147. 147. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc gnocchi Enc Sequ gnocchi Enc Enc Pasta pricer dec farine 0.5 € Gnocchi 5.4 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  148. 148. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc gnocchi Enc Sequ gnocchi Enc Enc Pasta pricer dec farine 0.5 € 011001 01100 … pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  149. 149. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Sequ gnocchi Calc Calc Enc Enc Enc Pasta pricer dec 011001 01100 … farine 0.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  150. 150. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi farine 0.5 € 011001 01100 … pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  151. 151. @cyrdup @tpierrain Le sequencer en action gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi 011001 01100 … farine 0.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  152. 152. @cyrdup @tpierrain Le sequencer en action GNOCCHI 6.1 € gnocchi Calc Calc Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  153. 153. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc GNOCCHI 6.1 € gnocchi Enc Enc Enc Pasta pricer dec Sequ gnocchi pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  154. 154. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc 011001 01100 … gnocchi Enc Enc Enc Pasta pricer dec Sequ gnocchi pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi
  155. 155. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec 011001 01100 … Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  156. 156. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec 011001 01100 … Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  157. 157. @cyrdup @tpierrain Le sequencer en action Calc Calc Calc Enc Enc Enc Pasta pricer dec Gno cchi Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi pen ne Gno cSEQchi Gno ScEQchi Gno cSEQchi SEQ Gno ScEQchi
  158. 158. Et sous le capot du sequencer ? @cyrdup @tpierrain
  159. 159. l’implémentation elle, utilise des locks ou des CAS (Compare and Swap) en interne @cyrdup @tpierrain « Complexité » encapsulée
  160. 160. Pour un usage d’une simplicité … @cyrdup @tpierrain ! interface IUnitOfExecution { void dispatch(Action action); }
  161. 161. @cyrdup @tpierrain Du code ! du code !
  162. 162. Pasta Pricer powered by @cyrdup @tpierrain
  163. 163. @cyrdup @tpierrain Avantages du sequencer simplicité lisibilité fiabilité non bloquant ! en revanche ... ! il va nous manquer un autre outil ...
  164. 164. @cyrdup @tpierrain Un autre outil ?!? ¨et oui ... de l eau qui dort, se méfier il faut ¨
  165. 165. Le problème des pics de charge Comment les absorber sans prendre de la @cyrdup @tpierrain latence?
  166. 166. système déjà chargé @cyrdup @tpierrain Exemple de pic de charge gnocchi epinard Calc rotini epinard Calc Pici epinard Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi epinard épinard 1.5 € pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi Sequ rotini epinard épinard 1.5 € Sequ pici epinard épinard 1.5 €
  167. 167. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  168. 168. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé 111001 0101... . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  169. 169. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  170. 170. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  171. 171. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé 100100 101... Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  172. 172. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé farine bio 1.1 € Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  173. 173. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  174. 174. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé 100100 101... . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  175. 175. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé oeufs bios 2.2 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  176. 176. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € 011110 0101... oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  177. 177. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  178. 178. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € 100100 101... farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  179. 179. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé blé bios 0.2 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  180. 180. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé blé bios 0.2 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € 011110 0101... farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  181. 181. @cyrdup @tpierrain Exemple de pic de charge .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi système déjà chargé . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . 0110010 1100… OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  182. 182. @cyrdup @tpierrain Exemple de pic de charge Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  183. 183. @cyrdup @tpierrain Exemple de pic de charge Calc Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Enc .. .. .. .. .. .. .. . . . . .. Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  184. 184. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc .. .. .. .. .. .. .. . . . . .. Enc .. .. .. .. .. .. .. . . . . .. Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… 0110010 1100… OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  185. 185. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc Enc .. .. .. .. .. .. .. . . . . .. Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… 0110010 1100… OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  186. 186. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi 0110010 1100… 0110010 1100… 0110010 1100… OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  187. 187. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi 0110010 1100… 0110010 1100… 0110010 1100… OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.O1 e€ufs bios 3.5 €
  188. 188. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi Oeufs bios 3.5 € OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.1 €
  189. 189. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi Oeufs bios 3.5 € OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.1 €
  190. 190. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi Oeufs bios 3.5 € !!! OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.1 € !!!
  191. 191. @cyrdup @tpierrain Exemple de pic de charge Calc Calc Calc Enc Enc Enc Pasta pricer dec pen ne Gno cSEQchi Gno ScEQchi farf alle SEQ Gno cSEQchi SEQ Gno ScEQchi Gno cSEQchi Oeufs bios 3.5 € OEUFS BIOS 1.7 € blé bios 0.2 € farine bio 1.1 € oeufs bios f2a.2ri n€e bio 1.1 € prix plus frais !!! !!! vieux prix
  192. 192. @cyrdup @tpierrain En cas de pic de charge… comment dépenser sa CPU a bon escient ? la conflation
  193. 193. @cyrdup @tpierrain La conflation ¨ C est le moyen d amortir les pics de charge quand le système est déjà bien occupé ¨
  194. 194. @cyrdup @tpierrain 2 types de conflation le Balking Le dernier message sur le même sujet vient remplacer le précédent. ¨Annule et remplace¨ Oeufs bios 3.5 € Oeufs bios 4.1 € Oeufs bios 4.1 € t1 t0 t2 le merge le dernier message sur le même sujet vient fusionner son contenu avec le précédent Oeufs bios 5kg: 20 € Oeufs bios 1kg: 5 € Oeufs bios 1 kg: 5 € 5 kg: 20 € t1 t0 t2
  195. 195. @cyrdup @tpierrain A ne pas confondre avec … La conflation n est pas de l échantillonage !
  196. 196. Même pic de charge… avec conflation système déjà chargé @cyrdup @tpierrain gnocchi epinard Calc rotini epinard Calc Pici epinard Calc Enc Enc Enc Pasta pricer dec Sequ gnocchi epinard épinard 1.5 € Sequ rotini epinard épinard 1.5 € Sequ pici epinard épinard 1.5 €
  197. 197. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  198. 198. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc 111001 0101... dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  199. 199. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  200. 200. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  201. 201. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc 100100 101... dec Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  202. 202. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec farine bio 1.1 € Oeufs bios 3.5 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. €
  203. 203. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  204. 204. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc 100100 101... dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  205. 205. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec oeufs bios 2.2 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  206. 206. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.9 €
  207. 207. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € 011110 0101... farine bio 1.O1 e€ufs bios 3.9 €
  208. 208. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.1 € farine bio 1.O1 e€ufs bios 3.9 €
  209. 209. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  210. 210. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € 100100 101... farine bio 1.O1 e€ufs bios 3.5 €
  211. 211. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec blé bios 0.2 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 €
  212. 212. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec blé bios 0.2 € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € farine bio 1.O1 e€ufs bios 3.5 € 011110 0101...
  213. 213. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . 0110010 OEUFS 1100… BIOS 1.7 € blé bios 0.2 € farine bio 1.O1 e€ufs bios 3.5 €
  214. 214. Même pic de charge… avec conflation Pasta pricer système déjà chargé @cyrdup @tpierrain .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc Enc Enc Enc dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . 0110010 1100… blé bios 0.2 € farine bio 1.O1 e€ufs bios 1.7 €
  215. 215. Même pic de charge… avec conflation @cyrdup @tpierrain Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Enc Enc Enc Pasta pricer dec . .. .. .. .. .. .. .. .. . .. .. .. . .. .. € . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… blé bios 0.2 € farine bio 1.O1 e€ufs bios 1.7 €
  216. 216. Même pic de charge… avec conflation @cyrdup @tpierrain Calc Calc .. .. .. .. .. .. .. . . . . .. Calc .. .. .. .. .. .. .. . . . . .. Enc .. .. .. .. .. .. .. . . . . .. Enc Enc Pasta pricer dec . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… blé bios 0.2 € farine bio 1.O1 e€ufs bios 1.7 €
  217. 217. Même pic de charge… avec conflation @cyrdup @tpierrain Calc Calc Calc Enc .. .. .. .. .. .. .. . . . . .. Enc .. .. .. .. .. .. .. . . . . .. Enc Pasta pricer dec . .. .. .. .. .. .. .. .. . 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… 0110010 1100… blé bios 0.2 € farine bio 1.O1 e€ufs bios 1.7 €
  218. 218. Même pic de charge… avec conflation @cyrdup @tpierrain Calc Calc Calc Enc Enc .. .. .. .. .. .. .. . . . . .. Enc Pasta pricer dec 0110010 1100… . .. .. .. .. .. .. .. .. . 0110010 1100… 0110010 1100… blé bios 0.2 € farine bio 1.O1 e€ufs bios 1.7 €
  219. 219. Même pic de charge… avec conflation @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec 0110010 1100… 0110010 1100… 0110010 1100… blé bios 0.2 € farine bio 1.O1 e€ufs bios 1.7 €
  220. 220. Même pic de charge… avec conflation @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec 0110010 1100… 0110010 1100… 0110010 1100… blé bios 0.2 € farine bio 1.O1 e€ufs bios 1.7 €
  221. 221. Même pic de charge… avec conflation @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 1.7 € blé bios 0.2 € farine bio 1.1 €
  222. 222. Même pic de charge… avec conflation @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 1.7 € blé bios 0.2 € farine bio 1.1 € prix frais ;-/ engorgement limité
  223. 223. @cyrdup @tpierrain Back pressure obligatoire ! ¨la conflation ne s exerce que sur un système déjà occupé ¨
  224. 224. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec
  225. 225. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer 111001 0101... dec
  226. 226. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 €
  227. 227. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 €
  228. 228. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 €
  229. 229. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer 100100 101... dec Oeufs bios 3.5 €
  230. 230. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € farine bio 1.1 €
  231. 231. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € farine bio 1.1 €
  232. 232. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € farine bio 1.1 €
  233. 233. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € 100100 101...
  234. 234. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € Oeufs bios 3.9 €
  235. 235. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € Oeufs bios 3.9 €
  236. 236. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € Oeufs bios 3.9 € 011110 0101...
  237. 237. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € farine bio 1.1 €
  238. 238. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € farine bio 1.1 €
  239. 239. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € farine bio 1.1 € 100100 101...
  240. 240. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc farine bio 1.1 € Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € blé bios 0.2 €
  241. 241. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc farine bio 1.1 € Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € blé bios 0.2 € 011110 0101...
  242. 242. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc farine bio Blé 1.1 € bio 0.2 € Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € Oeufs bios 1.7 €
  243. 243. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Blé bio 0.2 € farine bio 1.1 € Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € Oeufs bios 1.7 €
  244. 244. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc Blé bio 0.2 € farine bio 1.1 € Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € oeufs bios 1.7 €
  245. 245. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc oeufs bios 1.7 € Blé bio 0.2 € farine bio 1.1 € Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 €
  246. 246. L’impact négatif des buffers intermédiaires… @cyrdup @tpierrain Calc oeufs bios 1.7 € Blé bio 0.2 € farine bio 1.1 € Oeufs bios 3.9 € Calc farine bio 1.1 € Calc Enc Enc Enc Pasta pricer dec Oeufs bios 3.5 € prend du retard par le centre !!!
  247. 247. … pour que la conflation soit effective … @cyrdup @tpierrain évitez les buffer ou les files intermédiaires !
  248. 248. @cyrdup @tpierrain Donc … Pour juguler les pics de charge
  249. 249. Demo @cyrdup @tpierrain
  250. 250. Facteurs clés pour le succès • L’importance de la modélisation de votre //isme @cyrdup @tpierrain ! • L’importance de la mesure SLA percentiles !
  251. 251. @cyrdup @tpierrain Un avis, maître ? ¨un ensemble de propriétés, un système Réactif est ¨
  252. 252. 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
  253. 253. @cyrdup @tpierrain Reactive manifesto v2 react to events react to load : covered today
  254. 254. Etre réactif … Ce n’est pas un marteau en or @cyrdup @tpierrain
  255. 255. @cyrdup @tpierrain Etre réactif … C’est une forme particulière de design
  256. 256. Une forme de design … … qui a besoin de nouvelles patterns @cyrdup @tpierrain
  257. 257. @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
  258. 258. @cyrdup @tpierrain Une dernière chose …
  259. 259. @cyrdup @tpierrain
  260. 260. @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
  261. 261. @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
  262. 262. 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 !
  263. 263. @cyrdup @tpierrain Quelques références 1. 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)

×