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



3rdparty/libprocess/3rdparty/stout/include/stout/bandwidth.hpp
<https://reviews.apache.org/r/11542/#comment44460>

    I'm not sure what you mean by "an event is fired" in your second point?
    
    The main hesitation is that if anyone wants to use this nice Bandwidth 
abstraction, they must use boost. Libstout is a 3rd party library on github, so 
there is an upside to not relying on boost. :)
    
    I like the idea of keeping things precise, but it seems like simplifying 
this to a double bitsPerSecond is sufficient. There's loss on the way out 
anyway, as you convert to doubles, correct? If it turns out that we need the 
extra precision, then we can consider boost/rational at that point?
    
    Duration was a simple double implementation, and once we realized it wasn't 
sufficient, we fixed it. I think the same approach here can keep things simple 
for now, and adjust if there's a need.
    
    Thinking about how this might be used, I would expect nearly all of the 
cases to operate with Seconds(1) as the duration. In which case, using rational 
doesn't give us anything, right?
    
    Let me know your thoughts!


- Ben Mahler


On May 31, 2013, 9:20 p.m., Jiang Yan Xu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/11542/
> -----------------------------------------------------------
> 
> (Updated May 31, 2013, 9:20 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman, Vinod Kone, and Ben Mahler.
> 
> 
> Description
> -------
> 
> - This implementation uses Boost::rational<uint64_t> to store both the bits 
> and the nanoseconds as integers to preserve precision.
>     - It requires the boost lib to be repackaged to include Boost::rational.
> - The usage 'rational' handles avoid overflow cases better (it doesn't) than 
> simply multiply the denominators in various arithmetic operations.
> - Bandwidth always >= 0
> - Bandwidth constructor passes 'boost::bad_rational' up when the denominator 
> is zero.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/Makefile.am 
> 7a9ede62145e3150f7af6675d4384feafd9c0a88 
>   3rdparty/libprocess/3rdparty/boost-1.53.0.tar.gz 
> 770d837aaba23d031b04ad77658f339587174aae 
>   3rdparty/libprocess/3rdparty/stout/Makefile.am 
> 84062a0e1dfe4ec04bac7cac5ebaac4b945eb66e 
>   3rdparty/libprocess/3rdparty/stout/include/stout/bandwidth.hpp PRE-CREATION 
>   3rdparty/libprocess/3rdparty/stout/tests/bandwidth_tests.cpp PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/11542/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Jiang Yan Xu
> 
>

Reply via email to