Internet DRAFT - draft-bertz-alto-aggrimpl

draft-bertz-alto-aggrimpl







Network Working Group                                           L. Bertz
Internet-Draft                                                    Sprint
Intended status: Informational                          October 19, 2015
Expires: April 16, 2016


                    Extensions for ALTO Aggregation
                      draft-bertz-alto-aggrimpl-00

Abstract

   This document defines possible ALTO extensions for Aggregation based
   upon implementations in the e_alto open source project.

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 16, 2016.

Copyright Notice

   Copyright (c) 2015 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
   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.






Bertz                    Expires April 16, 2016                 [Page 1]

Internet-Draft              ALTO-Aggregation                October 2015


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements  . . . . . . . . . . . . . . . . . . . . . . . .   2
   3.  Solutions . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Requirement 1 - Origin property . . . . . . . . . . . . .   3
     3.2.  Requirement 2 - EPCS finegrain constraint . . . . . . . .   4
     3.3.  Requirement 3 - Demanded Query Recognition  . . . . . . .   4
   4.  Future Work / Areas of Investigation  . . . . . . . . . . . .   5
     4.1.  Cycle Avoidance . . . . . . . . . . . . . . . . . . . . .   5
     4.2.  Measurement Initiation  . . . . . . . . . . . . . . . . .   5
     4.3.  Writing Data to Aggregators . . . . . . . . . . . . . . .   6
   5.  Informative References  . . . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   Several ALTO documents address the reality that multiple sources
   exist for ALTO [MULTISOURCE] and ALTO Clients may be required to deal
   with ALTO servers in multiple domains [CROSSDOMAIN].

   It is possible if not probable that multiple ALTO servers exist
   within a single domain for many reasons including:

   o  query optimization by storing specific sets of indices for a
      subset of ALTO Clients, e.g.  P2P, DMM, CDN Request Routers

   o  scaling just to meet Client demand, i.e. ALTO Server Load

   o  sub-domains within a domain

   e_alto (http://www.github.com/lylebe/e__alto) is an open source
   project designed based upon the assumption that it would provide ALTO
   compliant services and act as a server of information origin and an
   aggregator.

   During its implementation several use cases were discovered and some
   basic ALTO extension were made in order to prepare the software to
   act as origin and aggregator of ALTO information.

2.  Requirements

   The following was discovered during the construction of the
   Aggregation features in the ALTO Server:

   It is entirely possible that multiple aggregation tiers will exist
   between an ALTO Client and the ALTO Origin Server.  How can a Client
   traverse the sources to find the Server?  How can a minimal amount of



Bertz                    Expires April 16, 2016                 [Page 2]

Internet-Draft              ALTO-Aggregation                October 2015


   data be stored on the Aggregators to support this, especially if
   horizontal scaling was part of the motivation for aggregation?

   Requirement 1 - Provide the ability to determine the server of origin
   for an ALTO data.

   The Aggregator should be to provide better information as opposed to
   summarized (coarse grain) information when it exists.  This requires
   a mechanism by which fine grained and coarse grained data can be
   distinguished.

   Requirement 2 - Distinguish between first hand knowledge and
   aggregated information.

   Aggregators will need to adjust over time to the queries of the
   Clients it serves.  It is entirely possible that Clients will ask
   about information the Aggregator and its Origin Servers do not have
   but could acquire if they knew the information was desired.

   Requirement 3 - Provide the ability for ALTO Origin Servers to know
   of queries that are missed, i.e. no such data exists in the ALTO
   Aggregator.

3.  Solutions

3.1.  Requirement 1 - Origin property

   An origin property can be added to the various property service
   functions.  This property notes the URI of the ALTO IRD which the
   Server acquired the data from or the value 'self' indicating the ALTO
   Server being queried is the server of origin.

   Aggregated map responses can add the "origins" property to the "meta"
   property in order to note information.  When a Costmap is filtered
   or, for example, a single pair of endpoints is used in a EPCS query a
   single value for the origins field can be returned to provide the
   equivalent of an origin query for individual entries in Costmaps or
   Endpoint Costmaps.

   Name collisions are problematic during aggregation and are only
   currently resolved through configuration.

   Recursion can be used by the ALTO Client or Aggregator to find the
   origin of a specific piece of information.  For example, using the
   origin property returned by an Aggregator the Client could then query
   the ALTO Server referenced in the response to acquire the property
   service.  If the Server is not the source, i.e. it responds with yet




Bertz                    Expires April 16, 2016                 [Page 3]

Internet-Draft              ALTO-Aggregation                October 2015


   another URI instead of the value 'self', the Client may follow the
   URI recursively until the originating ALTO Sever is located.

   The next hop solution seems tedious but it was chosen in order to
   permit the discovery of ALTO exchanged information.

3.2.  Requirement 2 - EPCS finegrain constraint

   Distinguishing coarse and fine grain information affects only EPCS.
   A new constraint 'finegrain' was added to EPCS in order to note that
   if no known finegrain data is available 'coarse' information from
   EPCS aggregated data or Costmaps should not be provided.

   This permits an Aggregator to query for only finegrain data and use
   it in place of coarse grain responses which would be provided by
   Costmaps.  The Aggregator then minimized the amount of stored EPCS
   data and relied on Costmaps for coarse grain.

   When an EPCS update is provided using specifications such as [SSE]
   the ALTO Server provides a "granularity" property in the "meta" field
   with 3 possible values

   o  finegrain - this response only contains finegrain measurements

   o  coarsegrain - this response is known to contain coarse grain
      measurements

   o  unknown - granularity cannot be determined and the response should
      be treated as coarsegrain

3.3.  Requirement 3 - Demanded Query Recognition

   In order to adjust to Client queries the ALTO Aggregator and Servers
   can implement at Demanded Query recognition by tracking the number of
   times a specific query could not be satisfied.  Once an
   administratively defined threshold is reached it could the forward
   the request to ALTO Servers that would be likely sources of the
   information.

   Likely sources can be identified by the Aggregator using the Network
   Map to determine which ALTO Server could provide information on the
   Endpoints or PIDs.

   The server would then repeat the queries to the Servers.  If those
   servers also support Demanded Query recognition they can repeat the
   process described here if they are not the Origin Server.





Bertz                    Expires April 16, 2016                 [Page 4]

Internet-Draft              ALTO-Aggregation                October 2015


   For missed queries that involve Costmaps, PIDS, Endpoints or Endpoint
   Costmaps from multiple Origin Servers the Aggregator would send the
   queries to all ALTO Servers.  An ALTO Server would only forward on
   data it acts as an Aggregator or Origin for if it has the information
   or forward the request on to the Origin Servers it would use for the
   queried information.

   NOTE: This implies that cycles in data exchange should be avoided or
   a mechanism should be put in place to recognize query cycles.

   At the Origin Server the constant query miss could be used to adjust
   what is measured or filtered.

   Such a mechanism would also, for example, permit two ALTO Servers to
   realize that initiating measurements between a few endpoints would
   provide data to common ALTO queries.

4.  Future Work / Areas of Investigation

   Based upon the current work underway several other areas of
   investigation have been recognized.

4.1.  Cycle Avoidance

   The current architecture assumes no cycles between the ALTO Client
   and Origin Servers.  This should be formalized into a easily
   detectable mechanism and a part of both the update and query
   functions in ALTO.

4.2.  Measurement Initiation

   Demanded Query (cache miss) Recognition can be used to recognize when
   data is not being provided but solutions to initiate the measurement
   of the data has not been defined.

   For missed EPCS information the endpoints to be measured can be
   provided.  Properities associated with the endpoint could note a URI
   where a new type of measurement initiation protocol could be
   implemented.  Such a protocol can be used to provide the needed
   information.

   The Aggregator could act as an intermediary and supply the
   measurement initiation URIs for specified endpoints, PIDs or Network
   Maps in the "meta" field.  In such a case the ALTO Origin Server can
   pass along this information to underlying Measurement initiation
   functions without the need for it to act as an ALTO Client to track
   down other Measurement Initiation Service Points (URIs).




Bertz                    Expires April 16, 2016                 [Page 5]

Internet-Draft              ALTO-Aggregation                October 2015


   For Costmaps the Aggregator could query for PID properties using
   extensions [PIDPROPS] or query for Endpoints with Measurement
   Initiation URIs and then use the Demanded Query Recognition process
   with those endpoints to acquire finegrain measurements for use in the
   Costmap.  However, this bypasses some of the process by which an
   Origin Server would compute the specified Costmap metric value and is
   not recommended.  Rather, implementation of [PIDPROPS] and exposing a
   Measurement Initiation URI property would preferred.

4.3.  Writing Data to Aggregators

   The following could be incorporated into the ALTO update process

   o  Cache techniques common to HTTP

   o  Vector-Clocks and Interval Tree Clocks to support Eventual
      Consistency

   o  Detecting when sending update history (change log) is more
      efficient than downloading the entire JSON structure when
      disconnects occur (resync)

   o  Acquiring update history for a given time period

   o  JSON Updates for Strong Eventual Consistency [SSE] provides a
      basis for updates.  Aggregating the data and providing consistency
      of replicated JSON data could be explored to provide loser
      coupling constraints between various ALTO entities.  However, such
      development would focus on JSON and HTTP and is more general than
      ALTO.

5.  Informative References

   [CROSSDOMAIN]
              Kiesel, S. and Stiemerling, M., "Application Layer Traffic 
              Optimization (ALTO)Cross-Domain Server Discovery", 2015.

   [MULTISOURCE]
              Gao, K. and Yang, Y., "ALTO Extensions for Multi-Source 
              Information Collection", 2015.

   [PIDPROPS]
              Roome, W., "Extensible Property Maps for the ALTO
              Protocol", 2015.

   [SSE]      Roome, W. and Yang, Y., "ALTO Incremental Updates Using 
              Server-Sent Events (SSE)", 2015.




Bertz                    Expires April 16, 2016                 [Page 6]

Internet-Draft              ALTO-Aggregation                October 2015


Author's Address

   Lyle Bertz
   Sprint
   6220 Sprint Parkway
   Overland Park  KS, 66251
   USA

   Email: lyleb551144@gmail.com










































Bertz                    Expires April 16, 2016                 [Page 7]