SlideShare une entreprise Scribd logo
1  sur  52
Sessions and Non-Sessions
PHP Usergroup Munich
2016-05-25
Why?
● Sessions tend to get in the way of modern
applications and infrastructure
● People seem to ignore the fine print when
rolling their own session handler
● Also: It's an old topic that everyone got in touch
with, but hasn't fully understood in all depth
● Are there alternatives to sessions?
PHP Sessions
What do you expect from using them?
How do they behave?
PHP Sessions
Anything I write to $_SESSION comes back on
the next page after calling session_start()
if (isset($_GET['subrequest'])) {
$requestStart = time();
$subrequest = intval($_GET['subrequest']);
$delay = isset($_GET['delay']) ? intval($_GET['delay']) : 1000000;
session_start();
echo "<html><body><pre>";
echo "Request started on ".date('Y-m-d H:i:s',
$requestStart)."n";
echo "Executing subrequest ". $subrequest."n";
echo "Session startedn";
echo date('Y-m-d H:i:s') . "n";
if ($_SESSION['content'] != "foobar in the session") {
echo "Expected value NOT FOUNDn";
}
$_SESSION['requests'][] = $subrequest;
echo "waiting $delay usecn";
usleep($delay);
echo "back againn";
echo date('Y-m-d H:i:s') . "n";
echo "Received subrequests: ". implode(', ',
$_SESSION['requests'])."n";
echo "</pre></body></html>";
exit();
}
if (isset($_GET['subrequest'])) {
// ...
}
session_start();
$_SESSION['content'] = "foobar in the session";
$_SESSION['requests'] = array();
$delay = isset($_GET['delay']) ? intval($_GET['delay']) : 1000000;
?>
<html>
<body>
<iframe src="?subrequest=1&delay=<?=$delay?>" width="90%"
height="200"></iframe>
<hr>
<iframe src="?subrequest=2&delay=<?=$delay?>" width="90%"
height="200"></iframe>
<hr>
<iframe src="?subrequest=3&delay=<?=$delay?>" width="90%"
height="200"></iframe>
</body>
</html>
SessionHandler: files
Delay: 1000ms
SessionHandler: files
Delay: 500ms
Firebug network tab
http://stackoverflow.com/questions/21044608/php-session-locking-and-using-memcache-to-store-sessions
Memcache 3.0.4 introduces locking
Changelog http://pecl.php.net/package/memcache/3.0.4
http://stackoverflow.com/questions/21044608/php-session-locking-and-using-memcache-to-store-sessions
Memcache 3.0.4 introduces locking
Changelog http://pecl.php.net/package/memcache/3.0.4
A lock on the data is essential for
consistent access to the data.
It prevents overwriting or losing data.
PHP Sessions
PHP Sessions
Locks on the network
are not that easy.
Memcache config docs
http://php.net/manual/en/memcache.ini.php
Undocumented memcache.lock_timeout = 15
Released 2009-02-22
Last version 3.0.8 from 2013-04-07
Conclusion: Don't use Memcache extension
Memcache config docs
http://php.net/manual/en/memcache.ini.php
Undocumented memcache.lock_timeout = 15
Released 2009-02-22
Last version 3.0.8 from 2013-04-07
Conclusion: Don't use Memcache extension
Memcache config docs
http://php.net/manual/en/memcached.configuration.php
All config values at least documented
Locking since 1.0.0 from 2009-07-07
Memcached config docs
There are plenty of possible values for
session.save_handler
Always available: files
Coming with extensions:
memcache
memcached
sqlite
redis
cluster (Zend Session Cluster)
...
However...
Locks on the network
are not that easy.
Network locking may add additional delays
The problem with lock timeouts
(illustrated with Zend Session Cluster)
2sec1sec 4sec?
500msec 1500msec? 2500msec?
Redis session handler :(https://github.com/phpredis/phpredis/issues/37
Redis session handler :(https://github.com/phpredis/phpredis/issues/37
PHP Sessions
Lets do it in userland code!
SessionHandlerInterfacehttp://php.net/manual/en/class.sessionhandlerinterface.php
Warning...
Locks on the network
are not that easy.
Symfony
https://github.com/symfony/symfony/issues/4976
What do you want to do, anyway?
Solved in 3 days!
Encrypting the locally stored session data
https://github.com/ezimuel/PHP-Secure-Session
… extends SessionHandler
https://github.com/ezimuel/PHP-Secure-Session/blob/master/src/SecureHandler.php
Avoiding the problem?
https://github.com/laravel/framework/blob/5.2/src/Illuminate/Session/Middleware/StartSession.php#L54-L55
Laravel code comment:
“Note that the Laravel sessions
do not make use of PHP "native" sessions
in any way since they are crappy.”
https://github.com/laravel/framework/issues/7549
Known limitation → closed
<rant>
https://github.com/laravel/framework/issues/6777
“Can anyone provide a fix?”
No? → closed
Reopen?
“Hmmm, maybe.
We've got no idea what is going on here.”
<rant>
https://github.com/laravel/framework/issues/8172
<rant>
https://github.com/laravel/framework/issues/8172#issuecomment-114260875
“I solved my problem putting session_start() in the
top of my routes file.”
“Oh wow. NEVER do that!”
“why? That solved my problem”
“Because that's totally incorrect.” → closed
<rant>
</rant>
PHP Sessions
They are crappy?
What's the problem?
PHP Sessions
● session_start automatically writes a cookie
● calling it multiple times will create conflicts
● wrapping it into OOP seems complicated
● What about this?
http://paul-m-jones.com/archives/6310
Non-session solutions*
* no PHP-provided session functions
Data in cookies
https://github.com/Ocramius/PSR7Session
Data in cookies
Data in cookies
Data in cookies
Split the problem
Restful web APIs should manage
resources independent from others
POST /api/basket
→ creates /api/basket/randomid
POST /api/customer
→ creates /api/customer/randomid
No blocking, can be done concurrently.
Split the problem
However...
PUT /api/basket/randomid → with dataset A
PUT /api/basket/randomid → with dataset B
Who will win?
Move the problem elsewhere
CouchDB has a strategy for concurrent changes:
1) Reject writes with outdated datasets
2) Accept both changes and let the application
or the user sort it out.
https://wiki.apache.org/couchdb/Replication_and_conflicts
Summary
PHP Sessions
Session data is individual global state
PHP Sessions
Fixing Addressing long lock times in the code
PHP 5, 7:
session_write_close(); // ASAP
PHP 7:
session_start(['read_and_close' => true]);
PHP SessionHandlers
Don't forget that you HAVE TO LOCK the data
Using Cookies
Solves some problems,
but has drawbacks
Using alternative storage strategies
Splitting data units will reduce the problem
Merging data on conflicts...
...is left as an exercise to the developer
Thank you!
Any questions?
Find me on twitter: @SvenRtbg
Find me on StackOverflow: SvenRtbg
Find me on GitHub: SvenRtbg
Find me on Slideshare: SvenRtbg
This presentation on Slideshare
http://de.slideshare.net/svenrtbg/php-sessions-and-nonsessions

