> On July 19, 2016, 5:03 p.m., Jiang Yan Xu wrote: > > It would be helpful to add a test just for contains. i.e., to test how > > `contains` works with nonshared resources and how it works with simple > > shared resources (could be constructed from createDiskResources with no > > arithmetic operations). > > > > Also as a followup add a benchmark for resource operations. (Let's check > > with the IBM folks on their progress in adding DiskInfo and Reservation > > Jiang Yan Xu wrote: > Finishing my sentense above: "Diskinfo and ReservationInfo" to resources > benchmarks)"
Added a test `SharedResourcesTest.Contains` to verify `contains()` semantics with regular and shared resources. Regarding benchmark for resources, that has already been added to https://reviews.apache.org/r/49571/. > On July 19, 2016, 5:03 p.m., Jiang Yan Xu wrote: > > src/tests/resources_tests.cpp, line 2615 > > <https://reviews.apache.org/r/45959/diff/7/?file=1445857#file1445857line2615> > > > > How about also throwing in a check for `count`: > > > > ``` > > EXPECT_TRUE(diff.count(disk)); > > ``` I think you mean check for `contains(disk)`. Added. > On July 19, 2016, 5:03 p.m., Jiang Yan Xu wrote: > > src/tests/resources_tests.cpp, line 2647 > > <https://reviews.apache.org/r/45959/diff/7/?file=1445857#file1445857line2647> > > > > Seems like this should fail? > > > > This should be true? > > ``` > > EXPECT_EQ(r2 - r1 + r1, r2); > > ``` ``` Resources r1 = Resources::parse("cpus:2;mem:10").get() + disk + disk + disk + disk; Resources r2 = Resources::parse("cpus:2;mem:10").get() + disk + disk + disk; ``` So, `EXPECT_EQ(r2 - r1 + r1, r1)` works as follows: 1) Since the `r2.count(disk) = 3` and `r1.count(disk) = 4`, so `r2 - r1` is an empty `Resources` object (since unshared resources are same). 2) So, when we add `r1` to that empty `Resources` object, we should get `r1`. - Anindya ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/45959/#review142652 ----------------------------------------------------------- On July 18, 2016, 2:29 p.m., Anindya Sinha wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/45959/ > ----------------------------------------------------------- > > (Updated July 18, 2016, 2:29 p.m.) > > > Review request for mesos, Benjamin Mahler, Joris Van Remoortere, and Jiang > Yan Xu. > > > Bugs: MESOS-4892 > https://issues.apache.org/jira/browse/MESOS-4892 > > > Repository: mesos > > > Description > ------- > > A new class Resource_ is added that allows 'Resources' to group > identical shared resource objects together into a single 'Resource_' > object and tracked by its shared count. Non-shared resource objects > are not grouped. > > For resource addition and subtraction, the shared count is adjusted for > shared resources as follows: > a) Addition: If shared resource is absent from original, then the > resource is added initialized with a consumer count of 1. Otherwise, > the share count for the shared resource is incremented. > b) Subtraction: If shared resource's share count is already 1, then > the shared resource is removed from the original. Otherwise, its > consumer count is decremented. > > Note that v1 changes for shared resources are in the next commit. > > > Diffs > ----- > > include/mesos/resources.hpp a557e97c65194d4aad879fb88d8edefd1c95b8d8 > src/common/resources.cpp f6ff92b591c15bc8e93fd85e1896349c3a7bb968 > src/master/validation.cpp 50ba372d1301d16d1738a3e4f4882b51f9ce06cd > src/tests/mesos.hpp e4eccfc3810bed3649a3ab80e252849470de4c72 > src/tests/resources_tests.cpp 40d290ac540d26373c5fb7c2a93d27d1aa61d722 > > Diff: https://reviews.apache.org/r/45959/diff/ > > > Testing > ------- > > New tests added to demonstrate arithmetic operations for shared resources > with consumer counts. > Tests successful. > > > Thanks, > > Anindya Sinha > >