Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-12103

HistogramCell needs a few touches to make it match the spec :)

Details

    • Test
    • Status: Open
    • P3
    • Resolution: Unresolved
    • None
    • None
    • java-fn-execution
    • None

    Description

      See spec here:

       __ [_https://s.apache.org/beam-histogram-metrics_]

      A few pieces I want to highlight:

        //   LINEAR(start, width, num_buckets):

        //       Bi = start + width * i

        //       e.g. LINEAR(5, 15, 6) defines:

        //           [-INF, 5), [5, 20), [20, 35), [35, 50), [50, 65), [65, +INF], ...

      Current Java implementation:

      LinearBuckets.of(5, 15, 6) will defined buckets like this (6 buckets excluding the infinite ranges)

      [-INF, 5), [5, 20), [20, 35), [35, 50), [50, 65), [65, 80), [80, 95), [95, +INF], ...

       

      Additionally, we should treat the infinite buckets like any other, i.e. as a counter in the array, rather than having separate variables for the -inf and inf buckets.:

      i.e. we can remove numTopRecords numBottomRecords

      public HistogramData(BucketType bucketType)

      { this.bucketType = bucketType; this.buckets = new long[bucketType.getNumBuckets()]; this.numOfRecords = 0; this.numTopRecords = 0; this.numBottomRecords = 0; }

       

      Additionally getCount() and incBucketCount() should use those same indexes

      i.e. for all these functions 0 means the -INF bucket, and length - 1 means the INF bucket

      This code is only used for one internal metric, so this we should change this before it gets adopted in other places. 

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            ajamato@google.com Alex Amato
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: