Moving the EOS namespace to persistent memory Tobias Kapp e - - PowerPoint PPT Presentation

moving the eos namespace to persistent memory
SMART_READER_LITE
LIVE PREVIEW

Moving the EOS namespace to persistent memory Tobias Kapp e - - PowerPoint PPT Presentation

Moving the EOS namespace to persistent memory Tobias Kapp e (IT-DSS-DT) tkappe@cern.ch Supervised by Elvin Alin Sindrilaru August 26, 2015 Moving the EOS namespace to persistent memory 1 EOS . . . . . . provides reliable and fast


slide-1
SLIDE 1

Moving the EOS namespace to persistent memory

Tobias Kapp´ e (IT-DSS-DT) tkappe@cern.ch Supervised by Elvin Alin Sindrilaru

August 26, 2015 Moving the EOS namespace to persistent memory 1

slide-2
SLIDE 2

EOS . . .

  • . . . provides reliable and fast data storage.
  • . . . stores measurements and processed data.
  • . . . is used by all LHC experiments.
  • . . . contains roughly 32PB.
  • . . . has a namespace (100GB) kept in RAM.

August 26, 2015 Moving the EOS namespace to persistent memory 2

slide-3
SLIDE 3

Problem

  • Booting into memory from disk is slow.
  • This limits availability of the service.

August 26, 2015 Moving the EOS namespace to persistent memory 3

slide-4
SLIDE 4

Non-volatile RAM

  • Simulated by DIMM RAM with a battery
  • More sophisticated technologies incoming
  • Boot speed could benefit from this.
  • No disk reads to restore changelog.
  • Consistent representation restored quicker.
  • Mnemosyne toolchain provided by DSI
  • EOS used as a ‘testbed’ for further use

August 26, 2015 Moving the EOS namespace to persistent memory 4

slide-5
SLIDE 5

Non-volatile RAM

Persistency is a ‘vertical’ property:

  • Transactional updates for consistency.
  • Persistent memory should not point to

non-persistent memory.

  • It transcends some API boundaries.

August 26, 2015 Moving the EOS namespace to persistent memory 4

slide-6
SLIDE 6

My contribution

  • Hashtable suitable for transactional use
  • Instrumentation to benchmark and validate
  • First integration into EOS codebase

August 26, 2015 Moving the EOS namespace to persistent memory 5

slide-7
SLIDE 7

Hashtable performance

50 100 150 200 250 300 350 400 450

1 2 3 4 5 6 7 8 9 1

Time (ms) Number of entries google::dense_hash_map google::sparse_hash_map std::map PersistentHashtable

August 26, 2015 Moving the EOS namespace to persistent memory 6

slide-8
SLIDE 8

Hashtable performance

50 100 150 200 250 300 350 400 450

1 2 3 4 5 6 7 8 9 1

Time (ms) Number of entries google::dense_hash_map google::sparse_hash_map std::map PersistentHashtable

PersistentHashtable scales and can match google::dense hash map!

August 26, 2015 Moving the EOS namespace to persistent memory 6

slide-9
SLIDE 9

Hashtable memory usage

20 40 60 80 100 120 140 160

1 2 3 4 5 6 7 8 9 1

Memory used (MB) Number of entries google::dense_hash_map google::sparse_hash_map std::map PersistentHashtable

August 26, 2015 Moving the EOS namespace to persistent memory 7

slide-10
SLIDE 10

Hashtable memory usage

20 40 60 80 100 120 140 160

1 2 3 4 5 6 7 8 9 1

Memory used (MB) Number of entries google::dense_hash_map google::sparse_hash_map std::map PersistentHashtable

PersistentHashtable has more memory overhead (due to the AVL tree).

August 26, 2015 Moving the EOS namespace to persistent memory 7

slide-11
SLIDE 11

Future work

  • Mnemosyne needs upgrade to newer gcc/ICC.
  • More transactional data structures, for e.g.:
  • std::string
  • std::vector
  • Which data should be kept persistent?
  • Move those over to persistent memory.
  • Which transient data can be quickly restored?

August 26, 2015 Moving the EOS namespace to persistent memory 8