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)[email protected]@apache.org
[email protected]@apache.org
Debo [email protected]@apache.org