This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Threads in PHP „will changes the world“
Stefan WillkommerCo-Founder and CTO
wag
ner_t
im78
@
Tim WagnerCo-Founder and Lead Architect
@
swillkommer
TigerSissi
me ;)Annette
Uschi
me ah Tim
Barbecue
Let’s
DIFFERENTIATE
EVENTLOOPS
FORKS
THREADS
What is a
THREAD
Process-Model without
THREADS
Process-Model with
THREADS
What do we
NEED
PHP 5.3+
compiled thread-safe--enable-maintainer-zts
PECL extensionpthreads
my first
THREAD
my first
THREAD
What is a
STACKABLE
enabling sharing and synchronizingData over THREADS
tasks which can be processedby a WORKER
What can be
SHARED
everything which is
SERIALIZABLE
sharing Data with a
Stackable
sharing Data with a
Stackable
sharing Data with a
Stackable
What is a
WORKER
allows stacking ofDATA
like aQUEUE
using a
Worker
using a
Worker
SYNCHRONISATION and
CONCURRENCY HANDLING
waiting for Threads with
join()
enables waiting for one or moreTHREADS
makes sure that result is available inTHREAD
waiting by using
Join
waiting by using
Join
waiting by using
Join
synchronizing Threads with
synchronized()
synchronize with synchronized()
synchronize with synchronized()
synchronize with
synchronized()
concurrency handling by using
MUTEX
synchronize with
Mutex
synchronize with
Mutex
synchronize with
Mutex
sharing
Resources
sharing Sockets
sharing Sockets
sharing Sockets
What to do with all these
POSSIBILITIES
GOODeverything
is
BAD
RuntimeApplicationServerPersistenceContainer Web
MQ Objects WebServer
Worker Threads
Socket 0.0.0.0:8587
Socket 0.0.0.0:8585
Socket 0.0.0.0:8586
HTTPRemoteMethodMessage
Timer
MBeans SBeans
!
Worker
Performance comparison
Test Profile
Setup: 1 Webserver + 1 DB Server Virtualisation: KVM / Intel Xeon / 4 Cores OS: Debian wheezy Magento: 1.13.1.0 EE Amount of Products: 10,000
mill
isec
onds
0
65
130
195
260
Homepage Category Page Detailpage
AS, mod PHP nginx, PHP FPM
The power of
MEMORY
Performance comparison
Test Profile
Setup: 1 Webserver + 1 DB Server Virtualisation: KVM / Intel Xeon / 4 Cores OS: Debian wheezy Magento: 1.13.1.0 EE Amount of Products: 10,000