inspring conference - enterprise infrastructure

68
Enterprise Infrastucture the multithreading thing

Upload: appserverio

Post on 16-Jul-2015

284 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Inspring Conference - Enterprise Infrastructure

Enterprise Infrastucture the multithreading thing

Page 2: Inspring Conference - Enterprise Infrastructure

Stefan WillkommerCo-Founder and CTO

@

swillkommer

Page 3: Inspring Conference - Enterprise Infrastructure

TigerSissi

me ;)Annette

Page 4: Inspring Conference - Enterprise Infrastructure
Page 5: Inspring Conference - Enterprise Infrastructure

What is

ENTERPRISE

Page 6: Inspring Conference - Enterprise Infrastructure

more servers more transactionmore users

Page 7: Inspring Conference - Enterprise Infrastructure
Page 8: Inspring Conference - Enterprise Infrastructure

What is the

PROBLEM

Page 9: Inspring Conference - Enterprise Infrastructure

>1.000.000huge imports

records

Page 10: Inspring Conference - Enterprise Infrastructure

SERVERmultiple

setup

Page 11: Inspring Conference - Enterprise Infrastructure

TRAFFICvolatile

peaks

Page 12: Inspring Conference - Enterprise Infrastructure

CACHEincreasing

dilemma

Page 13: Inspring Conference - Enterprise Infrastructure
Page 14: Inspring Conference - Enterprise Infrastructure
Page 15: Inspring Conference - Enterprise Infrastructure

scale

OUT

Page 16: Inspring Conference - Enterprise Infrastructure
Page 17: Inspring Conference - Enterprise Infrastructure

What’s

WRONG?

Page 18: Inspring Conference - Enterprise Infrastructure

think outside the

BOX

Page 19: Inspring Conference - Enterprise Infrastructure

Java RubyPython JS

Page 20: Inspring Conference - Enterprise Infrastructure

and now?

Page 21: Inspring Conference - Enterprise Infrastructure

IMAGINE

Page 22: Inspring Conference - Enterprise Infrastructure

POSSIBILITIES

Page 23: Inspring Conference - Enterprise Infrastructure

EVENTLOOPS

Page 24: Inspring Conference - Enterprise Infrastructure

FORKS

Page 25: Inspring Conference - Enterprise Infrastructure

THREADS

Page 26: Inspring Conference - Enterprise Infrastructure

What is a

THREAD

Page 27: Inspring Conference - Enterprise Infrastructure

Process-ModelwithoutTHREADS

Page 28: Inspring Conference - Enterprise Infrastructure

Process-ModelwithTHREADS

Page 29: Inspring Conference - Enterprise Infrastructure

What do we

NEED

Page 30: Inspring Conference - Enterprise Infrastructure

PHP 5.3+

Page 31: Inspring Conference - Enterprise Infrastructure

compiled thread-safe--enable-maintainer-zts

Page 32: Inspring Conference - Enterprise Infrastructure

PECL extensionpthreads

Page 33: Inspring Conference - Enterprise Infrastructure

What can we do

NOW

Page 34: Inspring Conference - Enterprise Infrastructure

my firstTHREAD

Page 35: Inspring Conference - Enterprise Infrastructure

my firstTHREAD

Page 36: Inspring Conference - Enterprise Infrastructure

What is a

STACKABLE

Page 37: Inspring Conference - Enterprise Infrastructure

enabling sharing and synchronizingData over THREADS

Page 38: Inspring Conference - Enterprise Infrastructure

tasks which can be processedby a WORKER

Page 39: Inspring Conference - Enterprise Infrastructure

What can be

SHARED

Page 40: Inspring Conference - Enterprise Infrastructure

everything which is

SERIALIZABLE

Page 41: Inspring Conference - Enterprise Infrastructure

sharing Data with aStackable

Page 42: Inspring Conference - Enterprise Infrastructure

sharing Data with aStackable

Page 43: Inspring Conference - Enterprise Infrastructure

sharing Data with aStackable

Page 44: Inspring Conference - Enterprise Infrastructure

What is a

WORKER

Page 45: Inspring Conference - Enterprise Infrastructure

allows stacking ofDATA

Page 46: Inspring Conference - Enterprise Infrastructure

like aQUEUE

Page 47: Inspring Conference - Enterprise Infrastructure

SYNCHRONISATIONand

CONCURRENCY HANDLING

Page 48: Inspring Conference - Enterprise Infrastructure

waiting for Threads with

join()

Page 49: Inspring Conference - Enterprise Infrastructure

enables waiting for one or moreTHREADS

Page 50: Inspring Conference - Enterprise Infrastructure

makes sure that result is available inTHREAD

Page 51: Inspring Conference - Enterprise Infrastructure

synchronizing Threads with

synchronized()

Page 52: Inspring Conference - Enterprise Infrastructure

sharing

Resources

Page 53: Inspring Conference - Enterprise Infrastructure

What to do with all these

POSSIBILITIES

Page 54: Inspring Conference - Enterprise Infrastructure

sure thing, building an

INFRASTRUCTURE

Page 55: Inspring Conference - Enterprise Infrastructure
Page 56: Inspring Conference - Enterprise Infrastructure
Page 57: Inspring Conference - Enterprise Infrastructure

RuntimeApplicationServer

HTTPRemoteMethodMessage

Container 1MQ Server PC Server WebServer

Servlet Engine

Socket0.0.0.0:8587

Socket0.0.0.0:8585

Socket0.0.0.0:8586

MBeansSBeans

TimerService

Container 2

……

Page 58: Inspring Conference - Enterprise Infrastructure

Let’s get

STARTED

Page 59: Inspring Conference - Enterprise Infrastructure

running

NEOSon appserver.io

Page 60: Inspring Conference - Enterprise Infrastructure
Page 61: Inspring Conference - Enterprise Infrastructure
Page 62: Inspring Conference - Enterprise Infrastructure
Page 63: Inspring Conference - Enterprise Infrastructure
Page 64: Inspring Conference - Enterprise Infrastructure
Page 65: Inspring Conference - Enterprise Infrastructure
Page 66: Inspring Conference - Enterprise Infrastructure

What’s

NEXT?

Page 67: Inspring Conference - Enterprise Infrastructure

Version

1.1

Page 68: Inspring Conference - Enterprise Infrastructure

Thank You

Questions?