Caching and tuning fun for high scalability. Wim Godden Cu.be Solutions

Size: px
Start display at page:

Download "Caching and tuning fun for high scalability. Wim Godden Cu.be Solutions"

Transcription

1 Caching and tuning fun for high scalability Wim Godden Cu.be Solutions

2 Who am I? Wim Godden Owner of Cu.be Solutions ( Open Source developer since 1997 Developer of OpenX Zend Certified Engineer Zend Framework Certified Engineer MySQL Certified Developer

3 Who are you? Developers? System/network engineers? Managers? Caching experience?

4 Goals of this tutorial Everything about caching and tuning A few techniques How-to How-NOT-to Increase reliability, performance and scalability 5 visitors/day 5 million visitors/day (Don't expect miracle cure!)

5 LAMP

6 Architecture

7 Test page 3 DB-queries select firstname, lastname, from user where user_id = 5; select title, createddate, body from article order by createddate desc limit 5; select title, createddate, body from article order by score desc limit 5; Page just outputs result

8 Our base benchmark Apachebench = useful enough Result? Single webserver Apache + PHP Proxy Static PHP Static PHP Limit : CPU, network or disk Limit : database

9 Caching

10 What is caching? CACHE CACHE

11 What is caching? x = 5, y = 2 n = 50 Same result CACHE CACHE select * from article join user on article.user_id = user.id order by created desc limit 10 Doesn't change all the time

12 Theory of caching DB le tab lt rom resu f d ta da turne t c e re sel ta = $da if ($data == false) Page GET /page set( 'key ', $da fal $data) ta = se get( 'key ') Cache

13 Theory of caching DB HIT Cache

14 Caching techniques #1 : Store entire pages #2 : Store part of a page (block) #3 : Store data retrieval (SQL?) #4 : Store complex processing result #? : Your call! When you have data, think : Creating time? Modification frequency? Retrieval frequency?

15 How to find cacheable data New projects : start from 'cache everything' Existing projects : Look at MySQL slow query log Make a complete query log (don't forget to turn it off!) Check page loading times

16 Caching storage - Disk Data with few updates : good Caching SQL queries : preferably not DON'T use NFS or other network file systems especially for sessions locking issues! high latency

17 Caching storage - Disk / ramdisk Local 5 Webservers 5 local caches How will you keep them synchronized? Don't say NFS or rsync!

18 Caching storage - Memcache(d) Facebook, Twitter, YouTube, need we say more? Distributed memory caching system Multiple machines 1 big memory-based hash-table Key-value storage system Keys - max. 250bytes Values - max. 1Mbyte

19 Caching storage - Memcache(d) Facebook, Twitter, YouTube, need we say more? Distributed memory caching system Key-value storage system Keys - max. 250bytes Values - max. 1Mbyte Extremely fast... non-blocking, UDP (!)

20 Memcache - where to install

21 Memcache - where to install

22 Memcache - installation & running it Installation Distribution package PECL Windows : binaries Running No config-files memcached -d -m <mem> -l <ip> -p <port> ex. : memcached -d -m l p 11211

23 Caching storage - Memcache - some notes Not fault-tolerant It's a cache! Lose session data Lose shopping cart data...

24 Caching storage - Memcache - some notes Not fault-tolerant It's a cache! Lose session data Lose shopping cart data Firewall your Memcache port!

25 Memcache in code <?php $memcache = new Memcache(); $memcache->addserver(' ', 11211); $memcache->addserver(' ', 11211); $mydata = $memcache->get('mykey'); if ($mydata === false) { $mydata = GetMyDataFromDB(); // Put it in Memcache as 'mykey', without compression, with no expiration $memcache->set('mykey', $mydata, false, 0); } echo $mydata;

26 Benchmark with Memcache Single webserver Proxy Static PHP Static PHP Apache + PHP Apache + PHP + MC

27 Memcache slabs (or why Memcache says it's full when it's not) Multiple slabs of different sizes : Slab 1 : 400 bytes Slab 2 : 480 bytes (400 * 1.2) Slab 3 : 576 bytes (480 * 1.2) (and so on...) Multiplier (1.2 here) can be configured Store a lot of very large objects Large slabs : full Rest : free Eviction of data!

28 Memcache - Is it working? Connect to it using telnet "stats" command Use Cacti or other monitoring tools STAT pid 2941 STAT uptime STAT time STAT version STAT pointer_size 64 STAT rusage_user STAT rusage_system STAT curr_connections 16 STAT total_connections STAT connection_structures 96 STAT cmd_get STAT cmd_set STAT cmd_flush 0 STAT get_hits STAT get_misses STAT delete_misses 101 STAT delete_hits STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read STAT bytes_written STAT limit_maxbytes STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT bytes STAT curr_items STAT total_items STAT evictions 0 STAT reclaimed 0

29 Memcache - backing up

30 Memcache - tip Page with multiple blocks? use Memcached::getMulti() getmulti($array) Hashing algorithm But : what if you get some hits and some misses?

31 Updating data

32 Updating data LCD_Popular_Product_List

33 Adding/updating data $memcache->delete('lcd_popular_product_list');

34 Adding/updating data

35 Adding/updating data - Why it crashed

36 Adding/updating data - Why it crashed

37 Adding/updating data - Why it crashed

38 Cache stampeding

39 Cache stampeding

40 Memcache code? Memcache code Visitor interface Admin interface DB

41 Cache warmup scripts Used to fill your cache when it's empty Run it before starting Webserver! 2 ways : Visit all URLs Error-prone Hard to maintain Call all cache-updating methods Make sure you have a warmup script!

42 Cache stampeding - what about locking? Seems like a nice idea, but... While lock in place What if the process that created the lock fails?

43 LAMP... LAMMP LNMMP

44 Nginx Web server Reverse proxy Lightweight, fast 12.2% of all Websites

45 Nginx No threads, event-driven Uses epoll / kqueue Low memory footprint active connections = normal

46 Nginx - Configuration server { listen server_name index root 80; *.domain.ext; index.html; /home/domain.ext/www; } server { listen server_name index root } 80; photo.domain.ext; index.html; /home/domain.ext/photo;

47 Nginx with PHP-FPM Since PHP Runs on port 9000 Nginx connects using fastcgi method location / { fastcgi_pass :9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME /home/ fastcgi_param SERVER_NAME $host; fastcgi_intercept_errors on; }

48 Nginx + PHP-FPM features Graceful upgrade Spawn new processes under high load Chroot Slow request log!

49 Nginx + PHP-FPM features Graceful upgrade Spawn new processes under high load Chroot Slow request log! fastcgi_finish_request() offline processing

50 Nginx + PHP-FPM - performance? Single webserver Proxy Static PHP Static PHP Apache + PHP Apache + PHP + MC Nginx + PHP-FPM + MC Limit : single-threaded Apachebench

51 Reverse proxy time...

52 Varnish Not just a load balancer Reverse proxy cache / http accelerator / Caches (parts of) pages in memory Careful : uses threads (like Apache) Nginx usually scales better (but doesn't have VCL)

53 Varnish - backends + load balancing backend server1 {.host = " "; } backend server2 {.host = " "; } director example_director round-robin { {.backend = server1; } {.backend = server2; } }

54 Varnish - VCL Varnish Configuration Language DSL (Domain Specific Language) compiled to C Hooks into each request Defines : Backends (web servers) ACLs Load balancing strategy Can be reloaded while running

55 Varnish - whatever you want Real-time statistics (varnishtop, varnishhist,...) ESI

56 Varnish - ESI Perfect for caching pages Header (TTL : 60 min) /top Latest news (TTL : 2 min) /news Navigation (TTL : 60 min) /nav Article content page Article content (TTL : 15 min) /article/732 In your article page output : <esi:include src="/top"/> <esi:include src="/nav"/> <esi:include src="/news"/> <esi:include src="/article/732"/> In your Varnish config : sub vcl_fetch { if (req.url == "/news") { esi; /* Do ESI processing */ set obj.ttl = 2m; } elseif (req.url == "/nav") { esi; set obj.ttl = 1m; } elseif.. }

57 Varnish with ESI - hold on tight! Single webserver Proxy Static PHP Static PHP Apache + PHP Apache + PHP + MC Nginx + PHP-FPM + MC Varnish

58 Varnish - what can/can't be cached? Can : Static pages Images, js, css Pages or parts of pages that don't change often (ESI) Can't : POST requests Very large files (it's not a file server!) Requests with Set-Cookie User-specific content

59 ESI no caching on user-specific content? Logged in as : Wim Godden TTL = 0s? TTL=1h 5 messages TTL = 5min

60 Coming soon... Based on Nginx Reduces load by 50 95% Requires code changes! Well-built project few changes Effect on webservers and database servers

61 What's the result?

62 What's the result?

63 Figures First customer : No. of web servers : 18 4 No. of db servers : 6 2 Total : 24 6 (75% reduction!) Second customer (already using Nginx + Memcache) : No. of web servers : 72 8 No. of db servers : 15 4 Total : (86% reduction!)

64 Availability Stable at 2 customers Still under heavy development Beta : July 2012 Final : Sep 2012

65 PHP speed - some tips Upgrade PHP - every minor release has 5-15% speed gain! Use an opcode cache (APC, eaccelerator, XCache)

66 DB speed - some tips Use same types for joins i.e. don't join decimal with int RAND() is evil! count(*) is evil in InnoDB without a where clause! Persistent connect is sort-of evil

67 Caching & frontend

68 Frontend tuning 1. You optimize backend 2. Frontend engineers messes up havoc on backend 3. Don't forget : frontend sends requests to backend! SO... Care about frontend Test frontend Check what requests frontend sends to backend

69 Tuning frontend Minimize requests Combine CSS/JavaScript files

70 Tuning frontend Minimize requests Combine CSS/JavaScript files Use CSS Sprites

71 CSS Sprites

72 Tuning content - CSS sprites

73 Tuning content - CSS sprites 11 images 11 HTTP requests 24KByte 1 image 1 HTTP requests 14KByte

74 Tuning frontend Minimize requests Combine CSS/JavaScript files Use CSS Sprites (horizontally if possible) Put CSS at top Put JavaScript at bottom Max. no connections Especially if JavaScript does Ajax (advertising-scripts, )! Avoid iframes Again : max no. of connections Don't scale images in HTML Have a favicon.ico (don't 404 it!) see my blog

75 What else can kill your site? Redirect loops Multiple requests More load on Webserver More PHP to process Additional latency for visitor Try to avoid redirects anyway In ZF : use $this->_forward instead of $this->_redirect Watch your logs, but equally important... Watch the logging process Logging = disk I/O can kill your server!

76 Above all else... be prepared! Have a monitoring system Use a cache abstraction layer (disk Memcache) Don't install for the worst prepare for the worst Have a test-setup Have fallbacks Turn off non-critical functionality

77 So... Cache But : never delete, always push! Have a warmup script Monitor your cache Have an abstraction layer Apache = fine, Nginx = better Static pages? Use Varnish Tune your frontend impact on backend!

78 Questions?

79 Questions?

80 We're hiring! Lots of challenges Work with cutting-edge technology Varied : PHP development System / network architecture Scalability services Build our own services Work on Open Source mail us : info@cu.be

81 Contact Twitter Web Slides Please... Rate my talk :

82 Thanks! Please... Rate my talk :

83

MEMCACHED - QUICK GUIDE MEMCACHED - OVERVIEW

MEMCACHED - QUICK GUIDE MEMCACHED - OVERVIEW MEMCACHED - QUICK GUIDE http://www.tutorialspoint.com//_quick_guide.htm Copyright tutorialspoint.com MEMCACHED - OVERVIEW Memcached is an open source, high-performance, distributed memory caching system

More information

Memcached is an open source, high-performance, distributed memory object caching system.

Memcached is an open source, high-performance, distributed memory object caching system. i About the Tutorial Memcached is an open source, high-performance, distributed memory object caching system. This tutorial provides a basic understanding of all the relevant concepts of Memcached needed

More information

Apc & Memcached the High- Performance Duo. Barcelona 2010 Ilia Alshanetsky

Apc & Memcached the High- Performance Duo. Barcelona 2010 Ilia Alshanetsky Apc & Memcached the High- Performance Duo Barcelona 2010 Ilia Alshanetsky 1 What is APC? Alternative PHP Cache Primarily designed to accelerate script performance via opcode caching Extends opcode caching

More information

Caching with Memcached

Caching with Memcached Caching with Memcached Ilia Alshanetsky @iliaa 1 whois: Ilia Alshanetsky PHP Core Developer Co-Author of Memcached Extension CIO at Centah Inc. we are hiring btw ;-) 2 Memcached Interface to Memcached

More information

Help! I need more servers! What do I do?

Help! I need more servers! What do I do? Help! I need more servers! What do I do? Scaling a PHP application 1 2-Feb-09 Introduction A real world example The wonderful world of startups Who am I? 2 2-Feb-09 Presentation Overview - Scalability

More information

Real World Web Scalability. Ask Bjørn Hansen Develooper LLC

Real World Web Scalability. Ask Bjørn Hansen Develooper LLC Real World Web Scalability Ask Bjørn Hansen Develooper LLC Hello. 28 brilliant methods to make your website keep working past $goal requests/transactions/sales per second/hour/day Requiring minimal extra

More information

How to pimp high volume PHP websites. 27. September 2008, PHP conference Barcelona. By Jens Bierkandt

How to pimp high volume PHP websites. 27. September 2008, PHP conference Barcelona. By Jens Bierkandt How to pimp high volume PHP websites 27. September 2008, PHP conference Barcelona By Jens Bierkandt 1 About me Jens Bierkandt Working with PHP since 2000 From Germany, living in Spain, speaking English

More information

CHAPTER 1: A REFRESHER ON WEB BROWSERS 3

CHAPTER 1: A REFRESHER ON WEB BROWSERS 3 INTRODUCTION xxiii PART I: FRONT END CHAPTER 1: A REFRESHER ON WEB BROWSERS 3 A Brief History of Web Browsers 3 Netscape Loses Its Dominance 4 The Growth of Firefox 4 The Present 5 Inside HTTP 5 The HyperText

More information

INFUZE NGINX MODULE USER GUIDE

INFUZE NGINX MODULE USER GUIDE "The first step in a great mobile experience" INFUZE NGINX MODULE USER GUIDE Support The ScientiaMobile Support Forum is open to all WURFL users, both commercial license holders and evaluation users. It

More information

Improve WordPress performance with caching and deferred execution of code. Danilo Ercoli Software Engineer

Improve WordPress performance with caching and deferred execution of code. Danilo Ercoli Software Engineer Improve WordPress performance with caching and deferred execution of code Danilo Ercoli Software Engineer http://daniloercoli.com Agenda PHP Caching WordPress Page Caching WordPress Object Caching Deferred

More information

Beginner's Guide to Performance! Jonathan Rowny

Beginner's Guide to Performance! Jonathan Rowny Beginner's Guide to Performance! Jonathan Rowny JonathanRowny Software Architect @ AboutWeb Speaking at RIACon next week about NodeJS jrowny.com @jrowny github.com/jrowny jrowny@aboutweb.com We have a

More information

Scaling DreamFactory

Scaling DreamFactory Scaling DreamFactory This white paper is designed to provide information to enterprise customers about how to scale a DreamFactory Instance. The sections below talk about horizontal, vertical, and cloud

More information

Site Performance, Optimization and Scalability Alan Dixon

Site Performance, Optimization and Scalability Alan Dixon Site Performance, Optimization and Scalability Alan Dixon http://blackflysolutions.ca/ Khalid Baheyeldin http://2bits.com DrupalCamp Toronto 2011 Agenda Introduction Symptoms and Tips Hardware and Software

More information

memcached Functions For MySQL: Seemless caching for MySQL Patrick Galbraith, Lycos Inc.

memcached Functions For MySQL: Seemless caching for MySQL Patrick Galbraith, Lycos Inc. memcached Functions For MySQL: Seemless caching for MySQL Patrick Galbraith, Lycos Inc. About the speaker Patrick Galbraith Principal Software Engineer, Lycos 16 Years dabbling in Open Source Author of

More information

Real Life Web Development. Joseph Paul Cohen

Real Life Web Development. Joseph Paul Cohen Real Life Web Development Joseph Paul Cohen joecohen@cs.umb.edu Index 201 - The code 404 - How to run it? 500 - Your code is broken? 200 - Someone broke into your server? 400 - How are people using your

More information

APC & Memcache the High Performance Duo. ZendCon Ilia Alshanetsky

APC & Memcache the High Performance Duo. ZendCon Ilia Alshanetsky APC & Memcache the High Performance Duo ZendCon 2009 - Ilia Alshanetsky 1 What is APC? Alternative PHP Cache Primarily designed to accelerate script performance via opcode caching Extends opcode caching

More information

Manual Mysql Query Cache Hit Rate 0

Manual Mysql Query Cache Hit Rate 0 Manual Mysql Query Cache Hit Rate 0 B) why the Table cache hit rate is only 56% How can i achieve better cache hit rate? (OK) Currently running supported MySQL version 5.5.43-0+deb7u1-log or complex to

More information

Persistence. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Persistence. SWE 432, Fall 2017 Design and Implementation of Software for the Web Persistence SWE 432, Fall 2017 Design and Implementation of Software for the Web Today Demo: Promises and Timers What is state in a web application? How do we store it, and how do we choose where to store

More information

Faster Programs = Happier Users. David McKinnis SureTech.com

Faster Programs = Happier Users. David McKinnis SureTech.com Faster Programs = Happier Users David McKinnis SureTech.com davidmck@suretech.com www.suretech.com/performance_talk_slides Who Am I? David McKinnis Co-Founder, CTO of SureTech.com BTI 5000 Apple II Macintosh

More information

Scalability of web applications

Scalability of web applications Scalability of web applications CSCI 470: Web Science Keith Vertanen Copyright 2014 Scalability questions Overview What's important in order to build scalable web sites? High availability vs. load balancing

More information

Drupal Frontend Performance & Scalability

Drupal Frontend Performance & Scalability Riverside Drupal Meetup @ Riverside.io August 14, 2014 Christefano Reyes christo@larks.la, @christefano Who's Your Presenter? Who's Your Presenter? Why We Care About Performance Who's Your Presenter? Why

More information

High Availability High Performance Plone

High Availability High Performance Plone High Availability High Performance Plone Guido Stevens guido.stevens@cosent.nl www.cosent.nl Social Knowledge Technology Plone Worldwide Resilience Please wave, to improve my speech Plone as usual Aspeli:

More information

High Availability/ Clustering with Zend Platform

High Availability/ Clustering with Zend Platform High Availability/ Clustering with Zend Platform David Goulden Product Manager goulden@zend.com Copyright 2007, Zend Technologies Inc. In this Webcast Introduction to Web application scalability using

More information

High Performance Drupal

High Performance Drupal High Performance Drupal A Panel Discussion 25 1 st St., Suite 104, Cambridge, MA 02141 www.bioraft.com Panelists Erik Peterson (eporama) Seth Cohn (sethcohn) Micky MeMs (freescholar) Patrick CorbeM (pcorbem)

More information

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang WEB SECURITY WORKSHOP TEXSAW 2014 Presented by Solomon Boyd and Jiayang Wang Introduction and Background Targets Web Applications Web Pages Databases Goals Steal data Gain access to system Bypass authentication

More information

Improve Web Application Performance with Zend Platform

Improve Web Application Performance with Zend Platform Improve Web Application Performance with Zend Platform Shahar Evron Zend Sr. PHP Specialist Copyright 2007, Zend Technologies Inc. Agenda Benchmark Setup Comprehensive Performance Multilayered Caching

More information

Designing, Scoping, and Configuring Scalable LAMP Infrastructure

Designing, Scoping, and Configuring Scalable LAMP Infrastructure Designing, Scoping, and Configuring Scalable LAMP Infrastructure Presented 2010-05-19 by About me About me Founded Four Kitchens in 2006 while at UT Austin About me Founded Four Kitchens in 2006 while

More information

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me?

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me? The web should be fast. Executive Summary Performance Report for: https://edwardtbabinski.us/blogger/social/index Report generated: Test Server Region: Using: Analysis options: Tue,, 2017, 4:21 AM -0400

More information

Large-Scale Web Applications

Large-Scale Web Applications Large-Scale Web Applications Mendel Rosenblum Web Application Architecture Web Browser Web Server / Application server Storage System HTTP Internet CS142 Lecture Notes - Intro LAN 2 Large-Scale: Scale-Out

More information

Traffic is coming! OMG moments

Traffic is coming! OMG moments CASE STUDY Traffic is coming! OMG moments How Distinct helped evomag.ro handle Blackfriday 2013 traffic spike Summary: 1. Who 2. The Challenge 3. The Work 4. Aftermath 1. Who :: Bogdan Belu - Distinct

More information

Oh yes, wpcache comes with a dashboard wpcache is not Plugin!

Oh yes, wpcache comes with a dashboard wpcache is not Plugin! 1 What is Happening? Oh yes, wpcache comes with a dashboard wpcache is not Plugin! Performance. Speed. Scalability. wpcache delivers world-class content delivery solutions. You are empowered to increase

More information

Setting up a LAMP server

Setting up a LAMP server Setting up a LAMP server What is a LAMP? Duh. Actually, we re interested in... Linux, Apache, Mysql, and PHP A pretty standard web server setup Not the only technology options! Linux Pick any! Common choices

More information

Distributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014

Distributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014 Distributed Systems 29. Distributed Caching Paul Krzyzanowski Rutgers University Fall 2014 December 5, 2014 2013 Paul Krzyzanowski 1 Caching Purpose of a cache Temporary storage to increase data access

More information

Executive Summary. Performance Report for: The web should be fast. Top 4 Priority Issues

Executive Summary. Performance Report for:   The web should be fast. Top 4 Priority Issues The web should be fast. Executive Summary Performance Report for: https://www.wpspeedupoptimisation.com/ Report generated: Test Server Region: Using: Tue,, 2018, 12:04 PM -0800 London, UK Chrome (Desktop)

More information

Breaking the Scalability Barrier with Infinite Cache

Breaking the Scalability Barrier with Infinite Cache Breaking the Scalability Barrier with Infinite Cache An EnterpriseDB White Paper for DBAs, Application Developers, and Enterprise Architects September, 2009 Breaking the Scalability Barrier with Infinite

More information

Common Optimization Mistakes

Common Optimization Mistakes Common Optimization Mistakes ZendCon 2009 Ilia Alshanetsky http://ilia.ws 1 Premature Optimization = Solve the business case, before optimizing the solution 2 Don t Over Engineer Understand your audience

More information

A memcached implementation in Java. Bela Ban JBoss 2340

A memcached implementation in Java. Bela Ban JBoss 2340 A memcached implementation in Java Bela Ban JBoss 2340 AGENDA 2 > Introduction > memcached > memcached in Java > Improving memcached > Infinispan > Demo Introduction 3 > We want to store all of our data

More information

Persistence & State. SWE 432, Fall 2016 Design and Implementation of Software for the Web

Persistence & State. SWE 432, Fall 2016 Design and Implementation of Software for the Web Persistence & State SWE 432, Fall 2016 Design and Implementation of Software for the Web Today What s state for our web apps? How do we store it, where do we store it, and why there? For further reading:

More information

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary INTERNET ENGINEERING HTTP Protocol Sadegh Aliakbary Agenda HTTP Protocol HTTP Methods HTTP Request and Response State in HTTP Internet Engineering 2 HTTP HTTP Hyper-Text Transfer Protocol (HTTP) The fundamental

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016 DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016 AGENDA FOR TODAY Advanced Mysql More than just SELECT Creating tables MySQL optimizations: Storage engines, indexing.

More information

Common Optimization Mistakes

Common Optimization Mistakes Common Optimization Mistakes Dutch PHP Conference 2010 Ilia Alshanetsky http://ilia.ws 1 Premature Optimization = Solve the business case, before optimizing the solution 2 Don t Over Engineer Understand

More information

Control for CloudFlare - Installation and Preparations

Control for CloudFlare - Installation and Preparations Control for CloudFlare - Installation and Preparations Installation Backup your web directory and Magento 2 store database; Download Control for CloudFlare installation package; Copy files to /app/firebear/cloudflare/

More information

What is Drupal? What is this Drew-Paul thing you do?

What is Drupal? What is this Drew-Paul thing you do? What is Drupal? Or What is this Drew-Paul thing you do? Drupal for the average person Drupal lets me build websites that help people build their own websites without needing to know anything about programming

More information

Advanced Joomla! Dan Rahmel. Apress*

Advanced Joomla! Dan Rahmel. Apress* Advanced Joomla! Dan Rahmel Apress* Contents About the Author About the Technical Reviewer Acknowledgments Introduction xvii...xix xxi xxiii Chapter 1: Streamlining the Authoring Process 1 Setting the

More information

Website Acceleration with mod_pagespeed

Website Acceleration with mod_pagespeed Website Acceleration with mod_pagespeed Joshua Marantz Google June 15, 2011 @jmarantz www.modpagespeed.com 2011 Google, Inc. All rights reserved. Velocity 2011: Faster By Default 2 Velocity 2011: Faster

More information

GET /index.php HTTP/1.1 Host: User- agent: Mozilla/4.0

GET /index.php HTTP/1.1 Host:   User- agent: Mozilla/4.0 State management GET /index.php HTTP/1.1 Host: www.mtech.edu User- agent: Mozilla/4.0 HTTP/1.1 200 OK Date: Thu, 17 Nov 2011 15:54:10 GMT Server: Apache/2.2.16 (Debian) Content- Length: 285 Set- Cookie:

More information

the road to cloud native applications Fabien Hermenier

the road to cloud native applications Fabien Hermenier the road to cloud native applications Fabien Hermenier 1 cloud ready applications single-tiered monolithic hardware specific cloud native applications leverage cloud services scalable reliable 2 Agenda

More information

More on Testing and Large Scale Web Apps

More on Testing and Large Scale Web Apps More on Testing and Large Scale Web Apps Testing Functionality Tests - Unit tests: E.g. Mocha - Integration tests - End-to-end - E.g. Selenium - HTML CSS validation - forms and form validation - cookies

More information

Hello everyone! Page 1. Your folder should look like this. To start with Run your XAMPP app and start your Apache and MySQL.

Hello everyone! Page 1. Your folder should look like this. To start with Run your XAMPP app and start your Apache and MySQL. Hello everyone! Welcome to our PHP + MySQL (Easy to learn) E.T.L. free online course Hope you have installed your XAMPP? And you have created your forms inside the studio file in the htdocs folder using

More information

All India Council For Research & Training

All India Council For Research & Training WEB DEVELOPMENT & DESIGNING Are you looking for a master program in web that covers everything related to web? Then yes! You have landed up on the right page. Web Master Course is an advanced web designing,

More information

Overview Content Delivery Computer Networking Lecture 15: The Web Peter Steenkiste. Fall 2016

Overview Content Delivery Computer Networking Lecture 15: The Web Peter Steenkiste. Fall 2016 Overview Content Delivery 15-441 15-441 Computer Networking 15-641 Lecture 15: The Web Peter Steenkiste Fall 2016 www.cs.cmu.edu/~prs/15-441-f16 Web Protocol interactions HTTP versions Caching Cookies

More information

GroupWise Architecture and Best Practices. WebAccess. Kiran Palagiri Team Lead GroupWise WebAccess

GroupWise Architecture and Best Practices. WebAccess. Kiran Palagiri Team Lead GroupWise WebAccess GroupWise Architecture and Best Practices WebAccess Kiran Palagiri Team Lead GroupWise WebAccess kpalagiri@novell.com Ed Hanley Senior Architect ed.hanley@novell.com Agenda Kiran Palagiri Architectural

More information

+ + a journey to zero-downtime

+ + a journey to zero-downtime + + a journey to zero-downtime James Halsall Technical Team Lead @ Inviqa Christian Dornhoff Head of IT (cross-channel) @ toom A bit about toom baumarkt One of Germany s biggest DIY companies Annual turnover

More information

Performance Tuning and Optimization for large LAMP sites

Performance Tuning and Optimization for large LAMP sites Performance Tuning and Optimization for large LAMP sites Khalid Baheyeldin Ontario Linux Fest Toronto October 13, 2007 Agenda Introduction The LAMP Stack Linux, Apache, MySQL, PHP Drupal Database queries

More information

Phpmyadmin Error In Processing Request Error Code 200

Phpmyadmin Error In Processing Request Error Code 200 Phpmyadmin Error In Processing Request Error Code 200 Error in Processing Request Error code: 200. Error text: OK. Yes..the JSON will be generated, but there will be also inserted a part for "phpmyadmin".

More information

Deployment. Chris Wilson, AfNOG / 26

Deployment. Chris Wilson, AfNOG / 26 Deployment Chris Wilson, AfNOG 2016 1 / 26 About this presentation Based on previous talks by Joel Jaeggli, Evelyn Namara and NSRC, with thanks! You can access this presentation at: Online: http://afnog.github.io/sse/apache/

More information

PHP. MIT 6.470, IAP 2010 Yafim Landa

PHP. MIT 6.470, IAP 2010 Yafim Landa PHP MIT 6.470, IAP 2010 Yafim Landa (landa@mit.edu) LAMP We ll use Linux, Apache, MySQL, and PHP for this course There are alternatives Windows with IIS and ASP Java with Tomcat Other database systems

More information

Detects Potential Problems. Customizable Data Columns. Support for International Characters

Detects Potential Problems. Customizable Data Columns. Support for International Characters Home Buy Download Support Company Blog Features Home Features HttpWatch Home Overview Features Compare Editions New in Version 9.x Awards and Reviews Download Pricing Our Customers Who is using it? What

More information

Managing State. Chapter 13

Managing State. Chapter 13 Managing State Chapter 13 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of Web http://www.funwebdev.com Development Section 1 of 8 THE PROBLEM OF STATE IN WEB APPLICATIONS

More information

A Library and Proxy for SPDY

A Library and Proxy for SPDY A Library and Proxy for SPDY Interdisciplinary Project Andrey Uzunov Chair for Network Architectures and Services Department of Informatics Technische Universität München April 3, 2013 Andrey Uzunov (TUM)

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Drupal

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Drupal About the Tutorial is a free and open source Content Management System (CMS) that allows organizing, managing and publishing your content. This reliable and secure CMS is built on PHP based environment

More information

Switching to Innodb from MyISAM. Matt Yonkovit Percona

Switching to Innodb from MyISAM. Matt Yonkovit Percona Switching to Innodb from MyISAM Matt Yonkovit Percona -2- DIAMOND SPONSORSHIPS THANK YOU TO OUR DIAMOND SPONSORS www.percona.com -3- Who We Are Who I am Matt Yonkovit Principal Architect Veteran of MySQL/SUN/Percona

More information

Mastering phpmyadmiri 3.4 for

Mastering phpmyadmiri 3.4 for Mastering phpmyadmiri 3.4 for Effective MySQL Management A complete guide to getting started with phpmyadmin 3.4 and mastering its features Marc Delisle [ t]open so 1 I community experience c PUBLISHING

More information

Life as a Service. Scalability and Other Aspects. Dino Esposito JetBrains ARCHITECT, TRAINER AND CONSULTANT

Life as a Service. Scalability and Other Aspects. Dino Esposito JetBrains ARCHITECT, TRAINER AND CONSULTANT Life as a Service Scalability and Other Aspects Dino Esposito JetBrains ARCHITECT, TRAINER AND CONSULTANT PART I Scalability and Measurable Tasks SCALABILITY Scalability is the ability of a system to expand

More information

Building a Scalable Architecture for Web Apps - Part I (Lessons Directi)

Building a Scalable Architecture for Web Apps - Part I (Lessons Directi) Intelligent People. Uncommon Ideas. Building a Scalable Architecture for Web Apps - Part I (Lessons Learned @ Directi) By Bhavin Turakhia CEO, Directi (http://www.directi.com http://wiki.directi.com http://careers.directi.com)

More information

JSN PageBuilder 3 Configuration Manual Introduction

JSN PageBuilder 3 Configuration Manual Introduction JSN PageBuilder 3 Configuration Manual Introduction About JSN PageBuilder 3 JSN PageBuilder 3 is the latest innovation of Joomla! PageBuilder with great improvements in the interface, features, and user

More information

The Z-Files: Field reports from the world of business critical PHP applications

The Z-Files: Field reports from the world of business critical PHP applications The Z-Files: Field reports from the world of business critical PHP applications By Axel Schinke Senior Manager of Global Operations for Global Services About this webinar Field reports from Zend Consulting

More information

CS 498RK FALL RESTFUL APIs

CS 498RK FALL RESTFUL APIs CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources

More information

Scaling a Web Site. Lecture 14: Scale-out Parallelism, Elasticity, and Caching

Scaling a Web Site. Lecture 14: Scale-out Parallelism, Elasticity, and Caching Lecture 14: Scaling a Web Site Scale-out Parallelism, Elasticity, and Caching Parallel Computer Architecture and Programming CMU 15-418/15-618, Spring 2017 Tunes Taylor Swift Shake it Off (1989) Not happy

More information

MemC3: MemCache with CLOCK and Concurrent Cuckoo Hashing

MemC3: MemCache with CLOCK and Concurrent Cuckoo Hashing MemC3: MemCache with CLOCK and Concurrent Cuckoo Hashing Bin Fan (CMU), Dave Andersen (CMU), Michael Kaminsky (Intel Labs) NSDI 2013 http://www.pdl.cmu.edu/ 1 Goal: Improve Memcached 1. Reduce space overhead

More information

Performance improvements in MySQL 5.5

Performance improvements in MySQL 5.5 Performance improvements in MySQL 5.5 Percona Live Feb 16, 2011 San Francisco, CA By Peter Zaitsev Percona Inc -2- Performance and Scalability Talk about Performance, Scalability, Diagnostics in MySQL

More information

CORE PHP CURRICULUM. Introductory Session Web Architecture Overview of PHP Platform Origins of PHP in the open source community

CORE PHP CURRICULUM. Introductory Session Web Architecture Overview of PHP Platform Origins of PHP in the open source community CORE PHP CURRICULUM What you will Be Able to Achieve During This Course This course will enable you to build real-world, dynamic web sites. If you've built websites using plain HTML, you realize the limitation

More information

OPTIMISING PHP-FPM FOR PRODUCTION

OPTIMISING PHP-FPM FOR PRODUCTION OPTIMISING PHP-FPM FOR PRODUCTION OPTIMISING PHP-FPM FOR PRODUCTION ARNE BLANKERTS Principal Consultant & Co-Founder thephp.cc SEBASTIAN HEUER Developer Advocate die kartenmacherei "I DON'T THINK I HAVE

More information

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies HTTP Hypertext Transfer Protocol (HTTP) Connectionless protocol Client sends an HTTP request to a Web server Gets an HTTP response

More information

gosint Documentation Release Cisco CSIRT

gosint Documentation Release Cisco CSIRT gosint Documentation Release 0.0.1 Cisco CSIRT Nov 20, 2017 Contents 1 Installation 3 1.1 Quick Installation............................................ 3 1.2 Manual Installation............................................

More information

Informatica Developer Tips for Troubleshooting Common Issues PowerCenter 8 Standard Edition. Eugene Gonzalez Support Enablement Manager, Informatica

Informatica Developer Tips for Troubleshooting Common Issues PowerCenter 8 Standard Edition. Eugene Gonzalez Support Enablement Manager, Informatica Informatica Developer Tips for Troubleshooting Common Issues PowerCenter 8 Standard Edition Eugene Gonzalez Support Enablement Manager, Informatica 1 Agenda Troubleshooting PowerCenter issues require a

More information

Deployment Guide AX Series with Oracle E-Business Suite 12

Deployment Guide AX Series with Oracle E-Business Suite 12 Deployment Guide AX Series with Oracle E-Business Suite 12 DG_OEBS_032013.1 TABLE OF CONTENTS 1 Introduction... 4 2 Deployment Prerequisites... 4 3 Oracle E-Business Topology... 5 4 Accessing the AX Series

More information

MARKET RESPONSIVE PRESTASHOP THEME USER GUIDE

MARKET RESPONSIVE PRESTASHOP THEME USER GUIDE MARKET RESPONSIVE PRESTASHOP THEME USER GUIDE Version 1.0 Created by: arenathemes Page 1 Contents I. REQUIREMENTS & COMPATIBILITY... 3 II. INSTALLATION... 3 III. CONFIG AFTER INSTALLATION - THEME PACKAGE...

More information

BEGINNER PHP Table of Contents

BEGINNER PHP Table of Contents Table of Contents 4 5 6 7 8 9 0 Introduction Getting Setup Your first PHP webpage Working with text Talking to the user Comparison & If statements If & Else Cleaning up the game Remembering values Finishing

More information

Goals. Facebook s Scaling Problem. Scaling Strategy. Facebook Three Layer Architecture. Workload. Memcache as a Service.

Goals. Facebook s Scaling Problem. Scaling Strategy. Facebook Three Layer Architecture. Workload. Memcache as a Service. Goals Memcache as a Service Tom Anderson Rapid application development - Speed of adding new features is paramount Scale Billions of users Every user on FB all the time Performance Low latency for every

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

"Stupid Easy" Scaling Tweaks and Settings. AKA Scaling for the Lazy

Stupid Easy Scaling Tweaks and Settings. AKA Scaling for the Lazy "Stupid Easy" Scaling Tweaks and Settings AKA Scaling for the Lazy I'm Lazy (and proud of it) The Benefits of "Lazy" Efficiency is king Dislike repetition Avoid spending a lot of time on things A Lazy

More information

Achieving Scalability and High Availability for clustered Web Services using Apache Synapse. Ruwan Linton WSO2 Inc.

Achieving Scalability and High Availability for clustered Web Services using Apache Synapse. Ruwan Linton WSO2 Inc. Achieving Scalability and High Availability for clustered Web Services using Apache Synapse Ruwan Linton [ruwan@apache.org] WSO2 Inc. Contents Introduction Apache Synapse Web services clustering Scalability/Availability

More information

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard Fellow

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard  Fellow Four times Microservices: REST, Kubernetes, UI Integration, Async Eberhard Wolff @ewolff http://ewolff.com Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/

More information

Fixed Header edream Market

Fixed Header edream Market User s Manual Magento Extension Fixed Header edream Market www.edreamag.com support@edreamag.com Fixed Header for Magento MODERN, SIMPLE AND PROFESSIONAL edream Fixed Header is a unique extension that

More information

Http Error Code 403 Forbidden Dreamweaver Mysql

Http Error Code 403 Forbidden Dreamweaver Mysql Http Error Code 403 Forbidden Dreamweaver Mysql Dreamweaver Database Http Error Code 403 Forbidden 오류 403 Forbidden Adobe Systems Inc. Adobe Dreamweaver. 459. Dreamweaver Error 1045 오류. They can range

More information

Manual Trigger Sql Server 2008 Update Inserted Rows

Manual Trigger Sql Server 2008 Update Inserted Rows Manual Trigger Sql Server 2008 Update Inserted Rows Am new to SQL scripting and SQL triggers, any help will be appreciated Does it need to have some understanding of what row(s) were affected, sql-serverperformance.com/2010/transactional-replication-2008-r2/

More information

The Care and Feeding of a MySQL Database for Linux Adminstrators. Dave Stokes MySQL Community Manager

The Care and Feeding of a MySQL Database for Linux Adminstrators. Dave Stokes MySQL Community Manager The Care and Feeding of a MySQL Database for Linux Adminstrators Dave Stokes MySQL Community Manager David.Stokes@Oracle.com Simple Introduction This is a general introduction to running a MySQL database

More information

CSC4370/6370 Spring/2010 Project 1 Weight: 40% of the final grade for undergraduates, 20% for graduates. Due: May/8th

CSC4370/6370 Spring/2010 Project 1 Weight: 40% of the final grade for undergraduates, 20% for graduates. Due: May/8th CSC4370/6370 Spring/2010 Project 1 Weight: 40% of the final grade for undergraduates, 20% for graduates. Due: May/8th Note: This project is done by two people team or individual. This project must be completed

More information

Cloudflare CDN. A global content delivery network with unique performance optimization capabilities

Cloudflare CDN. A global content delivery network with unique performance optimization capabilities Cloudflare CDN A global content delivery network with unique performance optimization capabilities 1 888 99 FLARE enterprise@cloudflare.com www.cloudflare.com Overview Cloudflare provides a global content

More information

Inside Hatena Bookmark's Backend

Inside Hatena Bookmark's Backend Inside Hatena Bookmark's Backend Naoya Ito CTO, Hatena co., ltd. Agenda About Hatena Bookmark System Overview Backend Evolution mod_perl 2.0 Software Updates Caching on Reverse Proxy Other Topics About

More information

DRESSSHOP RESPONSIVE PRESTASHOP THEME USER GUIDE

DRESSSHOP RESPONSIVE PRESTASHOP THEME USER GUIDE DRESSSHOP RESPONSIVE PRESTASHOP THEME USER GUIDE Version 1.0 Created by: arenathemes Page 1 Contents I. REQUIREMENTS & COMPATIBILITY... 3 II. INSTALLATION... 3 III. CONFIG AFTER INSTALLATION - THEME PACKAGE...

More information

LAMP Tuning. Sean Walberg Network guy, server ninja

LAMP Tuning. Sean Walberg Network guy, server ninja LAMP Tuning Sean Walberg Network guy, server ninja LAMP Linux server Apache Web Server PHP/Perl application MySQL server Started off with 2 servers, 10 now 65m pageviews/month 20mbit/s of web traffic Guiding

More information

Hive Metadata Caching Proposal

Hive Metadata Caching Proposal Hive Metadata Caching Proposal Why Metastore Cache During Hive 2 benchmark, we find Hive metastore operation take a lot of time and thus slow down Hive compilation. In some extreme case, it takes much

More information

Microservices Implementations not only with Java. Eberhard Wolff Fellow

Microservices Implementations not only with Java. Eberhard Wolff Fellow Microservices Implementations not only with Java Eberhard Wolff http://ewolff.com @ewolff Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/ http://microservices-book.com/

More information

Google Tag Manager. Google Tag Manager Custom Module for Magento

Google Tag Manager. Google Tag Manager Custom Module for Magento Google Tag Manager Custom Module for Magento TABLE OF CONTENTS Table of Contents Table Of Contents...2 1. INTRODUCTION...3 2. Overview...3 3. Requirements...3 4. Features...4 4.1 Features accessible from

More information

YouPHPTube Documentation. Vinzenz Hersche, Daniel Neto

YouPHPTube Documentation. Vinzenz Hersche, Daniel Neto YouPHPTube Documentation Vinzenz Hersche, Daniel Neto Jul 16, 2018 Contents 1 For users and developers 3 2 Installation 5 3 Configuration 7 4 Plugins 9 5 Paid plugins, support and development 11 6 Performance

More information

Fixing Twitter.... and Finding your own Fail Whale. John Adams Twitter Operations

Fixing Twitter.... and Finding your own Fail Whale. John Adams Twitter Operations Fixing Twitter... and Finding your own Fail Whale John Adams Twitter Operations Operations Small team, growing rapidly. What do we do? Software Performance (back-end) Availability Capacity

More information

DevShala Technologies A-51, Sector 64 Noida, Uttar Pradesh PIN Contact us

DevShala Technologies A-51, Sector 64 Noida, Uttar Pradesh PIN Contact us INTRODUCING PHP The origin of PHP PHP for Web Development & Web Applications PHP History Features of PHP How PHP works with the Web Server What is SERVER & how it works What is ZEND Engine Work of ZEND

More information