Search in sources :

Example 1 with Durability

use of org.apache.accumulo.core.client.Durability in project accumulo by apache.

the class TabletServer method minorCompactionFinished.

public void minorCompactionFinished(CommitSession tablet, String newDatafile, long walogSeq) throws IOException {
    Durability durability = getMincEventDurability(tablet.getExtent());
    totalMinorCompactions.incrementAndGet();
    logger.minorCompactionFinished(tablet, newDatafile, walogSeq, durability);
    markUnusedWALs();
}
Also used : Durability(org.apache.accumulo.core.client.Durability) TDurability(org.apache.accumulo.core.tabletserver.thrift.TDurability)

Example 2 with Durability

use of org.apache.accumulo.core.client.Durability in project accumulo by apache.

the class TabletServer method minorCompactionStarted.

public void minorCompactionStarted(CommitSession tablet, long lastUpdateSequence, String newMapfileLocation) throws IOException {
    Durability durability = getMincEventDurability(tablet.getExtent());
    logger.minorCompactionStarted(tablet, lastUpdateSequence, newMapfileLocation, durability);
}
Also used : Durability(org.apache.accumulo.core.client.Durability) TDurability(org.apache.accumulo.core.tabletserver.thrift.TDurability)

Example 3 with Durability

use of org.apache.accumulo.core.client.Durability 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)

Example 4 with Durability

use of org.apache.accumulo.core.client.Durability in project accumulo by apache.

the class DfsLogger method logManyTablets.

public LoggerOperation logManyTablets(List<TabletMutations> mutations) throws IOException {
    Durability durability = Durability.NONE;
    List<Pair<LogFileKey, LogFileValue>> data = new ArrayList<>();
    for (TabletMutations tabletMutations : mutations) {
        LogFileKey key = new LogFileKey();
        key.event = MANY_MUTATIONS;
        key.seq = tabletMutations.getSeq();
        key.tid = tabletMutations.getTid();
        LogFileValue value = new LogFileValue();
        value.mutations = tabletMutations.getMutations();
        data.add(new Pair<>(key, value));
        if (tabletMutations.getDurability().ordinal() > durability.ordinal()) {
            durability = tabletMutations.getDurability();
        }
    }
    return logFileData(data, chooseDurabilityForGroupCommit(mutations));
}
Also used : TabletMutations(org.apache.accumulo.tserver.TabletMutations) ArrayList(java.util.ArrayList) Durability(org.apache.accumulo.core.client.Durability) LogFileValue(org.apache.accumulo.tserver.logger.LogFileValue) LogFileKey(org.apache.accumulo.tserver.logger.LogFileKey) Pair(org.apache.accumulo.core.util.Pair)

Example 5 with Durability

use of org.apache.accumulo.core.client.Durability in project accumulo by apache.

the class TabletServer method getMincEventDurability.

private Durability getMincEventDurability(KeyExtent extent) {
    TableConfiguration conf;
    if (extent.isMeta()) {
        conf = confFactory.getTableConfiguration(RootTable.ID);
    } else {
        conf = confFactory.getTableConfiguration(MetadataTable.ID);
    }
    Durability durability = DurabilityImpl.fromString(conf.get(Property.TABLE_DURABILITY));
    return durability;
}
Also used : Durability(org.apache.accumulo.core.client.Durability) TDurability(org.apache.accumulo.core.tabletserver.thrift.TDurability) TableConfiguration(org.apache.accumulo.server.conf.TableConfiguration)

Aggregations

Durability (org.apache.accumulo.core.client.Durability)5 TDurability (org.apache.accumulo.core.tabletserver.thrift.TDurability)3 ArrayList (java.util.ArrayList)2 TabletMutations (org.apache.accumulo.tserver.TabletMutations)2 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Entry (java.util.Map.Entry)1 Mutation (org.apache.accumulo.core.data.Mutation)1 Pair (org.apache.accumulo.core.util.Pair)1 TableConfiguration (org.apache.accumulo.server.conf.TableConfiguration)1 Mutations (org.apache.accumulo.tserver.Mutations)1 LoggerOperation (org.apache.accumulo.tserver.log.DfsLogger.LoggerOperation)1 LogFileKey (org.apache.accumulo.tserver.logger.LogFileKey)1 LogFileValue (org.apache.accumulo.tserver.logger.LogFileValue)1 CommitSession (org.apache.accumulo.tserver.tablet.CommitSession)1