Transcript
Page 1: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Concurrent Message Processing using Transactional

Memory in the Actor ModelWTM 2013

Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe

[email protected]

Page 2: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 2

The Actor Model

• Hewitt & Baker - „Laws for Communicating Parallel Processes“

• Motivated by the prospect of highly parallel computing machines with many microprocessors + own local memory

Page 3: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 3

The Actor Model – basic principles

• everything is an actor (VS an object)• asynchronous message passing• has access to its local state only • strong encapsulation• inherently concurrent

Page 4: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 4

OOP and Actors: Communication

Object A Object B

Actor A Object B

ObjectB.publicField=10ObjectB.publicMethod()

ActorA [SendMessageTo] ActorB

VS

asynchronous message passing

direct access

Page 5: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

5

Essential Actor properties

• Processes one message at a time– Yey! No race conditions or other hazards

• No (access to) shared state • Can send messages to other actors only• Switch its behavior

Yaroslav Hayduk

Page 6: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

6

Behind the (Actor) scenes

Yaroslav Hayduk

Mailbox…Contains 2 Insert 3

2 5 6 8 9

Local Actor state

In progress:Contains 8

C

A

B

A “List” Actor

Remove 9

Page 7: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 7

Main issues

1.The processing of one message at a time

Page 8: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 8

Notable Related Work

• Scholliers et al. – Parallel Actor Monitors– does not use STM for processing messages

concurrently• Shams et al. – Habanero Scala– async-finish programming model– processes parts of one message (and not many

messages) concurrently

Page 9: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 9

Idea:

Process multiple messages concurrently

• Problem: the list can be easily corrupted• Solution: Wrap each message processing in an

STM transaction. When conflicts happen, (roll back and) repeat the message processing

Page 10: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 10

Concurrent message processing

Actor Mailbox…Contains 2 Insert 3

2 5 6 8 9

Local Actor state

A “List” Actor

Messages In progress

Contains 6

Insert 12

… Insert 12

Each message is processed in a transaction

Page 11: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

11

Coordinated Transactions

Yaroslav Hayduk

A

A List Range (1..25) Actor

Global list sum

A List Range (100..125) Actor

……….

Page 12: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 12

Local Actor Sum: Zoom-in

2 5 6 8 9

Local Actor state

A List Range Actor

Messages In progress

1. Calculate local sum2. Forward new partial sum3. Block (for consistency)

New partial sumPrev partial sum

Page 13: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 13

Main issues

2.Extensive blocking of actors involved in a

coordinated transaction

Page 14: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 14

Idea:

Remove blocking; process other messages speculatively

• Pre-commit the local coordinated transaction• Process other messages in a transaction

speculatively

Page 15: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 15

Non-blocking coordinated transactions

2 5 6 8 9

Local Actor state

A List Range Actor

Messages In progress

Saved: Partially committed local coordinated transaction

Actor Mailbox…Contains 2 List sum

Speculatively process:Insert 3

Page 16: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 16

Evaluation

50 100 250 500 750 10000

10000

20000

30000

40000

50000

60000

List Actors = 8, Writes = 98%, Sum = 1%

Regular Concurrent Coordinated

Request Actors

Mill

is

Page 17: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 17

Evaluation

50 100 250 500 750 10000

10000

20000

30000

40000

50000

60000

70000

List Actors = 16, Writes = 98%, Sum = 1%

Regular Concurrent Coordinated

Request Actors

Mill

is

Page 18: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Yaroslav Hayduk 18

Summary

• By using speculation, we can achieve a higher message throughput in the Actor Model

• By using STM we guarantee that the Actor’s state is never corrupted

Page 19: Concurrent Message Processing using Transactional Memory in the Actor Model WTM 2013 Pascal Felber, Derin Harmanci, Yaroslav Hayduk and Anita Sobe first.last@unine.ch

Thank you Questions?


Top Related