Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-8861

HyperLogLog Collection Type

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Normal
    • Resolution: Unresolved
    • 5.x
    • Legacy/CQL
    • None

    Description

      Considering that HyperLogLog and its variants have become pretty popular in analytics space and Cassandra has "read-before-write" collections (Lists), I think it would not be too painful to add support for HyperLogLog "collection" type. They would act similar to CQL 3 Sets, meaning you would be able to "set" the value and "add" an element, but you won't be able to remove an element. Also, when getting the value of a HyperLogLog collection column, you'd get the cardinality.

      There are a couple of good attributes with HyperLogLog which fit Cassandra pretty well.

      • Adding an element is idempotent (adding an existing element doesn't change the HLL)
      • HLL can be thought of as a CRDT, since we can safely merge them. Which means we can merge two HLLs during read-repair. But if that's too much work, I guess we can even live with LWW since these counts are "estimates" after all.

      There is already a proof of concept at:
      http://vilkeliskis.com/blog/2013/12/28/hacking_cassandra.html

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              drew_kutchar Drew Kutcharian
              Votes:
              4 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

                Created:
                Updated: