Re: [alto] Path vector to support application traffic capacity region design

Gao Kai <gaok12@mails.tsinghua.edu.cn> Sat, 09 July 2016 05:24 UTC

Return-Path: <gaok12@mails.tsinghua.edu.cn>
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 E510112B061 for <alto@ietfa.amsl.com>; Fri, 8 Jul 2016 22:24:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.327
X-Spam-Level:
X-Spam-Status: No, score=-1.327 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_BL=0.01, RCVD_IN_MSPIKE_L5=0.001, RP_MATCHES_RCVD=-1.426, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 fnI4OhfoQ0MN for <alto@ietfa.amsl.com>; Fri, 8 Jul 2016 22:24:55 -0700 (PDT)
Received: from tsinghua.edu.cn (smtp36.tsinghua.edu.cn [166.111.204.60]) by ietfa.amsl.com (Postfix) with ESMTP id 91B6812B038 for <alto@ietf.org>; Fri, 8 Jul 2016 22:24:54 -0700 (PDT)
Received: from [192.168.1.4] (unknown [59.66.206.48]) by app1 (Coremail) with SMTP id CsxvpgDX3kKWioBXOczuAA--.57281S3; Sat, 09 Jul 2016 13:24:38 +0800 (CST)
To: "Y. Richard Yang" <yry@cs.yale.edu>
References: <CANUuoLp5hGqZ5ZE0mts6m2PjK=JZvnuxHFzR_=jwzNpijjYppg@mail.gmail.com> <577F1173.1050704@mails.tsinghua.edu.cn> <CANUuoLrJf66XJGcjUUbbHMSV8mmaJPnPnm4S9pVx_La9=mA_6A@mail.gmail.com>
From: Gao Kai <gaok12@mails.tsinghua.edu.cn>
X-Enigmail-Draft-Status: N1110
Message-ID: <57808A96.9000407@mails.tsinghua.edu.cn>
Date: Sat, 09 Jul 2016 13:24:38 +0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0
MIME-Version: 1.0
In-Reply-To: <CANUuoLrJf66XJGcjUUbbHMSV8mmaJPnPnm4S9pVx_La9=mA_6A@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------040005020201000400020006"
X-CM-TRANSID: CsxvpgDX3kKWioBXOczuAA--.57281S3
X-Coremail-Antispam: 1UD129KBjvJXoWxCr43tFWUZF1kXw1fGw4rZrb_yoW7JF43pF ZagryxGwn5ta4xWw1kZa18JFnYvrySyrZ8Jwn5try5Aa98GrykWF1Sk3WYqF17urWfArZ5 tw15KFnxAw4DAaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkKb7Iv0xC_tr1lb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s 1lnxkEFVAIw20F6cxK64vIFxWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAv7VC0I7IYx2IY 67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y4 8IcVAKI48JMx8GjcxK6IxK0xIIj40E5I8CrwCYjI0SjxkI62AI1cAE67vIY487MxkIecxE wVAFwVW8WwCF04k20xvY0x0EwIxGrwC20s026c02F40E14v26r106r1rMI8I3I0E7480Y4 vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jrv_JF1lIxkvb40EIxkG14v26r4j6ryUMIIY rxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14 v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWrZr1j6s0DMIIF0xvEx4A2jsIE14v26r1j 6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7xUUe_TU UUUUU==
X-CM-SenderInfo: 5jdryi2s6ptxtovo32xlqjx3vdohv3gofq/
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/aLMdLG5b_0ePOm04AZNQ0maKSco>
Cc: IETF ALTO <alto@ietf.org>
Subject: Re: [alto] Path vector to support application traffic capacity region design
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.17
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: Sat, 09 Jul 2016 05:24:59 -0000

Hi Richardand all,

Putting properties in another service may not be that bad.  Consider the
network map and cost map, where inconsistency may also occur, the "tag"
can be used by the clients to make sure the two resources are
consistent.  I think for path vectors, similar mechanisms can be
introduced too.

My concern would be that a global network element map may not be
desirable.  However, a customized network element map can be handy,
especially if incremental update is involved where the incremental
update service can provide some kind of synchronization.

I think the similarity between path vector and network/cost maps may
help us understand the relationship between the graph representation and
the current ALTO abstraction.

Regards,
Kai