Contenu connexe

Tendances

How to deploy node to production
How to deploy node to productionHow to deploy node to production
How to deploy node to productionSean Hess
 
Practical Exploitation - Webappy Style
Practical Exploitation - Webappy StylePractical Exploitation - Webappy Style
Practical Exploitation - Webappy StyleRob Fuller
 
Docker Plugin For DevSecOps
Docker Plugin For DevSecOpsDocker Plugin For DevSecOps
Docker Plugin For DevSecOpsPichaya Morimoto
 
Xdebug, KCacheGrind and Webgrind with WampServer
Xdebug, KCacheGrind and Webgrind with WampServer  Xdebug, KCacheGrind and Webgrind with WampServer
Xdebug, KCacheGrind and Webgrind with WampServer Mediovski Technology
 
Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011Wim Godden
 
Workshop eZ Publish Caching Mechanisms
Workshop eZ Publish Caching MechanismsWorkshop eZ Publish Caching Mechanisms
Workshop eZ Publish Caching MechanismsKaliop-slide
 
Windows Azure loves OSS
Windows Azure loves OSSWindows Azure loves OSS
Windows Azure loves OSSKazumi Hirose
 
Server side scripting smack down - Node.js vs PHP
Server side scripting smack down - Node.js vs PHPServer side scripting smack down - Node.js vs PHP
Server side scripting smack down - Node.js vs PHPMarc Gear
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!Andrew Conner
 
