Implementation of a parallel web proxy server with caching Presented by: Kaushik Choudhary.

Slides:



Advertisements
Similar presentations
Tableau Software Australia
Advertisements

Online Algorithm Huaping Wang Apr.21
MINJAE HWANG THAWAN KOOBURAT CS758 CLASS PROJECT FALL 2009 Extending Task-based Programming Model beyond Shared-memory Systems.
CSC Multiprocessor Programming, Spring, 2011 Outline for Chapter 6 – Task Execution Dr. Dale E. Parson, week 7.
Apache Web Server v. 2.2 Reference Manual Chapter 4 Multi-Processing Modules (MPMs)
Self Adapting Web Servers Based on Hosted Applications by Hussain Alsaeed 10/12/2009.
Accurate and Efficient Replaying of File System Traces Nikolai Joukov, TimothyWong, and Erez Zadok Stony Brook University (FAST 2005) USENIX Conference.
Programming project #4 1 CS502 Spring 2006 Programming Project #4 Web Server CS-502 Operating Systems Spring 2006.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
A Distributed Proxy Server for Wireless Mobile Web Service Kisup Kim, Hyukjoon Lee, and Kwangsue Chung Information Network 2001, 15 th Conference.
Usability Test by Knowing User’s Every Move - Bharat chaitanya.
Kerim KORKMAZ A. Tolga KILINÇ H. Özgür BATUR Berkan KURTOĞLU.
HTTP Performance Objective: In this problem, we consider the performance of HTTP, comparing non-persistent HTTP with persistent HTTP. Suppose the page.
CS-3103 & CS-502, Summer 2006 Programming Project #31 Programming Project #3 Web Server CS-3103 & CS-502 Operating Systems.
 Proxy Servers are software that act as intermediaries between client and servers on the Internet.  They help users on private networks get information.
Fundamentals of Python: From First Programs Through Data Structures
IT 210 The Internet & World Wide Web introduction.
Supporting Strong Cache Coherency for Active Caches in Multi-Tier Data-Centers over InfiniBand S. Narravula, P. Balaji, K. Vaidyanathan, S. Krishnamoorthy,
INTERNET APPLICATION DEVELOPMENT For More visit:
Towards a Safe Playground for HTTPS and Middle-Boxes with QoS2 Zhenyu Zhou CS Dept., Duke University.
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
1 Design and Performance of a Web Server Accelerator Eric Levy-Abegnoli, Arun Iyengar, Junehwa Song, and Daniel Dias INFOCOM ‘99.
Venkatram Ramanathan 1. Motivation Evolution of Multi-Core Machines and the challenges Summary of Contributions Background: MapReduce and FREERIDE Wavelet.
Database Replication Policies for Dynamic Content Applications Gokul Soundararajan, Cristiana Amza, Ashvin Goel University of Toronto EuroSys 2006: Leuven,
User side and server side factors that influence the performance of the website P2 Unit 28.
Task Scheduling for Highly Concurrent Analytical and Transactional Main-Memory Workloads Iraklis Psaroudakis (EPFL), Tobias Scheuer (SAP AG), Norman May.
Web Designing By Bhupendra Ratha, Lecturer School of Library & Information Science D.A.V.V., Indore.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
Performance Issues in Parallelizing Data-Intensive applications on a Multi-core Cluster Vignesh Ravi and Gagan Agrawal
EXPOSE GOOGLE APP ENGINE AS TASKTRACKER NODES AND DATA NODES.
CHEN Ge CSIS, HKU March 9, Jigsaw W3C’s Java Web Server.
« Performance of Compressed Inverted List Caching in Search Engines » Proceedings of the International World Wide Web Conference Commitee, Beijing 2008)
Scaling Dynamic Content Applications through Data Replication - Opportunities for Compiler Optimizations Cristiana Amza UofT.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
Comnet.technion.ac.il/~cn23s00 Computer Networks Laborator y Technion Israel Institute of Technology BlueTooth High-Level Simulator A Base Platform For.
Towards a Billion Routing Lookups per Second in Software  Author: Marko Zec, Luigi, Rizzo Miljenko Mikuc  Publisher: SIGCOMM Computer Communication Review,
Architecture for Caching Responses with Multiple Dynamic Dependencies in Multi-Tier Data- Centers over InfiniBand S. Narravula, P. Balaji, K. Vaidyanathan,
Understanding Performance, Power and Energy Behavior in Asymmetric Processors Nagesh B Lakshminarayana Hyesoon Kim School of Computer Science Georgia Institute.
Consider the program fragment below left. Assume that the program containing this fragment executes t1() and t2() on separate threads running on separate.
NA61/NA49 virtualisation: status and plans Dag Toppe Larsen CERN
Don’t Disconnect Me! The challenges of building offline-enabled web apps Matthias Oßwald,
1 MSRBot Web Crawler Dennis Fetterly Microsoft Research Silicon Valley Lab © Microsoft Corporation.
Elastic Cloud Caches for Accelerating Service-Oriented Computations Gagan Agrawal Ohio State University Columbus, OH David Chiu Washington State University.
1 Adaptive Parallelism for Web Search Myeongjae Jeon Rice University In collaboration with Yuxiong He (MSR), Sameh Elnikety (MSR), Alan L. Cox (Rice),
Martin Kruliš by Martin Kruliš (v1.1)1.
Threads. Readings r Silberschatz et al : Chapter 4.
Shouqing Hao Institute of Computing Technology, Chinese Academy of Sciences Processes Scheduling on Heterogeneous Multi-core Architecture.
Queue Manager and Scheduler on Intel IXP John DeHart Amy Freestone Fred Kuhns Sailesh Kumar.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
NGS computation services: APIs and.
ATLAS FroNTier cache consistency stress testing David Front Weizmann Institute 1September 2009 ATLASFroNTier chache consistency stress testing.
Overview on Web Caching COSC 513 Class Presentation Instructor: Prof. M. Anvari Student name: Wei Wei ID:
1 CS 430: Information Discovery Lecture 17 Web Crawlers.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
A Web Based Job Submission System for a Physics Computing Cluster David Jones IOP Particle Physics 2004 Birmingham 1.
A Detailed Introduction To Visual Studio.NET CRB Tech ReviewsCRB Tech Reviews introduces you to the world of Visual.
BY C RAMYASVI SAGAR BARATH INSTITUTE OF ENGINEERING AND TECHNOLOGY SEMINAR TOPIC ON DOWNLOAD ACCELERATOR.
Grid Data Access: Proxy Caches and User Views EGI Technical Forum 19 September 2011 Jan Just Keijser Cristian Cirstea Jeff Templon.
Introduction to threads
Unit 20 - Client Side Customisation of Web Pages
UNIT – I Linked Lists.
Distributed Network Traffic Feature Extraction for a Real-time IDS
Data Bridge Solving diverse data access in scientific applications
Linked List Stacks, Linked List Queues, Dequeues
Processes and Threads Processes and their scheduling
Processes The most important processes used in Web-based systems and their internal organization.
A Presentation on online voting system
Overview Introduction VPS Understanding VPS Architecture
THE GOOGLE FILE SYSTEM.
Your computer is the client
Presentation transcript:

