[alto] Some considerations about path vector design

Jensen Zhang <jingxuan.n.zhang@gmail.com> Wed, 07 June 2017 08:52 UTC

Return-Path: <jingxuan.n.zhang@gmail.com>
X-Original-To: alto@ietfa.amsl.com
Delivered-To: alto@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8772F12EB17; Wed, 7 Jun 2017 01:52:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tKRhJkGv0OFi; Wed, 7 Jun 2017 01:52:58 -0700 (PDT)
Received: from mail-vk0-x22f.google.com (mail-vk0-x22f.google.com [IPv6:2607:f8b0:400c:c05::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CEEB412EB09; Wed, 7 Jun 2017 01:52:54 -0700 (PDT)
Received: by mail-vk0-x22f.google.com with SMTP id p85so2517536vkd.3; Wed, 07 Jun 2017 01:52:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=IH60gwq0nTf+SDrb7ZO+eU4+eX6wo+c4tuFEsTpEXrE=; b=sNfkL6X3eMeq34XOavUJHoDqci8DXwuw9XBSvJW95vZeFXBxfh1xEiHGlDP00/ZKhH ryHCXKAoC4nkr0mALnPveM0H21MnwibTZ+qo5QarzMtm1sMg+Bz8xOzsogikzHc7WM1o nGsifDZK3L68d1tXg38xQKnJTumIeyhVwJ5y6AaWryNg1G1sNjqPo9gid0/mSk9X9fnt 3z1fGsgo/6upyhrBZhqz1t9DdZbD5hjiXMbhAA2voTwXqJJ1FlxK/xpQro5sJgxeGaKc nCJ1Xbw4agbHpAEIgdEUNSG3LS5DuSeMph6rgJmNgndc1pUxuV7lwn1x3jn89N5gjO71 3y3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=IH60gwq0nTf+SDrb7ZO+eU4+eX6wo+c4tuFEsTpEXrE=; b=s3FKdmUDu0ayBht2Hj1lEy6TbQge5JfWXCeVaIG7myOQz1E+CaPxyU9ldPfus0HqG4 qkfFH0OO9iKWopOy4NZwozrCcOhd7TmOAtKKGAP521gGO+yTW05pG0dyh6H+F7MCj+sc f1l+Xck1gtct/wNWSMJ/FJckWzf5P0lRmvC/H/ZUukeAfgO7VcXm+0ZUP/xJ5aDQpnrh Ma+k+1i8M/7pi8Nfoy3D0zThOu4hpVnfa9MVMsg0hjuHe7QFNBslRg9E2SrfgKxrpRrJ gLyPl3VDYoGRFwPVtZlv63JJABFk3gUnJQ42J9Sco+PddScoSMukeFBkKJBAunlKqNVO r/BQ==
X-Gm-Message-State: AODbwcBHqPCSa0dqt3IJm+MC9s31olDQgwDJnU/b1UuLwGfbUEvIkulL UWZ/RoDhOiBbUS+2X7KIDu460gp+Sw==
X-Received: by 10.31.41.76 with SMTP id p73mr9941178vkp.94.1496825573611; Wed, 07 Jun 2017 01:52:53 -0700 (PDT)
MIME-Version: 1.0
From: Jensen Zhang <jingxuan.n.zhang@gmail.com>
Date: Wed, 07 Jun 2017 08:52:42 +0000
Message-ID: <CAAbpuyomorgNdjm3MAAgUTwawis1g8s9ANF2RVhZMXruwohXbw@mail.gmail.com>
To: IETF ALTO <alto@ietf.org>, "draft-yang-alto-path-vector@ietf.org" <draft-yang-alto-path-vector@ietf.org>
Content-Type: multipart/alternative; boundary="001a113ef44a9b1be405515adc75"
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/SWxZyXHI1l_-0PwMZTYtAukfXVI>
Subject: [alto] Some considerations about path vector design
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/alto/>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Jun 2017 08:52:59 -0000

Hi all,

I am going to resume the discussion about graph representation and path
vector. After some attempts to adopt the path-vector extension, I have the
following considerations:

1. The current design is inefficient. Since IETF 98, we have agreed on the
design of a two-stage protocol extension (path-vector cost map + unified
property map) for graph representation. It is extensible enough because we
can customize the element (ane) properties. But the two-stage protocol will
conduct the long delay and increase the complexity of state maintenance.

2. The resource dependencies are not clear. The "Dependent Resources"
attribute in ALTO protocol is defined to claim the one-way resource
dependencies. But many resource dependencies should be bidirectional. e.g.
In path vector design, the cost map and the corresponding property map are
bound to the same query.

For 1, my personal idea is to deliver a service to accept a sequence of
queries. In this way, the client can query both cost map and property map
in a single request. And the server will handle the two-stage protocol
efficiently.

Here is a rough example:

request:
- resource: /alto/pv-costmap
  pids:
  - srcs: [xxx]
  - dsts: [yyy]
- resource: /alto/ane-prop-map
  query-id: $resource[0].$response.meta.queryId
  entities: $resource[0].$response.costmap.values.reduce(
            (x,y) => x.values.concat(y.values))

For 2, I have not found a good solution to handle the generic case.

Looking forward to any feedback.

Best regards,
Jensen