Skip to content

Q: Evaluation cost of hll_empty() #157

Description

I am looking to "upsert" hll's in my database, using a traditional two stage query:

# Add an empty HLL if one doesn't exist
INSERT INTO counts(event_type, reference, count) 
VALUES(:event_type, :reference, hll_empty()) 
ON CONFLICT DO NOTHING; 

# Add to the HLL
UPDATE counts 
SET count = hll_add(count, hll_hash_text(:event_id)) 
WHERE event_type = :event_type AND reference = :reference;

Given hll_empty() will be invoked on every query, even in the update case (i.e. before a conflict is identified), how cheap/expensive is that function to execute? The README mentions use of a sentinel value – is this sentinel value recalculated every call?

Should I be concerned with the evaluation of that function being a potential bottleneck compared to hll_add and hll_hash_text?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions