Internet DRAFT - draft-yry-decade-replication
draft-yry-decade-replication
DECADE R. Yang
Internet-Draft Yale University
Intended status: Informational N. Zong
Expires: April 25, 2012 Huawei Technologies
October 23, 2011
DECADE Content Replication and Access
draft-yry-decade-replication-00
Abstract
The DECADE Working Group at IETF is working on introducing standard-
based, application-agnostic in-network storage for content
distribution to improve both network efficiency and application
performance. In this document, we introduce content replication
trees and then discuss approaches on how a replication tree can be
constructed in DECADE. In particular, we introduce concepts
including core-stateless content pull, and stateful, open content
forwarding table.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 25, 2012.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
Yang & Zong Expires April 25, 2012 [Page 1]
Internet-Draft DECADE REPLICATION October 2011
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Yang & Zong Expires April 25, 2012 [Page 2]
Internet-Draft DECADE REPLICATION October 2011
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Entities and Terms . . . . . . . . . . . . . . . . . . . . . . 4
3. DECADE Content Replication Tree Structure . . . . . . . . . . 5
3.1. Simple Replication and Access Tree . . . . . . . . . . . . 5
3.2. Recursive Data Replication Tree . . . . . . . . . . . . . 6
4. DECADE Content Replication Tree Construction . . . . . . . . . 7
4.1. Proactive Push vs On-Demand Pull . . . . . . . . . . . . . 8
4.2. Application Control vs DECADE Control . . . . . . . . . . 9
5. On-Demand Pull for DECADE . . . . . . . . . . . . . . . . . . 9
5.1. Core-Stateless: Request Pull Chain . . . . . . . . . . . . 10
5.2. Core-Stateful: Open Content Forwarding Table . . . . . . . 10
6. Hybrid Control Approaches . . . . . . . . . . . . . . . . . . 11
7. Security Considerations . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . . 11
10.2. Informative References . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12
Yang & Zong Expires April 25, 2012 [Page 3]
Internet-Draft DECADE REPLICATION October 2011
1. Introduction
The IETF DECADE architecture [I-D.ietf-decade-arch] enables
applications to control in-network storage (INS) to achieve efficient
content distribution. The DECADE architecture is motivated in the
context of P2P applications to save last-mile uplink bandwidth. But
DECADE may also be applied to a wider range of applications. See
[I-D.ietf-decade-reqs] for a definition of the target applications
supported by DECADE.
In particular, DECADE introduces capabilities where applications can
have explicit control over writing and reading at specified in-
network storage locations. A Standard Data Transport (SDT) protocol
[I-D.ietf-decade-arch] is used to write (upload) data objects to a
DECADE Server and to read (download) data objects from a DECADE
Server.
In this document, we focus on two issues: DECADE Content Replication
and DECADE Content Access. DECADE Content Replication is to
determine, which DECADE Server(s) should store a given piece of
content, when, and from where does a storing DECADE server get the
content? The DECADE Content Access is to determine, for a request
for content from a Content Consumer, which server should serve the
request?
The solution to Content Replication and Access depends on the
setting: the workload and the capability of the Content Distribution
Application that is utilizing DECADE. The effectiveness of a scheme
for in-network storage for content distribution depends on the
overhead of pushing content into in-network storage versus the
benefit of having the content available into in-network storage.
Since this document is a first step, we consider a basic setting
where a single DECADE Service Provider offers to a Content
Distribution Application multiple DECADE Servers distributed across a
network. We focus on a single piece of content, which can be
ingested into DECADE Servers from a Content Provider. Some Content
Consumers will consume the piece of content.
2. Entities and Terms
This document uses entities defined in [I-D.ietf-decade-arch],
including DECADE Server, DECADE Service Provider, DECADE Content
Provider, DECADE Content Consumer, Content Distribution Application,
etc.
This document also defines additional terminology:
Yang & Zong Expires April 25, 2012 [Page 4]
Internet-Draft DECADE REPLICATION October 2011
Application Control Logic: We use this term to refer to the generic
data-flow control logic implemented by a Content Distribution
Application to control which DECADE Server(s) store the piece of data
content, and which DECADE Server serves a request for a piece of
data. This logic can be centralized or distributed.
DECADE Control Logic: This is similar to Application Control Logic,
but implemented by the DECADE Service Provider.
3. DECADE Content Replication Tree Structure
Since we focus on the data flow of a specific single piece of
content, we consider that the Replication and Access data flow forms
a tree.
3.1. Simple Replication and Access Tree
We first show a simple Replication and Access structure, as shown in
below Figure 1.
We identify three types of content data flow links in the tree:
Content Provider -> Content Consumer;
Content Provider -> DECADE Server;
DECADE Server -> Content Consumer.
The sub-tree formed by omitting the Content Consumer nodes is the
Replication tree. Since there are no data flow links among DECADE
Servers, the Replication tree is one level.
Yang & Zong Expires April 25, 2012 [Page 5]
Internet-Draft DECADE REPLICATION October 2011
+------------------+
| Content Provider |
+------------------+
| | |
----------------- | -------
| | |
V V V
+------------+ +-----------+ +-----------+
| Content | | DECADE | | DECADE |
| Consumer | | Server | | Server |
+------------+ +-----------+ +-----------+
| | |
------------- ----------- |
| | |
V V V
+----------+ +----------+ +----------+
| Content | | Content | | Content |
| Consumer | | Consumer | | Consumer |
+----------+ +----------+ +----------+
Figure 1: A Simple Replication and Access Tree.
3.2. Recursive Data Replication Tree
A one-level Replication Tree may not be scalable. For example, if
there is a flash-crowd arrival of Content Consumers, there may not be
enough capacity at the Content Provider to replicate simultaneously
to many DECADE Servers to serve many Content Consumers. What this
implies is that DECADE must support inter-DECADE server replication,
i.e., the capability to replicate the content from one DECADE server
to another DECADE server. We refer to a Replication Tree with inter-
DECADE Server data flow links as a Recursive Replication Tree.
Figure 2 below illustrates an example.
We identify four types of data flow links in the tree:
Content Provider -> Content Consumer;
Content Provider -> DECADE Server;
DECADE Server -> DECADE Server;
DECADE Server -> Content Consumer.
Yang & Zong Expires April 25, 2012 [Page 6]
Internet-Draft DECADE REPLICATION October 2011
+------------------+
| Content Provider |
+------------------+
| |
----------------- |
| |
V V
+----------+ +-----------+
| Content | | DECADE |
| Consumer | | Server |
+----------+ +-----------+
| | |
------------ | -------------
| | |
V V V
+-----------+ +-----------+ +----------+
| DECADE | | DECADE | | DECADE |
| Server | | Server | | Server |
+-----------+ +-----------+ +----------+
| | |
------------- ----------- |
| | |
V V V
+----------+ +----------+ +----------+
| Content | | Content | | Content |
| Consumer | | Consumer | | Consumer |
+----------+ +----------+ +----------+
Figure 2: A Recursive Data Replication and Access Tree.
We believe that DECADE should support the construction of Recursive
Replication trees.
4. DECADE Content Replication Tree Construction
There are multiple design dimensions in constructing a DECADE Content
Replication Tree:
Timing: a tree could be constructed proactively or on-demand;
Controller: Both the Application Control Logic (through a DECADE
API) and the DECADE Control Logic (through DECADE Service Provider
internal optimization) can be involved in constructing a
replication tree to achieve effective content distribution.
Below we discuss the two dimensions in more detail.
Yang & Zong Expires April 25, 2012 [Page 7]
Internet-Draft DECADE REPLICATION October 2011
4.1. Proactive Push vs On-Demand Pull
We identify the following scenarios where a replication link can be
created:
Proactive push: The sender pushes (write/post) a piece of content
to a DECADE Server before Consumer requests;
On-demand pull: A DECADE Server pulls content into itself upon
Consumer request.
Both Proactive Push and On-Demand Pull have their benefits and
issues.
Proactive Push: it may reduce content distribution latency. The push
operation can also be scheduled to utilize under-utilized resources.
An issue of Proactive Push, however, is that the resource waste ratio
can be higher, in particular, if the request patterns of Content
Consumers are difficult to predict. On the other hand, if the
request patterns can be known approximately, e.g., for patch
distribution, this may not be an issue.
On-demand Pull: it can have a much lower ratio of wasted resources.
In particular, if a DECADE Server is on or close to the distribution
path to a Content Consumer, then the replication into the DECADE
Server is essentially piggybacked on the service to the Content
Consumer.
To be more concrete, in Table 1 below, we look at how each entity may
initiate each given type of content replication link.
+------------+---------------+-------------+------------+------------+
| | Content | Content | DECADE | DECADE |
| | Provider -> | Provider -> | Server -> | Server -> |
| | Content | DECADE | DECADE | Content |
| | Consumer | Server | Server | Consumer |
+------------+---------------+-------------+------------+------------+
| Content | Push to the | Push to | Recursive | Recursive |
| Provider | Content | DECADE | push. | push. |
| | Consumer. | Server. | Issue: How | Issue: How |
| | Issue: How | Issue: How | does the | does the |
| | does the | does the | Content | Content |
| | Content | Content | Provider | Provider |
| | Provider know | Provider | select the | select the |
| | to push to | select the | link? | link? |
| | the Content | DECADE | | |
| | Consumer? | Server? | | |
| ========== | ========== | ========== | ========== | ========== |
Yang & Zong Expires April 25, 2012 [Page 8]
Internet-Draft DECADE REPLICATION October 2011
| Content | Pull from | Recursive | Recursive | Pull from |
| Consumer | Content | pull | pull | DECADE |
| | Provider | | | Server |
+------------+---------------+-------------+------------+------------+
Table 1: Proactive Push vs On-Demand Pull.
4.2. Application Control vs DECADE Control
From the below Table 2, one can identify extreme control cases: (1)
Application Control Logic conducts the full control; (2) DECADE
Control Logic provides the full control.
+-------------+------------+--------------+------------+------------+
| | Content | Content | DECADE | DECADE |
| | Provider | Provider -> | Server -> | Server -> |
| | -> Content | DECADE | DECADE | Content |
| | Consumer | Server | Server | Consumer |
+-------------+------------+--------------+------------+------------+
| Application | Send | See left. | See left. | See left. |
| Control | command to | Issue: How | | |
| Logic | sender to | much should | | |
| | push or to | Application | | |
| | receiver | knows about | | |
| | to pull. | DECADE | | |
| | | servers and | | |
| | | request | | |
| | | patterns? | | |
| ========== | ========== | ========== | ========== | ========== |
| DECADE | Send | See left. | See left. | See left. |
| Control | command to | | | |
| Logic | sender to | | | |
| | push or | | | |
| | receiver | | | |
| | to pull. | | | |
+-------------+------------+--------------+------------+------------+
Table 2: Application Control vs DECADE Control.
5. On-Demand Pull for DECADE
The current DECADE architecture document [I-D.ietf-decade-arch]
introduces the method of DECADE GET with a REMOTE_SERVER parameter to
obtain data from a remote DECADE Server. One can consider this
method as a specific pull-based inter-DECADE Server replication
primitive. A challenge of DECADE design is how to support generic
pull-based replication.
Yang & Zong Expires April 25, 2012 [Page 9]
Internet-Draft DECADE REPLICATION October 2011
In this document, we introduce two techniques.
5.1. Core-Stateless: Request Pull Chain
In this design, we introduce the concept of a pull chain in DECADE
GET method. An example of such a pull chain is shown in Figure 3:
+-----------+------------+------------+-------------+
| Object ID | NextHop S1 | NextHop S2 | NextHop ... |
+-----------+------------+------------+-------------+
Figure 3: Pull Chain in DECADE GET.
This pull chain can be used by a DECADE Client or Server to
instantiate a request to pull a data object with Object ID.
Specifically, if the DECADE Server receiving this request does not
have the data, it will pull from NextHop S1, who may pull from
NextHop S2 if it does not have, etc.
The construction of the pull chain is implemented by either the
Application Control Logic or the DECADE Control Logic.
5.2. Core-Stateful: Open Content Forwarding Table
In this design, we introduce the novel concept of DECADE Content
Forwarding Table at DECADE Servers. An example data plane structure
of a DECADE Server with Content Forwarding Table is shown in Figure
4:
+-----------+--------------+---------------+
| Object ID | NextHop | DECADE Data |
--------------------------------------------
| | | | |
----------------+---------------------------
| | | * | |
| | | * | |
| | | * | |
----------------+---------------------------
| | | | |
----------------+---------------------------
| | | |
----------------+-----------
| | | * |
| | | * |
| | V * |
----------------------------
| | |
----------------------------
Figure 4: DECADE Data Plane with Open Content Forwarding Table.
Yang & Zong Expires April 25, 2012 [Page 10]
Internet-Draft DECADE REPLICATION October 2011
This Open Content Forwarding Table is used by DECADE Server to
forward the content request based on looking-up the Next Hop of the
request. If this is the approach, then DECADE needs to:
GAP 1: Open an interface to write the Content Forwarding Table;
GAP 2: Consider the issue of hierarchical object ID space to allow
construction of compact content forwarding table.
6. Hybrid Control Approaches
One design option of DECADE is that a DECADE Provider partitions its
DECADE Servers into zones, where each zone has multiple DECADE
Servers. One hybrid control mechanism is that the Application
Control Logic controls the data replication at the zone level and
DECADE Control Logic controls intra zone replication.
7. Security Considerations
TBA
8. IANA Considerations
This document does not have any IANA considerations.
9. Acknowledgements
TBA
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
10.2. Informative References
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter,
L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol --
HTTP/1.1", RFC 2616, June 1999.
[RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web
Yang & Zong Expires April 25, 2012 [Page 11]
Internet-Draft DECADE REPLICATION October 2011
Distributed Authoring and Versioning (WebDAV) Access Control
Protocol", RFC 3744, May 2004.
[RFC4331] Korver, B. and L. Dusseault, "Quota and Size Properties for
Distributed Authoring and Versioning (DAV) Collections", RFC 4331,
February 2006.
[RFC4709] Reschke, J., "Mounting Web Distributed Authoring and
Versioning (WebDAV) Servers", RFC 4709, October 2006.
[RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed
Authoring and Versioning (WebDAV)", RFC 4918, June 2007.
[I-D.ietf-decade-problem-statement] Song, H., Zong, N., Yang, Y., and
R. Alimi, "DECoupled Application Data Enroute (DECADE) Problem
Statement", draft-ietf-decade-problem-statement-04 (work in
progress), October 2011.
[I-D.ietf-decade-survey] Alimi, R., Rahman, A., and Y. Yang, "A
Survey of In- network Storage Systems", draft-ietf-decade-survey-06
(work in progress), August 2011.
[I-D.ietf-decade-reqs] Yingjie, G., Bryan, D., Yang, Y., and R.
Alimi, "DECADE Requirements", draft-ietf-decade-reqs-04 (work in
progress), September 2011.
[I-D.ietf-decade-arch] Alimi, R., Yang. Y., Rahman, A., Kutscher,
D., and H. Liu, "DECADE Architecture", draft-ietf-decade-arch-03
(work in progress), September 2011.
[GoogleStorageDevGuide] "Google Storage Developer Guide",
<http://code.google.com/ apis/storage/docs/developer-guide.html>.
Authors' Addresses
Richard Yang
Yale University
Email: yry@cs.yale.edu
Ning Zong
Huawei Technologies
Email: zongning@huawei.com
Yang & Zong Expires April 25, 2012 [Page 12]