[ 
https://issues.apache.org/jira/browse/ACCUMULO-2175?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Josh Elser updated ACCUMULO-2175:
---------------------------------
    Fix Version/s:     (was: 1.7.0)
                   1.8.0

> Batch defining tablets in walog
> -------------------------------
>
>                 Key: ACCUMULO-2175
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2175
>             Project: Accumulo
>          Issue Type: Improvement
>            Reporter: Keith Turner
>             Fix For: 1.8.0
>
>
> If a batch of mutations comes into a tablet server AND the tablet server just 
> got a new walog then it will sync the walog for each tablet.  Below is a 
> sketch of what the tablet server currently does.
> {code:java}
> foreach(Tablet t : tabletsInMutationBatch){
>     if(!tabletIsDefinedInWalog(t, currentWalog)){
>         defineTablet(currentWalog, t); //syncs walog
>         addWalogToMetadataTable(currentWalog, t); //syncronous metadata table 
> update
>      }
> }
> {code}
> Seems like doing the following would be better.  Then  no matter how many 
> undefined tablets there are, only one walog sync would be done.
> {code:java}
> foreach(Tablet t : tabletsInMutationBatch){
>     Set<Tablet> undefined = new HashSet<Tablet>();
>     if(!tabletIsDefinedInWalog(t, currentWalog)){
>         undefined.add(t);
>      }
> }
> defineTablets(currentWalog, undefined); //syncs walog after writing all 
> definitions
> addWalogToMetadataTable(currentWalog, undefined); //syncronous metadata table 
> batch write
> {code}
> There is not problem when all tablets in a batch update are defined in the 
> walog. In this case a batch update that contains multiple tablet will only 
> sync the log once after adding all the mutations from all tablets.
> Noticed this while looking into ACCUMULO-2172



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to