Implementation of a parallel web proxy server with caching Presented by: Kaushik Choudhary

Outline Introduction Design Challenges Design Challenges - Solutions Implementation Experimental Setup Results

Introduction What is an HTTP/1.0 web-proxy? – Already covered by others. How does it work? – Already covered by others. What is a parallel web proxy with caching? – Already covered by others.

Outline Introduction Design Challenges Design Challenges - Solutions Implementation Experimental Setup Results

Design Challenges Dozens of open-source implementations available online to take “inspiration” from. System calls Parallelism Efficient Cache

Design Challenges – System calls Thread-unsafe versionAlternative Thread-safe version/re- entrant asctime()asctime_r() gethostbyaddr()gethostbyaddr_r() gethostbyname()gethostbyname_r() inet_ntoa()inet_ntop()

Design Challenges – Parallelism The pseudo-code in the project description says “Spawn a worker thread to handle the connection” What if there were a 100 connection requests? If there is a request queue, how do threads atomically access this queue?

Design Challenges – Caching Size of cache? Eviction policy. Atomic and efficient access to Cache.

Outline Introduction Design Challenges Design Challenges - Solutions Implementation Experimental Setup Results

Design Challenges – Parallelism solutions If there were a 100 requests, create a pre- determined number of threads and assign a request as task. Use locks to access the task queue. Atomic and efficient access to Cache.

Design Challenges – Caching solutions Currently stores at most 20 responses (web pages) [TODO – limit size] Eviction policy used - LRU. Store the pages and timestamps in a doubly linked-list, make a node a head when accessed, use a hashmap to index elements of this list.

Outline Introduction Design Challenges Design Challenges - Solutions Implementation Experimental Setup Results

Implementation Used open-source object oriented design from “ Implemented pthreads and openmp versions for parallelism. Implemented cache as described above.

Outline Introduction Design Challenges Design Challenges - Solutions Implementation Experimental Setup Results

Experimental Setup Created command line scripts to open 30 distinct non-https websites (google-chrome commandline). Distinct websites avoids interference from browser cache. Measured total time to serve all requests in threadless, different pthreads versions and openmp version of the code. Conducted experiments on two machines (Core i5 2.4 GHz, 4GB RAM (desktop) and Core i GHz, 8GB RAM)(laptop).

Outline Introduction Design Challenges Design Challenges - Solutions Implementation Experimental Setup Results

Results – Access times (no-cache)

Results – Speedup (desktop)

Thank you!