> On June 13, 2017, 10:58 a.m., Benjamin Mahler wrote:
> > src/common/resources.cpp
> > Lines 846-849 (original), 870-914 (patched)
> > <https://reviews.apache.org/r/60013/diff/1/?file=1748842#file1748842line870>
> >
> >     This was a little tough to read through, I wonder if the following 
> > would be easier to read:
> >     
> >     ```
> >     // Validate all of the roles.
> >     foreach (const ReservationInfo& reservation, resource.reservations()) {
> >       Option<Error> error = roles::validate(reservation.role());
> >       if (error.isSome()) {
> >         return error;
> >       }
> >     
> >       if (reservation.role() == "*") {
> >         return Error("Invalid reservation: role \"*\" cannot be reserved");
> >       }
> >     }
> >     
> >     // Validate that each reservation is a refinement of the
> >     // preceding reservation.
> >     string parentRole = resource.reservations(0).role();
> >     
> >     for (int i = 1; i < resource.reservations_size(); ++i) {
> >       if (resource.reservations(i).type() ==
> >           Resource::ReservationInfo::STATIC) {
> >         return Error(
> >             "Invalid refined reservation: A refined reservation"
> >             " cannot be static.");
> >       }
> >     
> >       const string& childRole = resource.reservations(i).role();
> >       
> >       if (!isSubRole(parentRole, childRole)) {
> >         return Error(
> >             "Invalid refined reservation: role '" + childRole +
> >             "' is not a refinement of '" + parentRole + "'");
> >       }
> >       
> >       parentRole = role;
> >     }
> >     ```
> >     
> >     Granted, this doesn't have your tokenize optimization, but perhaps for 
> > now we just add a TODO to optimize this? It seems to me there are bigger 
> > optimizations than just halving the number of tokenizations, like avoiding 
> > the copying that tokenization incurs altogether.

Okay, the optimization is there because I'm already worried about this code 
because `Resources::validate` as far as remember is one of the hottest paths.


- Michael


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60013/#review177695
-----------------------------------------------------------


On June 13, 2017, 1:34 a.m., Michael Park wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/60013/
> -----------------------------------------------------------
> 
> (Updated June 13, 2017, 1:34 a.m.)
> 
> 
> Review request for mesos and Benjamin Mahler.
> 
> 
> Bugs: MESOS-7655
>     https://issues.apache.org/jira/browse/MESOS-7655
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Resources: Updated the validation logic.
> 
> 
> Diffs
> -----
> 
>   src/common/resources.cpp f89f1aae7845f1e93dd5947de2e7a8e2bfce8bc4 
>   src/master/validation.hpp 6b53e34f67f6a8b338b92db6cb7398f1dccce5a9 
>   src/master/validation.cpp f45f9e816bdaf6304794604570edbd68d5faf715 
>   src/tests/master_validation_tests.cpp 
> 4e7ce74edf0069b9317f869b299694a45e2a62f2 
>   src/v1/resources.cpp 24240eedc4b2747ca02998534437318c3396db4d 
> 
> 
> Diff: https://reviews.apache.org/r/60013/diff/2/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Michael Park
> 
>

Reply via email to