On Wed, Oct 23, 2013 at 4:00 PM, Gavin Flower <gavinflo...@archidevsys.co.nz
> wrote:

> On 24/10/13 11:26, Peter Geoghegan wrote:
>
>> On Wed, Oct 23, 2013 at 2:57 PM, Gavin Flower
>> <gavinflo...@archidevsys.co.nz**> wrote:
>>
>>> Looks definitely bimodal in the log version, very clear!
>>>
>>> Yes, I feel that having a 32 log binary binned histogram (as Alvaro
>>> Herrera
>>> suggested) would be very useful.
>>>
>> I'm having a hard time imagining how you'd actually implement that.
>> For example, this:
>>
>> https://wiki.postgresql.org/**wiki/Aggregate_Histogram<https://wiki.postgresql.org/wiki/Aggregate_Histogram>
>>
>> requires that a "limit" be specified ahead of time. Is there a
>> principled way to increase or decrease this kind of limit over time,
>> and have the new buckets contents "spill into each other"?
>>
>>  To smplify things, I'm using 5 buckets, but 32 would be better.
> Assume first bucket width is 1ms.
>
> bucket     range
>   0              x =< 1ms
>   1        1ms < x =< 2ms
>   2        2ms < x =< 4ms
>   3        4ms < x =< 8ms
>   5        8ms < x
>

The last bucket would be limited to 8ms < x <= 16 ms.  If you find
something > 16ms, then you have to rescale *before* you increment any of
the buckets.  Once you do, there is now room to hold it.

bucket     range
  0              x =< 2ms   (sum of previous bucket 0 and previous bucket 1)
  1        2ms < x =< 4ms
  2        4ms < x =< 8ms
  3        8ms < x =< 16ms
  4        16ms < x =< 32ms  (starts empty)

Cheers,

Jeff

Reply via email to