Top Banner
Toward Automatic State Toward Automatic State Management Management for Dynamic Web Services for Dynamic Web Services Jeff Chase Department of Computer Science Duke University [email protected] Amin Vahdat Geoff Berry Landon Cox Geoff Cohen Michael Dean
20

Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University [email protected] Amin Vahdat Geoff.

Dec 14, 2015

Download

Documents

Branden Rose
Welcome message from author
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
Page 1: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Toward Automatic State ManagementToward Automatic State Managementfor Dynamic Web Servicesfor Dynamic Web Services

Jeff Chase

Department of Computer ScienceDuke University

[email protected]

Amin VahdatGeoff BerryLandon CoxGeoff CohenMichael Dean

Page 2: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Scaling Internet ServicesScaling Internet Services

With 100M+ users out there, popularity is something for Website builders to fear.

Internet

wireless clients

wired clients

Webserver

“The Internet is growing

exponentially”etc., etc....

Page 3: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Scalability in the SmallScalability in the Small

Internet

server farm

Internet sites can achieve scalability in the small using clustering, bigger machines, and fatter pipes.

Drawbacks of serving from a single network site:

- vulnerable to site failure- higher latency and- communication cost

Page 4: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Scalability in the LargeScalability in the Large

licalicaInternet

server farm

site replica

reverse proxies

proxy caches

One way to achieve scalability in the large is to push the service out into the network, closer to the clients.

Wide-area caching and replication promise more available and responsive services.

Web cache vendors: Inktomi, Novell, CacheFlow, NetApp, Distributed caches: NLANR Cache Infrastructure (Squid)

Replicated Web hosting providers: Akamai, Sandpiper

Page 5: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Server Engine

The Trouble with Dynamic ContentThe Trouble with Dynamic Content

clients

requestthreads

Dynamic documents are produced by code (e.g.,

cgi) executing over service state, e.g., materialized from a database or other

external repository.

Code

Web Application Server

code and data

Dynamic services generate Web documents “on the fly”.

Problem: Existing frameworks for Web caching and replication do not handle dynamic content.

Web Application

Page 6: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Why Dynamic Content Is So ImportantWhy Dynamic Content Is So Important

Dynamic content is a key aspect of the present and future Web.

• Web servers become “Web application servers”.

personalized content presentation (my.*.com)

Web-based mail, commerce, finance, medicine, etc.

interactive services for storage/retrieval/presentation

• Application Service Providers use the Web as a delivery vehicle for “futz-free” applications.

no installation, no upgrade, no backups, no mess, no fuss

easy access from diverse platforms (e.g., mobile)

“apps on tap”

Page 7: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Scaling Services with Dynamic ContentScaling Services with Dynamic Content

site A

site B

Solution: cache/replicate the service itself (code and data) instead of the documents it generates.

Issues! mechanism for migrating code/data! replica placement! request routing* state management/consistency- security? resource management

Web Application Proxies extend static Web proxies to cache and execute service code and data (service caching).

Code

Page 8: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Toward Automatic State ManagementToward Automatic State ManagementOur objective is to facilitate caching and replication of dynamic

content.

1. Consider a growing class of services built using server-side Java technology.

Leverage Java’s transportable code and data.

JavaServer Pages (JSPs) add useful constraint to Java’s servlets.

2. Focus on the subproblem of state management.Internal service state must be consistent and current.

3. Goal: make state management automatic.Can we transparently convert unscalable service

implementations into scalable ones?

Page 9: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Why “Toward”? Are We There Yet?Why “Toward”? Are We There Yet?

We simplified the problem to make it tractable:

• Heterogenity of state: we handle Java objects only.

Materialize data from external sources as Java data structures.

• Concurrency control: a hard problem, so we use brute force.

Prototype uses “single shot” reader/writer locking on object groups.

Updates originating at different replicas must be nonconflicting.

Service programmer must help identify points when state is internally consistent (commit points).

“Consistent” class interfaces

Our current solution offers semi-automatic state management for “well-behaved” Java services.

Page 10: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Servlet Engine

Portrait of a JSP Web ApplicationPortrait of a JSP Web Application

JSP Name Registry

serverthreads

clients

requestthreads

For our purposes, a “Web application” is a cloud of JSP servlets and objects.

“jack” =“jill” =

....

Servlet

Web Application Server

Java objects and

classes

Page 11: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

