con1855_chambille-operating a 16tb jvm

Upload: sbabuind

Post on 06-Jul-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    1/27

    Antoine ChambilleHead of Research & Development, Quartet FS

    @activepivot

    Amir JavanshirPrincipal Software Engineer, racle

    @!mir"#avanshir

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    2/27

     w w w . q u a r t e t f s . c o m$

    %redit Ris 'se %ase

       R

       (   S

       )

        E

       *

       +

       (   *

       E

       S

       !

       %

       ,

       (   -

       E   P

       (   -

       

       ,

    -aluation of .nancialinstruments for eachsimulation

    / 01trades

    / $22time points

    1onte3%arlo simulationof future maret data

    / 4222

    5 6 7 of raw data

    Performcalculation o

    !ggregate tdistri8

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    3/27

     w w w . q u a r t e t f s . c o m9

    In-Memory Database…

    %olumn Store

    High %ardinalit: 7itmap(nde/

    1ultidimensional!ggregation

    Designed for 1ulticore

    !ctivePivot (n31emor: !nal:tics

    … in Pure Java

    Strong customi;ationcapa8ilities

    Fast Safe !ccessi8le to man:

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    4/27

    %op:right < $20= racle and

    Oracle platform for in-memory comp1B 7ig 1emor: 1achineC era8:te Scale %omputing levStandards

     HE platform for in3me

    computing3 !"#A$%!" SSE1 1E1R

    3!"#A$%!"&P"# &"CO'D

    &%&!"M$A'D(ID!)

    *+,!"#A$%!"&P"# &"CO'D

    M"MO#% $A'D(ID!)

    P

    $

    3.,CO#"& 3/0COMP1!"!)#"AD&

       )   i  g   h   A  v  a   i   l  a   b   i   l   i   t  y

       $  u

       i   l   2

       i  n

    O( atency 4 *0/ns

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    5/27 w w w . q u a r t e t f s . c o m4

    3Heap 1emor:  java.nio.Bufer G

    // Allocate an array of doubles (in the heap)

    double[] array = new double[1024*1024]

    // !!!

    double "alue#4 = array[#4]

    array[#00] = array[100] $ array[200]

    // Allocate an off%heap buffer of doubles

    &ouble'uffer buf = 'yte'uffer!allocateDirect(*1024*1024)!as&ouble'uffer()

    // !!!

    double "alue#4 = buf!et(#4)

    buf!put(#00 buf!et(100) $ buf!et(200))

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    6/27 w w w . q u a r t e t f s . c o mB

    3Heap 1emor: sun.misc.UnsaeG

    // +ou ,now what this is

    sun!-isc!.nsafe .A = getUnsafe()

    // Allocate 3' of off%heap -e-ory

    lon pointer = .A!allocateMemory(*1024*1024)

    .A!setMemory(pointer *1024*1024 (byte) 0)

    // !!!

    double "alue#4 = .A!getDouble(pointer $ *#4)

    .A! putDouble(  pointer $ *#00

      .A!getDouble(pointer $ *100) $ .A!getDouble(pointer $ *200)

    )

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    7/27

     w w w . q u a r t e t f s . c o m7

    Performance5

    3Heap 1emor:in the core data structures

    %olumns of num8ers

    -ectors of simulations

    Hash ta8les

    (nde/es Seriali;ed o8ects

    3Heap 1emor:

    1sability5

    Standard #ava in the Iuengine

    * to , ratio

    9 7 Heap for Iueriescalculations

    0$ 7 dataset 3HeaJ ld L generation

    J oung L generation

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    8/27

     w w w . q u a r t e t f s . c o m8

    6or7Join Pool 8

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    9/27

     w w w . q u a r t e t f s . c o m9

    'nleashing Many3%ores Parallelism

    7efore !fter

    %P'

    D!!

    D

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    10/27

     w w w . q u a r t e t f s . c o m10

    'nleashing Many3%ores Parallelism

    * threa2

    < 3/0

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    11/27

     w w w . q u a r t e t f s . c o m11

    'nleashing Many3%ores Parallelism

    Quer: ime secondsG

    02

    $2

    92

    2

    *3 s

    *0 s

    , s

    & 3<

    * !$

    & *=<

    = !$

    & .<

    3 !$

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    12/27

     w w w . q u a r t e t f s . c o m12

    *'1! !rchitecture

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    13/27

     w w w . q u a r t e t f s . c o m13

    *'1! !rchitecture

    9$ *'1!nodes

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    14/27

     w w w . q u a r t e t f s . c o m14

    *'1! !rchitecture

    !llocated memor: !

    Process !

    Process 7

    !llocated memor: 7

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    15/27

     w w w . q u a r t e t f s . c o m04

    *'1! S:stem Ni8rar:

    protected interface u-aibrary e5tends co-!sun!6na!ibrary 7

      /** 8return %1 if .3A is not a"ailable 9 */

      int nu-a:a"ailable()

      /** 8return the nu-ber of -e-ory nodes in the syste-! */

      int nu-a:nu-:confiured:nodes()

      /** 8return the .3A node the cpu currently belons to! */

      int nu-a:node:of:cpu(int cpu)

      int nu-a:run:on:node(int node)

      int nu-a:distance(int node1 int node2)

      //!!!

    ;

    Linux 

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    16/27

     w w w . q u a r t e t f s . c o m0B

    *'1! S:stem Ni8rar:

    u-aibrary nu-aib = (u-aibrary) ati"e!loadLibrary(

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    17/27

     w w w . q u a r t e t f s . c o m0O

    *'1! S:stem Ni8rar:

    u-aibrary nu-aib = (u-aibrary) ati"e!loadLibrary(

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    18/27

     w w w . q u a r t e t f s . c o m18

    'nleashing *'1! Parallelism

    D!! P!R((*S

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    19/27

     w w w . q u a r t e t f s . c o m19

    'nleashing *'1! Parallelism

    Quer: hroughput

    $22

    =22

    B22

    2

    & 3<

    * !$

    & *=<

    = !$

    & .<

    3 !$

    =>?$s

    3>>?$s

    @,>?$s

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    20/27

     w w w . q u a r t e t f s . c o m$2

    +ar8age %ollection (G1 and the 3TB Hea!

    %CCD$.se1?

    %CCD>nitialEeapiFe=G2H#G4GG2 %CCD3a5EeapiFe=G2H#G4GG2

    %CCD3a5&irect3e-oryiFe=1G1H41GH#GGG12%CCD%.seAdapti"eiFeolicy %CCD$.nloc,5peri-entalI3@ptions

    %CCDur"i"orJatio=1

    %CCDarallel?Khreads=HL0 %CCD?onc?Khreads=240 %CCD1EeapMasteercent=#

    %CCD13a5ewiFeercent=# %CCD13i5ed?i"eKhresholdercent=0

    %CCD>nitiatinEeap@ccupancyercent=10 %CCD1ewiFeercent=N0

    %CCD1Jeser"eercent=10 %CCD1EeapJeioniFe=GG##44G2

    %CCDareaeiFe>n'ytes=2L4G#4#L %CCD3a5?ause3illis=1000

    %CCDJeser"ed?ode?acheiFe=2#1L#240

    %CCD$rintAdapti"eiFeolicy %CCD$rint? %CCD

    $rint?Application?oncurrentKi-e

    %CCD$rint?ApplicationtoppedKi-e %CCD$rint?&etails %CCD

    $rint?Ki-eta-ps

    %CCD$rintKenurin&istribution %CCD$e-ented?ode?ache

    %CCD1oe"el=finest

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    21/27

     w w w . q u a r t e t f s . c o m$0

    +ar8age %ollection (G1 and the 3TB Hea!

    %CCD$.se1?

    %CCD>nitialEeapiFe=G2H#G4GG2 %CCD3a5EeapiFe=G2H#G4GG2

    %CCD3a5&irect3e-oryiFe=1G1H41GH#GGG12%CCD%.seAdapti"eiFeolicy %CCD$.nloc,5peri-entalI3@ptions

    %CCDur"i"orJatio=1

    %CCDarallel?Khreads=HL0 %CCD?onc?Khreads=240 %CCD1EeapMasteercent=#

    %CCD13a5ewiFeercent=# %CCD13i5ed?i"eKhresholdercent=0

    %CCD>nitiatinEeap@ccupancyercent=10 %CCD1ewiFeercent=N0

    %CCD1Jeser"eercent=10 %CCD1EeapJeioniFe=GG##44G2

    %CCDareaeiFe>n'ytes=2L4G#4#L %CCD3a5?ause3illis=1000

    %CCDJeser"ed?ode?acheiFe=2#1L#240

    %CCD$rintAdapti"eiFeolicy %CCD$rint? %CCD

    $rint?Application?oncurrentKi-e

    %CCD$rint?ApplicationtoppedKi-e %CCD$rint?&etails %CCD

    $rint?Ki-eta-ps

    %CCD$rintKenurin&istribution %CCD$e-ented?ode?ache

    %CCD1oe"el=finest

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    22/27

     w w w . q u a r t e t f s . c o m$$

    +ar8age %ollection (G1 and the 3TB Hea!

    %CCD$.se1?

    %CCD>nitialEeapiFe=G2H#G4GG2 %CCD3a5EeapiFe=G2H#G4GG2

    %CCD3a5&irect3e-oryiFe=1G1H41GH#GGG12%CCD%.seAdapti"eiFeolicy %CCD$.nloc,5peri-entalI3@ptions

    %CCDur"i"orJatio=1

    %CCDarallel?Khreads=HL0 %CCD?onc?Khreads=240 %CCD1EeapMasteercent=#

    %CCD13a5ewiFeercent=# %CCD13i5ed?i"eKhresholdercent=0

    %CCD>nitiatinEeap@ccupancyercent=10 %CCD1ewiFeercent=N0

    %CCD1Jeser"eercent=10 %CCD1EeapJeioniFe=GG##44G2

    %CCDareaeiFe>n'ytes=2L4G#4#L %CCD3a5?ause3illis=1000

    %CCDJeser"ed?ode?acheiFe=2#1L#240

    %CCD$rintAdapti"eiFeolicy %CCD$rint? %CCD

    $rint?Application?oncurrentKi-e

    %CCD$rint?ApplicationtoppedKi-e %CCD$rint?&etails %CCD

    $rint?Ki-eta-ps

    %CCD$rintKenurin&istribution %CCD$e-ented?ode?ache

    %CCD1oe"el=finest

    8 ll i

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    23/27

     w w w . q u a r t e t f s . c o m$9

    +ar8age %ollection (G1 and the 3TB Hea!

    %CCD$.se1?

    %CCD>nitialEeapiFe=G2H#G4GG2 %CCD3a5EeapiFe=G2H#G4GG2

    %CCD3a5&irect3e-oryiFe=1G1H41GH#GGG12%CCD%.seAdapti"eiFeolicy %CCD$.nloc,5peri-entalI3@ptions

    %CCDur"i"orJatio=1

    %CCDarallel?Khreads=HL0 %CCD?onc?Khreads=240 %CCD1EeapMasteercent=#

    %CCD13a5ewiFeercent=# %CCD13i5ed?i"eKhresholdercent=0

    %CCD>nitiatinEeap@ccupancyercent=10 %CCD1ewiFeercent=N0

    %CCD1Jeser"eercent=10 %CCD1EeapJeioniFe=GG##44G2

    %CCDareaeiFe>n'ytes=2L4G#4#L %CCD3a5?ause3illis=1000

    %CCDJeser"ed?ode?acheiFe=2#1L#240

    %CCD$rintAdapti"eiFeolicy %CCD$rint? %CCD

    $rint?Application?oncurrentKi-e

    %CCD$rint?ApplicationtoppedKi-e %CCD$rint?&etails %CCD

    $rint?Ki-eta-ps

    %CCD$rintKenurin&istribution %CCD$e-ented?ode?ache

    %CCD1oe"el=finest

    + 8 % ll i

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    24/27

     w w w . q u a r t e t f s . c o m$=

    +ar8age %ollection (G1 and the 3TB Hea!

    %CCD$.se1?

    %CCD>nitialEeapiFe=G2H#G4GG2 %CCD3a5EeapiFe=G2H#G4GG2

    %CCD3a5&irect3e-oryiFe=1G1H41GH#GGG12%CCD%.seAdapti"eiFeolicy %CCD$.nloc,5peri-entalI3@ptions

    %CCDur"i"orJatio=1

    %CCDarallel?Khreads=HL0 %CCD?onc?Khreads=240 %CCD1EeapMasteercent=#

    %CCD13a5ewiFeercent=# %CCD13i5ed?i"eKhresholdercent=0

    %CCD>nitiatinEeap@ccupancyercent=10 %CCD1ewiFeercent=N0

    %CCD1Jeser"eercent=10 %CCD1EeapJeioniFe=GG##44G2

    %CCDareaeiFe>n'ytes=2L4G#4#L %CCD3a5?ause3illis=1000

    %CCDJeser"ed?ode?acheiFe=2#1L#240

    %CCD$rintAdapti"eiFeolicy %CCD$rint? %CCD

    $rint?Application?oncurrentKi-e

    %CCD$rint?ApplicationtoppedKi-e %CCD$rint?&etails %CCD

    $rint?Ki-eta-ps

    %CCD$rintKenurin&istribution %CCD$e-ented?ode?ache

    %CCD1oe"el=finest

    + 8 % ll ti St t

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    25/27

     w w w . q u a r t e t f s . c o m25

    +ar8age %ollection Stress est

    +ar8age %ollection ime Distri8ution

    Mh t * t

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    26/27

     w w w . q u a r t e t f s . c o m$B

    Alrea2y:or7ing HugeG read3onl:

    Iuerieson a lot ofG static data

    Mhats *e/t

    !he roa2 toOperational Analytics Narge data updates

    Real3time data updates

    %ontinuous Iueries on live data

    J 1i/ed Morload L operations

    Oracle an2 uarpartnership racle Engineering will u

    !ctivePivot as the referefor ver: large heap supp

    Quartet FS will implemerecommendations 8: rEngineering

    ObBectives Scale +% on man: cores

    *'1!

    Reduce +% pause times

    !ccelerate Full +%

    Support 1i/ed3Morload

  • 8/17/2019 Con1855_chambille-Operating a 16tb Jvm

    27/27

    Do :ou want to 8e paPlease mae the c

    w w w I u a r t e t f s c o m

    Antoine Chambilleantoinecham8ille@Iuartetfscom

    Amir Javanshiramiravanshir@oraclecom