You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2023/05/11 21:14:31 UTC

[accumulo] branch main updated (fdabdc5133 -> 9c6db1f3b6)

This is an automated email from the ASF dual-hosted git repository.

kturner pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git


    from fdabdc5133 Remove broken support for map files (#3378)
     add 617bfcbd36 fixes race condition in metadata consistency check (#3392)
     add 6f7d3212d0 halts when nested error seen in uncaught exception handler (#3396)
     new 9c6db1f3b6 Merge remote-tracking branch 'upstream/2.1'

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../threads/AccumuloUncaughtExceptionHandler.java  | 11 ++--
 .../AccumuloUncaughtExceptionHandlerTest.java      |  6 +-
 .../accumulo/tserver/tablet/DatafileManager.java   | 64 +++++++++++-----------
 3 files changed, 40 insertions(+), 41 deletions(-)


[accumulo] 01/01: Merge remote-tracking branch 'upstream/2.1'

Posted by kt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kturner pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git

commit 9c6db1f3b63f4acfcd85b83a7ec3c119c7f6f0c8
Merge: fdabdc5133 6f7d3212d0
Author: Keith Turner <kt...@apache.org>
AuthorDate: Thu May 11 17:14:20 2023 -0400

    Merge remote-tracking branch 'upstream/2.1'

 .../threads/AccumuloUncaughtExceptionHandler.java  | 11 ++--
 .../AccumuloUncaughtExceptionHandlerTest.java      |  6 +-
 .../accumulo/tserver/tablet/DatafileManager.java   | 64 +++++++++++-----------
 3 files changed, 40 insertions(+), 41 deletions(-)

diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/DatafileManager.java
index eb9f2f8d54,5b349c3f67..beea607422
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/DatafileManager.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/DatafileManager.java
@@@ -330,22 -331,61 +329,21 @@@ class DatafileManager 
  
      long t1, t2;
  
--    Set<String> unusedWalLogs = tablet.beginClearingUnusedLogs();
-     try {
-       // the order of writing to metadata and walog is important in the face of machine/process
-       // failures need to write to metadata before writing to walog, when things are done in the
-       // reverse order data could be lost... the minor compaction start even should be written
-       // before the following metadata write is made
-       newFile = tablet.updateTabletDataFile(commitSession.getMaxCommittedTime(), newDatafile, dfv,
-           unusedWalLogs, flushId);
-     } finally {
-       tablet.finishClearingUnusedLogs();
 -    @SuppressWarnings("deprecation")
 -    boolean replicate = org.apache.accumulo.core.replication.ReplicationConfigurationUtil
 -        .isEnabled(tablet.getExtent(), tablet.getTableConfiguration());
 -    Set<String> logFileOnly = null;
 -    if (replicate) {
 -      // unusedWalLogs is of the form host/fileURI, need to strip off the host portion
 -      logFileOnly = new HashSet<>();
 -      for (String unusedWalLog : unusedWalLogs) {
 -        int index = unusedWalLog.indexOf('/');
 -        if (index == -1) {
 -          log.warn("Could not find host component to strip from DFSLogger representation of WAL");
 -        } else {
 -          unusedWalLog = unusedWalLog.substring(index + 1);
 -        }
 -        logFileOnly.add(unusedWalLog);
 -      }
--    }
--
      // increment start count before metadata update AND updating in memory map of files
      metadataUpdateCount.updateAndGet(MetadataUpdateCount::incrementStart);
      // do not place any code here between above stmt and try{}finally
      try {
++      Set<String> unusedWalLogs = tablet.beginClearingUnusedLogs();
+       try {
+         // the order of writing to metadata and walog is important in the face of machine/process
+         // failures need to write to metadata before writing to walog, when things are done in the
+         // reverse order data could be lost... the minor compaction start even should be written
+         // before the following metadata write is made
+         newFile = tablet.updateTabletDataFile(commitSession.getMaxCommittedTime(), newDatafile, dfv,
+             unusedWalLogs, flushId);
 -
 -        // Mark that we have data we want to replicate
 -        // This WAL could still be in use by other Tablets *from the same table*, so we can only
 -        // mark
 -        // that there is data to replicate,
 -        // but it is *not* closed. We know it is not closed by the fact that this MinC triggered. A
 -        // MinC cannot happen unless the
 -        // tablet is online and thus these WALs are referenced by that tablet. Therefore, the WAL
 -        // replication status cannot be 'closed'.
 -        if (replicate) {
 -          if (log.isDebugEnabled()) {
 -            log.debug("Recording that data has been ingested into {} using {}", tablet.getExtent(),
 -                logFileOnly);
 -          }
 -          for (String logFile : logFileOnly) {
 -            @SuppressWarnings("deprecation")
 -            Status status =
 -                org.apache.accumulo.server.replication.StatusUtil.openWithUnknownLength();
 -            ReplicationTableUtil.updateFiles(tablet.getContext(), tablet.getExtent(), logFile,
 -                status);
 -          }
 -        }
+       } finally {
+         tablet.finishClearingUnusedLogs();
+       }
  
        do {
          try {