hi stack, Some of these ideas are still raw in my brain, so please excuse me if my writeup is not very coherant.
There are two ways to mark these new records. One way is to have a new value for KeyValue.Type.Collection. The other option is to have a new field in HColumnDescriptor to say that all columns in that family are of Collection type. Do you have a preference (and why)? The two different types of collection to start with can be Counters and Lists.
A cell that has the aggregated value is a TombStone (no scans need to go beyond that). A cell that does not have an aggregated value is called a Delta cell. A KeyCollection is made of Kvs. The precise-type of collection (whether Counters, List, etc) is stored in the Value itself.
There are two triggers that merge of set of Deltas cells to create a TombStone cell. First, a major compaction thread aggregates Deltas into Tombstones. Secondly, when an application makes a Get() call, it aggregates on demand and stores a TombStone.