Assurer - a pluggable server testing/monitoring framework
Assurer - a pluggable server testing/monitoring frameworkAssurer - a pluggable server testing/monitoring framework
Assurer - a pluggable server testing/monitoring frameworkGosuke Miyashita
 
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014Stéphane ESCANDELL
 
Presentation of JSConf.eu
Presentation of JSConf.euPresentation of JSConf.eu
Presentation of JSConf.euFredrik Wendt
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST APIFabien Vauchelles
 
Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016Boiteaweb
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기JeongHun Byeon
 
Real Time Event Dispatcher
Real Time Event DispatcherReal Time Event Dispatcher
Real Time Event DispatcherPeter Dietrich
 

Tendances (20)

How to deploy node to production
How to deploy node to productionHow to deploy node to production
How to deploy node to production
 
Practical Exploitation - Webappy Style
Practical Exploitation - Webappy StylePractical Exploitation - Webappy Style
Practical Exploitation - Webappy Style
 
Docker Plugin For DevSecOps
Docker Plugin For DevSecOpsDocker Plugin For DevSecOps
Docker Plugin For DevSecOps
 
Xdebug, KCacheGrind and Webgrind with WampServer
Xdebug, KCacheGrind and Webgrind with WampServer  Xdebug, KCacheGrind and Webgrind with WampServer
Xdebug, KCacheGrind and Webgrind with WampServer
 
Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011
 
Workshop eZ Publish Caching Mechanisms
Workshop eZ Publish Caching MechanismsWorkshop eZ Publish Caching Mechanisms
Workshop eZ Publish Caching Mechanisms
 
Node.js essentials
 Node.js essentials Node.js essentials
Node.js essentials
 
Windows Azure loves OSS
Windows Azure loves OSSWindows Azure loves OSS
Windows Azure loves OSS
 
Server side scripting smack down - Node.js vs PHP
Server side scripting smack down - Node.js vs PHPServer side scripting smack down - Node.js vs PHP
Server side scripting smack down - Node.js vs PHP
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Assurer - a pluggable server testing/monitoring framework
Assurer - a pluggable server testing/monitoring frameworkAssurer - a pluggable server testing/monitoring framework
Assurer - a pluggable server testing/monitoring framework
 
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
 
Presentation of JSConf.eu
Presentation of JSConf.euPresentation of JSConf.eu
Presentation of JSConf.eu
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST API
 
Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
 
Socket.IO
Socket.IOSocket.IO
Socket.IO
 
Tornado in Depth
Tornado in DepthTornado in Depth
Tornado in Depth
 
Anatomy of PHP Shells
Anatomy of PHP ShellsAnatomy of PHP Shells
Anatomy of PHP Shells
 
Real Time Event Dispatcher
Real Time Event DispatcherReal Time Event Dispatcher
Real Time Event Dispatcher
 

En vedette

How to use of moodle
How to use of moodleHow to use of moodle
How to use of moodlehayate19996
 
Samantha blum histo study guide 1
Samantha blum  histo study guide 1Samantha blum  histo study guide 1
Samantha blum histo study guide 1smblum2
 
