Subject: Re: Taxonomy draft - web replication problems

From: Joe Touch <[email-masked]>
Date: Fri, 20 Aug 1999 15:31:59 -0700 (PDT)

> From [email-masked]  Fri Aug 20 15:04:41 1999
> Delivery-Date: Fri, 20 Aug 1999 15:04:41 -0700
> Return-Path: [email-masked]
> Date: 	Fri, 20 Aug 1999 23:46:47 +0200
> From: Wojtek Sylwestrzak <[email-masked]>
> X-Accept-Language: pl, en
> To: Joe Touch <[email-masked]>
> CC: [email-masked], [email-masked]
> Subject: Re: Taxonomy draft - web replication problems
> 
> Joe Touch wrote:
> > 
> > It seems like there are a few dimensions in which caching and replication
> > differ:
> > 
> >                         Caching         Replication
> > 
> > what is copied          server output   server source
> >                                         (as Micah observed, though
> >                                         I would apply it to all replication,
> >                                         not just mirroring)
> > 
> > who initiates it        client          server
> >                         (unless push-
> >                         cached, which
> >                         blurs the line)
> > 
> > how permanent is it     temporary       permanent
> >                                         (managed by the server,
> >                                         flushed or updated via overwrites
> >                                         by the server)
> 
> i think it's a good start summing up our intuitions so far.
> however for each of these definitions it would be relatively easy to
> find a counterexample. it might be premature to consider these now,
> but i'm sure we could give examples of mechanisms that copy server
> output but can hardly be called caching, are initiated by server,
> but are still considered to be caches etc.

The purpose of these definitions (or the matrix thereof) is
to provide a grounding for the base concepts. One thing
we know all too well in WREC is that there is:

	- a counter example for every definition

	- a(nother) definition for any phrase

The question is whether we can define caching and replication 
sufficient to distinguish them for the taxonomy.

> > The difference between a mirror and a replica, IMO, is that
> > 
> >         a mirror is a copy of an entire server
> >         a replicate is a copy of one of the files on a server
> 
> but then we run into problem of defining what is an 'entire server' ?

"entire database" - a related collection of data.

I.e., mirror refers to the server,or collection, not the
individual items. A datum is replicated; the collection is
mirrored. (at least that's what I'm trying to convey).

Joe

---

From: Wojtek Sylwestrzak <[email-masked]>
Date: Sat, 21 Aug 1999 00:38:04 +0200

> sufficient to distinguish them for the taxonomy.

Agreed. That's why I thought it might be premature to give
counterexamples.
Probably unnecessary and confusing at all.

[...]
> mirrored. (at least that's what I'm trying to convey).

how about: a datum is copied, the collection is mirrored ?

--w

---

From: Henrik Nordstrom <[email-masked]>
Date: Sat, 21 Aug 1999 01:29:11 +0200

My view of the terms involved:

Mirroring: The replication of a service or information set to another
server/location.

Replication: The act of copying a information entity to another location
on a regular basis (sheduled or on demand). The definition of a entity
ranges from a single file or record to a whole database depending on
system and design.

Replica: A copy of a information entity. Changes are propagated thru
replication.

Caching: Storage of server responses which is then substituted as
replies to later queries for the same entity.

Service replication: Broader concept of having multiple points of
precense for a service. Can be acheived thru replication, caching or
both, whichever seems most suitable for the service and purpose.

In my world the main difference between a replica and a mirror is
consistency. A mirror can (intentionally or accidently) diverge somewhat
from the original, while a replica must be a exact copy at the time the
replica is made or at least be able to tell what is not. Replication can
also be two-way while mirroring is always a one-way relation.

A example of a intentionally diverged mirror is where part of the
information contained in the mirror is not replicated from a origin
source but produced locally for the specific mirror.

--
Henrik Nordstrom

---

From: Wojtek Sylwestrzak <[email-masked]>
Date: Sun, 22 Aug 1999 13:30:35 +0200

Henrik Nordstrom wrote:
[...]
> source but produced locally for the specific mirror.

