urbanairship / datacube

Multidimensional data storage with rollups for numerical data
http://urbanairship.com
Apache License 2.0
265 stars 62 forks source link

add batch increment operation to hbase db harness #86

Closed AWinterman closed 6 years ago

AWinterman commented 6 years ago

this lets us have each flusher increment more than a single row in each request, which should improve performance when writing a large number of dimensions either because we have many rollups, or because the batch increments many different rows.

Also adds a configuration object to the hbasedb harness, since the number of primitive parameters has grown somewhat out of hand.

Also adds a shutdown method to the hbasedbharness that flushes the inflight messages and then shutsdown the threadpool

hkolbeck commented 6 years ago

You're using byte arrays as keys in a hashmap in a number of places here, and I think it's only working because you're mostly treating those maps as a List<Map.Entry<byte[], T>>. Arrays of any kind can't be used as keys in hashmaps and allow lookups, since their .equals()/.hashCode() methods just use address in memory.

AWinterman commented 6 years ago

@ckolbeck added a couple of commits to address the byte[] keys and the typo you caught.