On 09/07/16 00:11, Y. Richard Yang wrote:
> Hi Kai,
>
> On Thu, Jul 7, 2016 at 10:35 PM, Gao Kai <gaok12@mails.tsinghua.edu.cn
> <mailto:gaok12@mails.tsinghua.edu.cn>> wrote:
>
>     Hi Richard and all,
>
>     Please see my comments inline.
>
>     Regards,
>     Kai
>
>     On 08/07/16 05:50, Y. Richard Yang wrote:
>>     Dear all,
>>
>>     We have made an initial design of the path vector design to
>>     support the key application capacity region use case. 
>>
>>     Below is a list of key design reasoning:
>>     - Current cost map and endpoint cost service is designed for the
>>     setting of alternative flows, in that it asks for the cost of
>>     each flow alone, but the capacity region is for concurrent flows.
>>     Hence, we need a new request parameter to denote the new
>>     semantics---we could use a new cost mode, but using a new design
>>     can be cleaner.
>>
>>     - We want to support both endpoints and network maps (PIDs), when
>>     querying capacity regions. Hence, the query, as an example
>>     possibility, is:
>>
>>       POST /capacityregion/lookup HTTP/1.1
>>       Host: alto.example.com
>>     <https://urldefense.proofpoint.com/v2/url?u=http-3A__alto.example.com&d=CwMD-g&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=4G36iiEVb2m_v-0RnP2gx9KZJjYQgfvrOCE3789JGIA&m=c7YHdBafx9Hhdqqb8Cn47RLAJcr6jjZs_orqdAOojPw&s=kmAR7JkZey89dhUxg429u46yO5rn0DYUb1Q-XKIm924&e=>
>>       Content-Length: TBD
>>       Content-Type: application/alto-flowparams+json
>>       Accept: application/alto-costmap+json,application/alto-error+json
>>
>>       {
>>         "cost-type" : {"cost-mode": "path-vector",
>>                              "cost-metric": "bandwidth"
>>         },
>>         "flows" : [
>>           {"src": "ipv4:192.0.2.2", "dst": "ipv4:192.0.2.89"},
>>           {"src": "ipv4:192.0.2.2", "dst": "ipv4:198.51.100.34"},
>>           {"src": "ipv4:192.0.2.2", "dst": "ipv4:203.0.113.45"},
>>           {"src": "ipv4:192.0.2.3", "dst": "ipv4:203.0.113.45"}
>>         ]
>>       }
>>
>>     A possible encoding of response is:
>>
>>       HTTP/1.1 200 OK
>>       Content-Length: TBA
>>       Content-Type: application/alto-costmap+json
>>
>>       {
>>           "dependent-vtags" : [    // defines the resource id
>>     providing nep
>>             { "resource-id": "my-nep-map",
>>               "tag": "3ee2cb7e8d63d9fab71b9b34cbf764436315542e"
>>             }
>>           ],
>>
>>           "meta" : {
>>            "vtag" : {
>>                "resource-id": "my-costmap",
>>                "tag": "c0ce023b8678a7b9ec00324673b98e54656d1f6d"
>>             }
>>           "cost-type" : {"cost-mode": "path-vector",
>>                          "cost-metric": "bandwidth"
>>         },
>>
>>         "cost-map" : {
>>           "ipv4:192.0.2.2": { 
>>                     "ipv4:192.0.2.89":    ["ne56"], 
>>                     "ipv4:198.51.100.34": ["ne56", "ne57"], 
>>                     "ipv4:203.0.113.45":  ["ne57"]
>>           },
>>           "ipv4:192.0.2.3": { 
>>                     "ipv4:203.0.113.45":  ["ne57"]
>>           }
>>         }    
>>       }
>>
>>     The remaining issue is how to obtain the properties of the
>>     abstract network elements. For this, we propose to use the
>>     unified properties design:
>>     https://tools.ietf.org/html/draft-roome-alto-unified-props-00
>>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__tools.ietf.org_html_draft-2Droome-2Dalto-2Dunified-2Dprops-2D00&d=CwMD-g&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=4G36iiEVb2m_v-0RnP2gx9KZJjYQgfvrOCE3789JGIA&m=c7YHdBafx9Hhdqqb8Cn47RLAJcr6jjZs_orqdAOojPw&s=kpwxnZwaBbAmP5fl-gMCGJjKZzWkK4GalhqS9Mm1vw0&e=>
>     That doesn't seem like a good idea.
>
>     First, the "network elements" are very likely to be
>     request-specific, e.g., the element IDs are meaningful only for
>     the given request while the unified property service is using a
>     global namespace.
>     Even if we can live with globally unique element IDs, ALTO clients
>     may query the properties of network elements from different
>     queries.  That can be quite confusing so we'd probably have to
>     make it clear that this must not be done.  And the whole thing can
>     lead to extra complexities to understand and implement the service.
>
>     Second, using a second query may lead to inconsistency, even
>     though the failure scenario may not be a big deal if the clients
>     are not using incremental updates.  However, it does require extra
>     storage on the server to store the data when the clients are
>     making one-shot queries.  Of course, for the targeted scenario
>     where flows have large volumes, one-shot queries are definitely
>     not encouraged.
>
>     One options, of course, is to encode the elements in the response. 
>
>
> Excellent comments! My original intention was to separate the path
> vectors from the vector-element properties so that the property
> updates can be through a different channel. You made an excellent
> point and I agree that encoding in the same makes more sense. 
>
> Richard
>  
>
>     However, if UPS is desired, I suggest using a query-specific one
>     instead of a global one, like the stream control URI used in the
>     SSE draft.
>>     Any comments?
>>
>>     Cheers,
>>     Richard
>>
>>
>>     _______________________________________________
>>     alto mailing list
>>     alto@ietf.org <mailto:alto@ietf.org>
>>     https://www.ietf.org/mailman/listinfo/alto
>>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_alto&d=CwMD-g&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=4G36iiEVb2m_v-0RnP2gx9KZJjYQgfvrOCE3789JGIA&m=c7YHdBafx9Hhdqqb8Cn47RLAJcr6jjZs_orqdAOojPw&s=KAyMDy4aMsmOVHWJCPmyzWU9GnX9L-dWUW3Rnxv2Lig&e=>
>
>
>
>
> -- 
> -- 
>  =====================================
> | Y. Richard Yang <yry@cs.yale.edu <mailto:yry@cs.yale.edu>>   |
> | Professor of Computer Science       |
> | http://www.cs.yale.edu/~yry/ <http://www.cs.yale.edu/%7Eyry/>        |
>  =====================================