Richmont mines q4 & fy2013
Richmont mines q4 & fy2013Richmont mines q4 & fy2013
Richmont mines q4 & fy2013polo0007
 
Tourism english 3
Tourism english 3Tourism english 3
Tourism english 3Les Davy
 
Наши будни и праздники
Наши будни и праздникиНаши будни и праздники
Наши будни и праздникиelvira38
 
SafePeak - IT particle accelerator (2012)
SafePeak - IT particle accelerator (2012)SafePeak - IT particle accelerator (2012)
SafePeak - IT particle accelerator (2012)Vladi Vexler
 
Атомная энергетика в Казахстане
Атомная энергетика в КазахстанеАтомная энергетика в Казахстане
Атомная энергетика в КазахстанеАО "Самрук-Казына"
 
KGI dynamic soundfield_210x280_final_nl_lr_ (1)
KGI dynamic soundfield_210x280_final_nl_lr_ (1)KGI dynamic soundfield_210x280_final_nl_lr_ (1)
KGI dynamic soundfield_210x280_final_nl_lr_ (1)Quietroom Label
 
2011 startup weekend hsinchu _celfcare
2011 startup weekend hsinchu _celfcare2011 startup weekend hsinchu _celfcare
2011 startup weekend hsinchu _celfcareTsai Monica
 
Edtc 6340-66 copyright crash course alberto tudon 6th ed
Edtc 6340-66 copyright crash course  alberto tudon 6th edEdtc 6340-66 copyright crash course  alberto tudon 6th ed
Edtc 6340-66 copyright crash course alberto tudon 6th edalbertotudon
 
Erin's e.f.s powerpoint
Erin's e.f.s powerpointErin's e.f.s powerpoint
Erin's e.f.s powerpointlesleymccardle
 
Livestock, Land and the Changing Economy of Pastoralism
Livestock, Land and the Changing Economy of PastoralismLivestock, Land and the Changing Economy of Pastoralism
Livestock, Land and the Changing Economy of Pastoralismfutureagricultures
 

En vedette (20)

How to use of moodle
How to use of moodleHow to use of moodle
How to use of moodle
 
World I, Module I
World I, Module IWorld I, Module I
World I, Module I
 
Samantha blum histo study guide 1
Samantha blum  histo study guide 1Samantha blum  histo study guide 1
Samantha blum histo study guide 1
 
Richmont mines q4 & fy2013
Richmont mines q4 & fy2013Richmont mines q4 & fy2013
Richmont mines q4 & fy2013
 
Tourism english 3
Tourism english 3Tourism english 3
Tourism english 3
 
Наши будни и праздники
Наши будни и праздникиНаши будни и праздники
Наши будни и праздники
 
SafePeak - IT particle accelerator (2012)
SafePeak - IT particle accelerator (2012)SafePeak - IT particle accelerator (2012)
SafePeak - IT particle accelerator (2012)
 
Атомная энергетика в Казахстане
Атомная энергетика в КазахстанеАтомная энергетика в Казахстане
Атомная энергетика в Казахстане
 
StrategicBenefits
StrategicBenefitsStrategicBenefits
StrategicBenefits
 
Kudavi 2.8.2016
Kudavi 2.8.2016Kudavi 2.8.2016
Kudavi 2.8.2016
 
100 quotes
100 quotes100 quotes
100 quotes
 
Our parents
Our parentsOur parents
Our parents
 
Essential list 2
Essential list 2Essential list 2
Essential list 2
 
KGI dynamic soundfield_210x280_final_nl_lr_ (1)
KGI dynamic soundfield_210x280_final_nl_lr_ (1)KGI dynamic soundfield_210x280_final_nl_lr_ (1)
KGI dynamic soundfield_210x280_final_nl_lr_ (1)
 
