@Override public void run() { try { MutationSet rf = null; synchronized (this) { if (recentFailures != null && System.currentTimeMillis() - initTime > 1000) { rf = recentFailures; recentFailures = null; } } if (rf != null) { if (log.isTraceEnabled()) log.trace("tid={} Requeuing {} failed mutations", Thread.currentThread().getId(), rf.size()); addFailedMutations(rf); } } catch (Throwable t) { updateUnknownErrors("tid=" + Thread.currentThread().getId() + " Failed to requeue failed mutations " + t.getMessage(), t); cancel(); } } }
log.trace("sent " + String.format("%,d", count) + " mutations to " + location + " in " + String.format("%.2f secs (%,.2f mutations/sec) with %,d failures", (st2 - st1) / 1000.0, count / ((st2 - st1) / 1000.0), failures.size())); if (failures.size() > 0) { failedMutations.add(failures); successBytes -= failures.getMemoryUsed();
void queueMutations(final MutationSet mutationsToSend) { if (mutationsToSend == null) return; binningThreadPool.execute(Trace.wrap(() -> { if (mutationsToSend != null) { try { log.trace("{} - binning {} mutations", Thread.currentThread().getName(), mutationsToSend.size()); addMutations(mutationsToSend); } catch (Exception e) { updateUnknownErrors("Error processing mutation set", e); } } })); }
private void addMutations(MutationSet mutationsToSend) { Map<String,TabletServerMutations<Mutation>> binnedMutations = new HashMap<>(); Span span = Trace.start("binMutations"); try { long t1 = System.currentTimeMillis(); binMutations(mutationsToSend, binnedMutations); long t2 = System.currentTimeMillis(); updateBinningStats(mutationsToSend.size(), (t2 - t1), binnedMutations); } finally { span.stop(); } addMutations(binnedMutations); }