Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-12718 Unique task worker metric is tracked and retrieved reliably
  3. CAM-13013

In Java API, I can retrieve and delete a reliable task worker metric



    • Sub-task
    • Resolution: Fixed
    • L3 - Default
    • 7.15.0-alpha3, 7.15.0
    • None
    • engine
    • None


      Implementation outline

      • create new table ACT_RU_TASK_METER_LOG (original proposal: ACT_RU_TASKMETRIC) with (id, timestamp, hash value of assignee)
        • appropriate index(es), e.g. on timestamp in ascending order
      • insert entry upon task assignment (every assignee change)
        • the assignee value will be hashed to have a predictable size estimation and to pseudonymize the inputs
        • hash size of 64 bit leads to a collision probability of roughly 10-12 for 6.000 UTWs (compared: 32 bit hash leads to a collision probability of roughly 0.001 for 3.000 UTWs and 0.01 for 9.000 UTWs) - see Birthday Problem for further information
        • create a 64 bit hash (e.g. the first 64 bit of an MD5 128 bit hash) and encode as long value (which is 64 bit as well)
          • data resides locally, so no security concerns regarding the hash algorithm
          • chosen hash algorithm should keep the collision rate as low as possible (to account for the right number of UTWs), be accessible (ideally out-of-the-box with the JDK), and as fast as possible
          • storing the 64 bit hash as BLOB would make "count distinct" difficult or unsupported on several DBs
          • storing the hash as an encoded string (hex or base64) would either increase the size (hex: 2x bit size, base64: 1.3333x bit size) or require a smaller hash (leading to a higher error rate due to possible collisions becoming more likely)
      • create engine configuration property to disable UTW metric
      • create query endpoint to aggregate UTW for a time period
      • create API method to query for UTW for a time period
      • create API method to delete task metrics by timestamp (everything prior to the given date, clean all when no date is provided)


        This is the controller panel for Smart Panels app




              Unassigned Unassigned
              tobias.metzke Tobias Metzke-Bernstein
              0 Vote for this issue
              1 Start watching this issue