2011 startup weekend hsinchu _celfcare
2011 startup weekend hsinchu _celfcare2011 startup weekend hsinchu _celfcare
2011 startup weekend hsinchu _celfcare
 
Edtc 6340-66 copyright crash course alberto tudon 6th ed
Edtc 6340-66 copyright crash course  alberto tudon 6th edEdtc 6340-66 copyright crash course  alberto tudon 6th ed
Edtc 6340-66 copyright crash course alberto tudon 6th ed
 
68 avenue Gurgaon 7428424386
68 avenue Gurgaon 742842438668 avenue Gurgaon 7428424386
68 avenue Gurgaon 7428424386
 
Erin's e.f.s powerpoint
Erin's e.f.s powerpointErin's e.f.s powerpoint
Erin's e.f.s powerpoint
 
Native americans
Native americansNative americans
Native americans
 
Livestock, Land and the Changing Economy of Pastoralism
Livestock, Land and the Changing Economy of PastoralismLivestock, Land and the Changing Economy of Pastoralism
Livestock, Land and the Changing Economy of Pastoralism
 

Similaire à PHP Sessions and Non-Sessions

Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalabilityWim Godden
 
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr VronskiyFwdays
 
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiGrâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiJérémy Derussé
 
Session Server - Maintaing State between several Servers
Session Server - Maintaing State between several ServersSession Server - Maintaing State between several Servers
Session Server - Maintaing State between several ServersStephan Schmidt
 
php & performance
 php & performance php & performance
php & performancesimon8410
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalabilityWim Godden
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2Merixstudio
 
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6Wim Godden
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance毅 吕
 
Heavy Web Optimization: Backend
Heavy Web Optimization: BackendHeavy Web Optimization: Backend
Heavy Web Optimization: BackendVõ Duy Tuấn
 
Mysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extensionMysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extensionjulien pauli
 
Porting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability SystemsPorting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability SystemsMarcelo Pinheiro
 
Time tested php with libtimemachine
Time tested php with libtimemachineTime tested php with libtimemachine
Time tested php with libtimemachineNick Galbreath
 
PHP from the point of view of a webhoster
PHP from the point of view of a webhosterPHP from the point of view of a webhoster
PHP from the point of view of a webhosterDominic Lüchinger
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Wim Godden
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take iiDefconRussia
 
The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5Wim Godden
 
Built-in query caching for all PHP MySQL extensions/APIs
Built-in query caching for all PHP MySQL extensions/APIsBuilt-in query caching for all PHP MySQL extensions/APIs
Built-in query caching for all PHP MySQL extensions/APIsUlf Wendel
 

Similaire à PHP Sessions and Non-Sessions (20)

Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy
 
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiGrâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
 
Session Server - Maintaing State between several Servers
Session Server - Maintaing State between several ServersSession Server - Maintaing State between several Servers
Session Server - Maintaing State between several Servers
 
php & performance
 php & performance php & performance
php & performance
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2
 
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance
 
Heavy Web Optimization: Backend
Heavy Web Optimization: BackendHeavy Web Optimization: Backend
Heavy Web Optimization: Backend
 
Mysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extensionMysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extension
 
Porting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability SystemsPorting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability Systems
 
Time tested php with libtimemachine
Time tested php with libtimemachineTime tested php with libtimemachine
Time tested php with libtimemachine
 
PHP from the point of view of a webhoster
PHP from the point of view of a webhosterPHP from the point of view of a webhoster
PHP from the point of view of a webhoster
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take ii
 
Random numbers
Random numbersRandom numbers
Random numbers
 
NodeJS
NodeJSNodeJS
NodeJS
 
The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5
 
Built-in query caching for all PHP MySQL extensions/APIs
Built-in query caching for all PHP MySQL extensions/APIsBuilt-in query caching for all PHP MySQL extensions/APIs
Built-in query caching for all PHP MySQL extensions/APIs
 

Dernier

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Dernier (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

PHP Sessions and Non-Sessions