Github user joshelser commented on the issue:

    https://github.com/apache/accumulo/pull/180
  
    (breaking out discussion to top-level instead of rooted on a code change)
    
    >I created something called SummaryStore in ab8deb7. It generates ~10 
summaries for input data without knowing how many keys will be added beforhand. 
Uses the approach I mentioned above of merging summaries. One additional step I 
discovered I needed to do was double the number of key/vals per summary each 
time I merged.
    
    > So if I have 10 summaries each covering 1000 keys, when I merge to 5 then 
each of those represents 2000 keys. So now I want start adding summaries every 
2000 keys. Next time I merge, I will start adding summaries every 4000 keys... 
etc.
    
    The [comment I left 
here](https://github.com/apache/accumulo/commit/ab8deb76ef96602d27072ce913ee90434bb9c246#commitcomment-20080483)
 has really got my brain thinking about how this should look. First, can we 
design a good API without defining what a summary is. Or, reworded, can we 
restrict what a summary is and come up with a more elegant/efficient 
implementation.
    
    When it comes to `merge(Map, Map)`, I'm specifically wondering if we force 
all `KeyValueSummaries` to be commutative, can we manage the merging of 
summaries better? For example, instead of delegating to the implementation on 
how these two `Map`s are merged, we then get to merge them ourselves (because 
we know how to combine these maps).
    
    Should a summary ever not be commutative? Does it make sense for us to 
allow one to not be?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to