a promising approach to debugging remote promises thurs/03-leske-iwst2… · a promising approach...

33
A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz

Upload: others

Post on 25-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

A PROMISING APPROACH TO DEBUGGING REMOTE

PROMISES

2016 Max Leske Andrei Chiș Oscar Nierstrasz

Page 2: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

DISCLAIMER

Page 3: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

MOTIVATION

Page 4: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

request file list

display file list

receive file list

Page 5: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

request file list

display file listreceive file list

Page 6: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

request file list

PROMISE

receive file list

use

use

continue

Page 7: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

fileListPromise := [ self getFileList ] promise.

fileListPromise value.…

Page 8: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

request file list

what happened?

Page 9: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

stack tracestack trace

descriptiondescription

NULLNULL

what happened?

exception object

Page 10: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

IDEA

Page 11: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

1sender

receiver1

Object

Context

CompiledMethod1method

Process

suspendedContext1

Page 12: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

sender

nilsender

Process

suspendedContext

Page 13: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

sender

nil

sender

Process1

suspendedContext

sender

nilsender

Process2

suspendedContext

Page 14: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

sender

Process1+2

suspendedContext

sendersender

sender

sendernil

Page 15: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

DEMO

Page 16: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

MEMORY

Page 17: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

object header: 64 bits

2

pinned / immutable

slots

8

identity hash

22

format

5

class index

22

unused

2

garbage collection

3

Page 18: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

object header

extended header

slot 0 slot 1

slot 2 …

object

Page 19: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

object header

Context

method

closureOrNil

stackp

receiver

sender pc

16 / 56 variable slots

no extended header required

96 / 256 bytes per instance

Page 20: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

∑ ≪ 100 000 ~ 1000

small contexts: 96 kB

large contexts: 256 kB* 2 (reification)

small contexts: 192 kB

large contexts: 512 kB

estimated upper bounds

Page 21: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

memory consumption of contexts:

Page 22: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

object graph (simplified)

garbage collector

partially collected

Page 23: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

garbage collector

not collected

copy

Page 24: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

memory consumption of object graph: ?

Page 25: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

PERFORMANCE

Page 26: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

fileListPromise := [ self getFileList ] promise.

fileListPromise value.…

copy process full copy

reify contexts

Page 27: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

copying stack of 100 000 frames

0 MS

125 MS

250 MS

375 MS

500 MS

SMALL CONTEXTS LARGE CONTEXTS SMALL CONTEXTS LARGE CONTEXTS

with GC without GC

Page 28: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

performance:

Page 29: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

REMOTE COMMUNICATION

Page 30: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

protocol?

SeamlessSeamless

Page 31: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

DEBUGGING

serialised process

local copy of process

proxies

Page 32: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

THREADSpromises

events

asynchronous messages (actors)

asynchronous network requests

Page 33: A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES Thurs/03-Leske-IWST2… · A PROMISING APPROACH TO DEBUGGING REMOTE PROMISES 2016 Max Leske Andrei Chiș Oscar Nierstrasz. DISCLAIMER

request file list

what happened?

copy process full copy

reify contexts

Process1+2

suspendedContext

sender

nil

sender

sender

sender

sender