Search in sources :

Example 1 with Mutations

use of org.apache.accumulo.tserver.Mutations in project accumulo by apache.

the class TabletServerLogger method logManyTablets.

public void logManyTablets(Map<CommitSession, Mutations> mutations) throws IOException {
    final Map<CommitSession, Mutations> loggables = new HashMap<>(mutations);
    for (Entry<CommitSession, Mutations> entry : mutations.entrySet()) {
        if (entry.getValue().getDurability() == Durability.NONE) {
            loggables.remove(entry.getKey());
        }
    }
    if (loggables.size() == 0)
        return;
    write(loggables.keySet(), false, new Writer() {

        @Override
        public LoggerOperation write(DfsLogger logger) throws Exception {
            List<TabletMutations> copy = new ArrayList<>(loggables.size());
            for (Entry<CommitSession, Mutations> entry : loggables.entrySet()) {
                CommitSession cs = entry.getKey();
                Durability durability = entry.getValue().getDurability();
                copy.add(new TabletMutations(cs.getLogId(), cs.getWALogSeq(), entry.getValue().getMutations(), durability));
            }
            return logger.logManyTablets(copy);
        }
    });
    for (Mutations entry : loggables.values()) {
        if (entry.getMutations().size() < 1) {
            throw new IllegalArgumentException("logManyTablets: logging empty mutation list");
        }
        for (Mutation m : entry.getMutations()) {
            logSizeEstimate.addAndGet(m.numBytes());
        }
    }
}
Also used : Mutations(org.apache.accumulo.tserver.Mutations) TabletMutations(org.apache.accumulo.tserver.TabletMutations) HashMap(java.util.HashMap) CommitSession(org.apache.accumulo.tserver.tablet.CommitSession) Durability(org.apache.accumulo.core.client.Durability) LoggerOperation(org.apache.accumulo.tserver.log.DfsLogger.LoggerOperation) IOException(java.io.IOException) Entry(java.util.Map.Entry) TabletMutations(org.apache.accumulo.tserver.TabletMutations) ArrayList(java.util.ArrayList) List(java.util.List) Mutation(org.apache.accumulo.core.data.Mutation)

Aggregations

IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Entry (java.util.Map.Entry)1 Durability (org.apache.accumulo.core.client.Durability)1 Mutation (org.apache.accumulo.core.data.Mutation)1 Mutations (org.apache.accumulo.tserver.Mutations)1 TabletMutations (org.apache.accumulo.tserver.TabletMutations)1 LoggerOperation (org.apache.accumulo.tserver.log.DfsLogger.LoggerOperation)1 CommitSession (org.apache.accumulo.tserver.tablet.CommitSession)1