Hi Spencer,

Thanks for providing the review in a timely manner. Much appreciated.

Unless I’m mistaken, the review was not forwarded to the ALTO WG list. I’m 
adding the missing lists, fwiw.

One quick comment on your previous comment about SETTINGS_ENABLE_PUSH, I 
remember the authors provided a detailed discussion of the issues your raised 
(see Slide 13 of 
https://datatracker.ietf.org/meeting/114/materials/slides-114-alto-alto-over-new-transport-01).

Cheers,
Med

De : art <art-boun...@ietf.org> De la part de Spencer Dawkins at IETF
Envoyé : vendredi 17 mars 2023 00:53
À : a...@ietf.org
Objet : [art] Second early ART ART review of draft-ietf-alto-new-transport (-07)

This is my second early review of this document - the first was a review of -01.

My "Ready with Issues" is based solely on the number of references to HTTP/3 
server PUSH usage, which was tagged in my earlier review.

Beyond that, and the following nits, the document was easy and pleasant for me 
to follow.

Best wishes to the working group!


I know a lot of things changed in this draft since I early-reviewed -01 - I'm 
now early-reviewing -07 - but I'm not sure that my previous observation about 
this HTTP setting


0x02     SETTINGS_ENABLE_PUSH (a BCP14 “MUST”)


has been addressed.


As I pointed out in my previous review RFC 9114 reserves this value in the 
parallel HTTP/3 registry 
(https://www.rfc-editor.org/rfc/rfc9114.html#iana-setting-table), and says this 
about these reserved values in 
https://www.rfc-editor.org/rfc/rfc9114.html#section-7.2.4.1:

7.2.4.1. <https://datatracker.ietf.org/doc/html/rfc9114#section-7.2.4.1> 
Defined SETTINGS 
Parameters<https://datatracker.ietf.org/doc/html/rfc9114#name-defined-settings-parameters>



Setting identifiers that were defined in 
[HTTP/2<https://datatracker.ietf.org/doc/html/rfc9113>] where there is no 
corresponding HTTP/3 setting have also been reserved (Section 
11.2.2<https://datatracker.ietf.org/doc/html/rfc9114#iana-settings>). These 
reserved settings MUST NOT be sent, and their receipt MUST be treated as a 
connection error<https://datatracker.ietf.org/doc/html/rfc9114#errors> of type 
H3_SETTINGS_ERROR<https://datatracker.ietf.org/doc/html/rfc9114#H3_SETTINGS_ERROR>.¶<https://datatracker.ietf.org/doc/html/rfc9114#section-7.2.4.1-5>


I don't know what needs to be changed in this specification to reflect this, 
but even the abstract and the last paragraph of the Introduction refer to 
"native HTTP/2 or HTTP/3 server push".


Section 2.4 and 2.5 address the use of TIPS inside an HTTP/1.x connection, 
which doesn't support server push, so I know you folks have thought about how 
that works.Do you need to address this for HTTP/3 as well?


More strategically, should you be encouraging clients to add support for server 
PUSH in a new application protocol, if it's already been removed from HTTP/3? 
But I see this document is in WGLC now, so you can think about that and Do The 
Right Thing.


I have some BCP 14 questions about this text in


3.3. 
<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#section-3.3>
 
Uses<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#name-uses>



This set may be any subset of the ALTO server's network information resources 
and may include resources defined in linked IRDs. However, it is RECOMMENDED 
that the ALTO server selects a set that is closed under the resource dependency 
relationship. That is, if a TIPS' "uses" set includes resource R1 and resource 
R1 depends on ("uses") resource R0, then the TIPS' "uses" set SHOULD include R0 
as well as R1. For example, a TIPS for a cost map SHOULD also provide a TIPS 
view for the network map upon which that cost map depends.



I have the same question about R1 and R0, but let's start with a specific case. 
If a TIPS for a cost map does not also provide a TIPS view for the underlying 
network map, what happens next?



(Nit) is there a missing term after TIPS in "a TIPS for a cost map" in this 
paragraph?



In 4.4. 
<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#section-4.4>
 Close 
Request<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#name-close-request>



An ALTO client can indicate it no longer desires to pull/receive updates for a 
specific network resource by "deleting" the TIPS view using the returned 
tips-view-uri and the HTTP DELETE method. Whether or not the server actually 
deletes the TIPS view is implementation dependent. Likely, a server will remove 
the client from a dependency set associated with the TIPS view. A server will 
not want to delete a TIPS view if another client is using it.



I'm guessing here, but this looks like it's conflating client usage with server 
storage management. If client A says "delete the TIPS view", and no other 
client is using it, that view is deleted, but if another client is using it, 
and the view is not deleted, what happens next? I could imagine that a server 
might delete the underlying TIPS view when all clients who were using it have 
deleted it. Does server behavior in this case need to be implementation 
dependent?



In this text,

8.1. 
<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#section-8.1>
 Considerations for Load 
Balancing<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#name-considerations-for-load-bal>

TIPS allow clients to make concurrent pulls of the incremental updates 
potentianlly through different HTTP connections. As a consequence, it 
introduces additional complexties when the ALTO server is being load balanced 
-- a feature widely used to build scalable and fault-tolerant web services. For 
example, a request may be incorrectly processed if



  *   the backend servers are stateful, i.e., the TIPS view is created and 
stored only on a single server;



  *   the ALTO server is using layer-4 load balancing, i.e., the requests are 
distributed based on the TCP 5-tuple.



are these conditions ANDed, or ORed? Is either condition sufficient to cause a 
problem, or are both required?



Also, in the last paragraph of this section,


  *   For example, the ALTO server may configure layer-7 load balancers that 
distribute requests based on URL or cookies.


Isn't this talking something that an operator or provider of the ALTO server 
would do, rather than the ALTO server itself?


I have a similar question about

8.2. 
<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#section-8.2>
 Considerations for Choosing 
Updates<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#name-considerations-for-choosing>

TIPS should be cognizant of the effects of its update schedule, which includes 
both the choice of timing (i.e., when/what to trigger an update on the updates 
graph) and the choice of message format (i.e., given an update, send a full 
replacement or an incremental change).



and



Therefore, each TIPS may decide on its own whether to use JSON merge patch or 
JSON patch according to the changes in network maps.


is TIPS thinking, or is that up to a human?


And in

8.6. 
<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#section-8.6>
 Considerations for Updates to Ordinal Mode 
Costs<https://datatracker.ietf.org/doc/html/draft-ietf-alto-new-transport-07#name-considerations-for-updates-t>

While this document allows TIPS to offer incremental updates for ordinal mode 
cost maps, TIPS implementors should be aware that incremental updates for 
ordinal costs are more complicated than for numerical costs, and ALTO clients 
should be aware that small changes may result in large updates.



I'm guessing that ALTO clients aren't aware.



I'm not sure I've caught all of these occurrences, but perhaps the GenArt 
reviewer will notice others, if they are present!

_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations 
confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce 
message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages 
electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou 
falsifie. Merci.

This message and its attachments may contain confidential or privileged 
information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete 
this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been 
modified, changed or falsified.
Thank you.

_______________________________________________
alto mailing list
alto@ietf.org
https://www.ietf.org/mailman/listinfo/alto

Reply via email to