A GENERIC DURABLE OBJECT MODEL WITH DURABLE COMPUTING · • Own memory management schemes • Own...

Preview:

Citation preview

A GENERIC DURABLE OBJECT MODEL WITH DURABLE COMPUTING

Gary Wang – IntelJohnu George, Debo Dutta – Cisco

Objects

ObjectsObjects

CURRENTBIGDATASYSTEMSTACK

Storage

Compute

SSD3DXpointDRAM

TPU

GPU

FPGA

Questions?1.Howtorepresentobjectgraphsinsoftwareefficiently?2.Howtomapsoftwaremodelstohardwareefficiently?

CPU

PROBLEM:OBJECT TRANSFORMATIONS->HIGHSERDESCOST

Objects

ObjectsObjects

DB

Files

Files

DB

Files

Services

Query

Parse

Marshal

UnMarshal

.

Update

Writewithschema

SerDes Checkpoint

On-Heap

PROBLEM:LIMITEDHEAPSPACE

Objects

ObjectsObjects

Externalstorage

PROBLEM:HIGH MEMORYMANAGEMENTOVERHEADS

Heapmemorymanagement

PROBLEM:HIGH COMMUNICATIONOVERHEADS

Service1 Service2

Marshal/Unmarshal data

SOLUTION?:LEVERAGE SMARTHARDWARE

StorageHardwareAccelerators

TLDR:CURRENTBIGDATAWORKLOADS

ØJVMperformancecosts• Serialization/Deserialization• JNIinvocationcost

ØComplex• Owncachingschemes• Ownmemorymanagementschemes• Owntransformationschemes

ØPoorPerformanceofJVMbasedstacks• Highermemoryusage• FrequentGCpauses

MNEMONIC:INTRODUCTIONØ Evolvingnewstoragetechnologies– NVM,3DXpoint

• Relativeperformanceofsystemlayerschanged• Changesrequiredinsoftwareprogrammingmodels

Ø ThemostpopularPLamongApacheprojects- Java• Approx.60%ofTLParejavabasedprojects

q NeedforaJavabasednon-volatileprogrammingmodelthatprovidesanunifiedviewofstoragetechnologies– DRAM,PMEM,SSDetc.

=>Mnemonic

Objects

ObjectsObjects

WHATISMNEMONIC?

Storage

Compute

SSDPMEMDRAM

GPUCPU TPU

ObjectGraphGenericDurableObjectModel

GenericDurableComputingModel

GENERICDURABLEOBJECTMODEL

• Simplebutnotsimplistic• Generic• Durable• Auto-Reclaimable• LazilyRestorable• MemoryAgnostic• NoSerDes• NativeIdentifiable• OptionalHandlerStore

AVAILABLEMEMORYSERVICES

• NVML-VMEM• PMALLOC• NVML-PMEM• SYS-VMEM

MemoryService

BENEFIT:INPLACEUPDATES

B

A

CreateUpdateamembervalue

Changereference

BENEFIT:AUTORECLAIM

UnreachableDurableObject

GarbageCollection

UsedMem.Space

Iftheflagofautoreclaimistrue

ManuallyDestroy

BENEFIT:LAZILYRESTORABLE

HandlerReference

DurableObjectA

DurableObjectB

StrongReference

HandlerReference

HandlerReference

BENEFIT:MEMORYAGNOSTIC

MemoryService

MemoryService

CONSISTENCY

• None• Close• Flush• SingleObjectPersist• ObjectDeepPersist• AtomicOperation• Transaction

DURABLEOBJECTSTATES

Invisible

Restored

Dangled

Floating

Retentive

setautoreclaimCreate

Notexisted

setautoreclaim

unsetautoreclaim unsetautoreclaim

restore

collect

manuallydestroy

manuallydestroy

collect

collect

Unreachable

DURABLEOBJECTGRAPHEXAMPLE

DURABLECOLLECTIONS

• SimpleMemoryAbstractionforCommonDataStructures• DurableChunk• DurableBuffer• DurableList• DurableMap• DurableTree• DurableArray• DurableSet (WIP)

• DistributedCollections(WIP)

EXAMPLESDurableMaps

DurableHashMap<String,Integer>map=DurableHashMapFactory.create(allocator);map.put("hello",1);map.put("world",2);map.put("hello",1);

DurableArrays

DurableArray<String>array=DurableArrayFactory.create(allocator,100);array.set(1,"string0");array.get(1);

DURABLECOMPUTINGMODEL

• Simplebutnotsimplistic• AcrossVMboundary• NoMarshal/Un-marshalling• SharedViewpoint• Schema-less• EnableSmartHardware

DURABLECOMPUTINGSERVICE

Service1

Service2

Servicen

HWAccelerators

HWAccelerators

COLLECTEDOBJECTS

Id=2

Id=2

Id=2

Id=2Path=2

Id=1

Id=1

Id=1

->1 ->5

Id=5

Id=5

Id=5

MNEMONICINTEGRATION

MNEMONIC– HADOOP

MneInputFormat

MneMapreduceRecordReader

MneOutputFormat

MneMapreduceRecordWriter

Partitions1,2…. Partitions1,2….

MR-likeEngines

MNEMONIC- SPARK

DurableRDD[D]RDD[T1] RDD[T2]

Partitions1,2….

makeDurable()withtransform

MneInputFormat MneOutputFormat

REDUCEGCACTIVITIES

LesserGCforMnemonicapplications

BUBBLESORTINGEXPERIMENTS

CONCLUSIONWithoutMnemonic

Ø JVMperformancecosts• SerDes• JNIinvocation

Ø Complex• Owncachingschemes• Ownmemorymanagementschemes• Ownstructuretransformations

Ø PoorPerformanceofJVMbasedstacks• Highermemoryusage• FrequentGCpauses

WithMnemonic

Ø DurableObjectModel• Unifiedviewofstoragedevices• NoSerDes cost• Lessmemoryusage• ReducedJCpauses• Handlesmemorymanagement

Ø DurableComputingmodel• BypassJNIcalls• Betterperformance

Thanks!

Gang(Gary)WangGang1.wang@intel.comgaryw@apache.org

JoinMnemoniccommunitydev-subscribe@mnemonic.incubator.apache.org

JohnuGeorgejohnugeo@cisco.comjohnu@apache.org

Debo Duttadedutta@cisco.comddutta@apache.org

Recommended