The Project in a NutshellThe Project in a Nutshell

1. Use bytecode transformation to rewrite the service code. JOIE (J* Object Instrumentation Environment) is a toolkit

for building bytecode rewriters: it’s “ATOM for Java”.

2. Inject calls to a simple caching/replication package (Ivory). “Shasta or Midway for the Web”

3. Use an incremental variant of Java’s Object Serialization framework to propagate state among replicas.

“Rsync for JavaServers”

4. Illustrate with a minimal caching/replication framework.Extend conventional Web proxy caching with service

caching in Web application proxies.

Page 12: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

The Role of Bytecode TransformationThe Role of Bytecode Transformation

Servlet

AutoWriter CaptureWrites SpliceCommit

Servlet

class-specific object serialization methods

write barriers

prologue and epilogue for

Consistent methods

Consistent action entry points implement Consistent interface.

JOIE bytecode

transformers

Page 13: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

ect

Servlet Engine

The Transformed ServiceThe Transformed Service

JSP Name Registry

Transform all servlet classes and associated object classes in the “cloud”.

Ivory State Manager

lock

lockcommit

State manager tracks and

coordinates object updates.

Page 14: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Servicing a Replica (Pull)Servicing a Replica (Pull)

Servlet Engine

Name Registry

State Manager

Servlet Engine

Name Registry

Object Cache

ObjectServlet

Primary Server

Secondary Cache/Replica(Web Application Proxy)

On a name lookup miss, or when proxy expiration time expires, pull missing

objects and updates from primary server.

GET http://primary/objectcache.ObjectServlet?name

Page 15: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Meeting the Goal of SimplicityMeeting the Goal of Simplicity

A key objective is to avoid (re)implementing a “full-blown” distributed object system.

• There is currently no reference faulting mechanism.

Leverage JSP symbolic naming scheme.

The granularity of fetch is the closure of a named object.

• There is no synchronous update/invalidation mechanism.

Each replica sees a self-consistent state...but it may be stale.

Updates propagate all modified objects in the shared view.

• Represent references as OIDs, but only on the wire.

Page 16: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Managing Multiple ReplicasManaging Multiple Replicas

The state manager tracks object membership in each replica’s view.

A serializer propagates objects (and their closures) to views incrementally.

The serializer uses (and updates) OID mappings in the view tables.

copyset table

view dirty list

view table

serializer

requiresO(mn) space

Page 17: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

0

20

40

60

80

100

120

0 50 100 150 200

demand (requests/second)

thro

ug

hp

ut

(re

qu

es

ts/s

ec

on

d)

original

transformed

1-view

5-views

1-proxy

What Does It Cost?What Does It Cost?

proxies and servers Sun Ultra 140

167 MHz UltraSPARC128 MB RAM

workloadtoy portal emulation

small data (~300 KB)2500 objects

(stocks, news, etc.)3KB response

demand*5 usersrandom profiles

15% update per second2-second proxy refresh times

Page 18: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Scalability Benefits: A Small ExperimentScalability Benefits: A Small Experiment

0

50

100

150

200

250

300

350

400

450

0 200 400 600

demand (requests/second)

req

ues

t th

rou

gh

pu

t

1-proxy

2-proxy

3-proxy

4-proxy

ideal

15% update every 5 seconds2-second proxy refresh times

median responsetimes belowsaturation:~205 ms

Page 19: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

ConclusionConclusion1. Replication of dynamic Web services is a worthy challenge.

2. In the Java environment, bytecode transformation is a powerful tool for automating replica state management.

3. The prototype enables service caching for a class of Java-based dynamic services, improving scalability.

modest state demands with minimal write sharing

leverage JSP-style symbolic naming for partial replication (caching)

Web application proxies extend the benefits of static Web caching

4. Web applications must be “well-behaved” to benefit.Key research questions concern the contract between the Web

application and the replication service — and how to enforce it.

Page 20: Toward Automatic State Management for Dynamic Web Services Jeff Chase Department of Computer Science Duke University chase@cs.duke.edu Amin Vahdat Geoff.

Performance Cost of Write BarriersPerformance Cost of Write Barriers

0

0.2

0.4

0.6

0.8

1

1.2

1.4

compress jess db mtrt jack

No

rma

lize

d e

xe

cu

tio

n t

ime

Untransformed All Writes

Basic Blocks Dominators