In practice: do you know of many replicas not being mirrors,
acoording to this definition ?

if not, than there would be no point in defining an inexisting practice
in the taxonomy document, and we should stick to 'mirror' only.

--w

---

From: Wojtek Sylwestrzak <[email-masked]>
Date: Sun, 22 Aug 1999 13:32:47 +0200

> ranges from a single file or record to a whole database depending on

I think this is completely reverse to Micah's definitions.

--w

---

From: Henrik Nordstrom <[email-masked]>
Date: Mon, 23 Aug 1999 07:43:28 +0200

Wojtek Sylwestrzak wrote:

> acoording to this definition?

Not really, a replica is most of the time also a mirror. The exception
is when you have two way replication of information and neither of the
replicas is the authoritive origin, but I haven't yet seen this model
actively used in web services.

For the taxonomy draft it may be sufficient to define mirror in the
broader concept.

When discussing the actual transfer of information the situaction gets a
bit more complicated.

--
Henrik Nordstrom

---

From: Wojtek Sylwestrzak <[email-masked]>
Date: Mon, 23 Aug 1999 08:29:14 +0200

> When discussing the actual transfer of information the situaction gets a

Right, but then we'd have to involve things like distributed file
systems, and there's already a lot of theory behind them, so we probably
shouldn't reinvent it anyway.

also, i think it's better not to broaden the scope of the taxonomy draft
beyond the web if possible, for obvious reasons.

--w

---

From: Patrick McManus <[email-masked]>
Date: Mon, 23 Aug 1999 10:22:20 -0400 (EDT)

In a previous episode Henrik Nordstrom said...
:: 
:: Wojtek Sylwestrzak wrote:
:: 
:: > In practice: do you know of many replicas not being mirrors,
:: > acoording to this definition?
:: 
:: Not really, a replica is most of the time also a mirror. The exception
:: is when you have two way replication of information and neither of the
:: replicas is the authoritive origin, but I haven't yet seen this model
:: actively used in web services.
:: 

I work with one of these.. two physical locations where the
applications share an Oracle Database in Replicated Server Mode
(rw).. I'd call that a replica as neither of the sites is
authoritative in any manner.

on the cache vs mirror thing:
in my mind the difference between a cache and a mirror is that in the
cache scenario the cache is responsible for enforcing expiration
information (do I serve my copy or do I get one from the origin
server?), and in the mirror scenario the origin server is responsible
for changing the mirror's copy when appropriate, the mirror never
makes an expiration decision.

focusing on static/dynamic is a red herring and is sometimes an
implementation artifact, but is surely not part of the definition (and
we don't want to un-wittingly create a limitation because it happens
to be a side-effect of current practice..)

-P

---

From: Yves Lafon <[email-masked]>
Date: Mon, 23 Aug 1999 16:31:06 +0200 (MET DST)

> authoritative in any manner.

How will you servers serving the same content for the same URI, just with
different IPs? It is more than just a "replica", it should be a clone, but
maybe that's not needed.

> makes an expiration decision.

A replica should server the same object, a cache will serve only a cached
view of this object (an HTTP view for instance). For files it is the same,
but not for other kind of contents.
Joe said that caches are serving temporary thing, but you may
thing of a ridiculously long expiration date and many hits, and the
resource will stay forever in the cache, so I don't think that time is an
issue there.

	~~Yves

---

From: Martin Hamilton <[email-masked]>
Date: Tue, 24 Aug 1999 11:19:46 +0100

-----BEGIN PGP SIGNED MESSAGE-----

Patrick McManus writes:

| in my mind the difference between a cache and a mirror is that in the
| cache scenario the cache is responsible for enforcing expiration
| information (do I serve my copy or do I get one from the origin
| server?), and in the mirror scenario the origin server is responsible
| for changing the mirror's copy when appropriate, the mirror never
| makes an expiration decision.

Perhasps also worth bearing in mind that some technologies blur the 
cache/mirror distinction - e.g. Akamai's FreeFlow and Sandpiper's 
Footprint.

Cheers,

Martin