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 2013/04/15 16:36:52 UTC
svn commit: r1468098 -
/accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
Author: kturner
Date: Mon Apr 15 14:36:52 2013
New Revision: 1468098
URL: http://svn.apache.org/r1468098
Log:
ACCUMULO-1257 stopped updating time for bulk import when there are no files
Modified:
accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
Modified: accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java?rev=1468098&r1=1468097&r2=1468098&view=diff
==============================================================================
--- accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java (original)
+++ accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java Mon Apr 15 14:36:52 2013
@@ -682,15 +682,7 @@ public class Tablet {
if (extent.isRootTablet()) {
throw new IllegalArgumentException("Can not import files to root tablet");
}
-
- long bulkTime = 0;
- if (setTime) {
- for (DataFileValue dfv : paths.values()) {
- bulkTime = tabletTime.getAndUpdateTime();
- dfv.setTime(bulkTime);
- }
- }
-
+
synchronized (bulkFileImportLock) {
TCredentials auths = SecurityConstants.getSystemCredentials();
Connector conn;
@@ -705,13 +697,25 @@ public class Tablet {
if (paths.keySet().remove(new Path(ServerConstants.getTablesDir() + "/" + extent.getTableId() + file)))
log.debug("Ignoring request to re-import a file already imported: " + extent + ": " + file);
- synchronized (timeLock) {
- if (bulkTime > persistedTime)
- persistedTime = bulkTime;
+ if (paths.size() > 0) {
+ long bulkTime = Long.MIN_VALUE;
+ if (setTime) {
+ for (DataFileValue dfv : paths.values()) {
+ long nextTime = tabletTime.getAndUpdateTime();
+ if (nextTime < bulkTime)
+ throw new IllegalStateException("Time went backwards unexpectedly " + nextTime + " " + bulkTime);
+ bulkTime = nextTime;
+ dfv.setTime(bulkTime);
+ }
+ }
+
+ synchronized (timeLock) {
+ if (bulkTime > persistedTime)
+ persistedTime = bulkTime;
- MetadataTable.updateTabletDataFile(tid, extent, abs2rel(paths), tabletTime.getMetadataValue(persistedTime), auths, tabletServer.getLock());
+ MetadataTable.updateTabletDataFile(tid, extent, abs2rel(paths), tabletTime.getMetadataValue(persistedTime), auths, tabletServer.getLock());
+ }
}
-
}
synchronized (Tablet.this) {