accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vi...@apache.org
Subject svn commit: r1353663 [1/6] - in /accumulo/branches/ACCUMULO-259: ./ bin/ conf/ conf/examples/1GB/native-standalone/ conf/examples/1GB/standalone/ conf/examples/512MB/native-standalone/ conf/examples/512MB/standalone/ core/ core/src/main/java/org/apache...
Date Mon, 25 Jun 2012 17:09:39 GMT
Author: vines
Date: Mon Jun 25 17:09:31 2012
New Revision: 1353663

URL: http://svn.apache.org/viewvc?rev=1353663&view=rev
Log:
ACCUMULO-259 - merging up to date


Added:
    accumulo/branches/ACCUMULO-259/bin/generate_monitor_certificate.sh
      - copied unchanged from r1353583, accumulo/trunk/bin/generate_monitor_certificate.sh
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/NamingThreadFactory.java
      - copied unchanged from r1353583, accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/NamingThreadFactory.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/SimpleThreadPool.java
      - copied unchanged from r1353583, accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/SimpleThreadPool.java
    accumulo/branches/ACCUMULO-259/core/src/test/java/org/apache/accumulo/core/iterators/FirstEntryInRowTest.java
      - copied unchanged from r1353583, accumulo/trunk/core/src/test/java/org/apache/accumulo/core/iterators/FirstEntryInRowTest.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/recovery/
      - copied from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/recovery/SubmitFileForRecovery.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/SubmitFileForRecovery.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/
      - copied from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/FilterMeta.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/FilterMeta.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/FindTablet.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/FindTablet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/IndexMeta.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/IndexMeta.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/LogFileInputFormat.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/LogFileInputFormat.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/LogFileOutputFormat.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/LogFileOutputFormat.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/PrintEvents.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/PrintEvents.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/metanalysis/package-info.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/metanalysis/package-info.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/servlets/ShellServlet.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/monitor/servlets/ShellServlet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/log/DfsLogger.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/log/DfsLogger.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/log/LogSorter.java
      - copied unchanged from r1353583, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/log/LogSorter.java
Removed:
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/LoggerStatus.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/LogCopyInfo.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/LogFile.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/LoggerClosedException.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/MutationLogger.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/NoSuchLogIDException.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/logger/IdentityReducer.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/logger/LogArchiver.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/logger/LogService.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/logger/LogWriter.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/logger/metrics/LogWriterMetrics.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/logger/metrics/LogWriterMetricsMBean.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/CoordinateRecoveryTask.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/LogSort.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/TabletServerLoggers.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/balancer/LoggerBalancer.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/balancer/LoggerUser.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/balancer/SimpleLoggerBalancer.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/balancer/TServerUsesLoggers.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/tserverOps/DisconnectLogger.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/tserverOps/FlushTablets.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/tserverOps/StopLogger.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/servlets/LoggersServlet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/util/celltypes/LoggerLinkType.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/log/LoggerStrategy.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/log/RandomLoggerStrategy.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/log/RemoteLogger.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/log/RoundRobinLoggerStrategy.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/util/NamingThreadFactory.java
    accumulo/branches/ACCUMULO-259/server/src/test/java/org/apache/accumulo/server/logger/TestLogWriter.java
    accumulo/branches/ACCUMULO-259/server/src/test/java/org/apache/accumulo/server/master/TestTabletServerLoggers.java
    accumulo/branches/ACCUMULO-259/server/src/test/java/org/apache/accumulo/server/master/balancer/SimpleLoggerBalancerTest.java
Modified:
    accumulo/branches/ACCUMULO-259/   (props changed)
    accumulo/branches/ACCUMULO-259/bin/tdown.sh
    accumulo/branches/ACCUMULO-259/bin/tup.sh
    accumulo/branches/ACCUMULO-259/conf/   (props changed)
    accumulo/branches/ACCUMULO-259/conf/examples/1GB/native-standalone/accumulo-site.xml
    accumulo/branches/ACCUMULO-259/conf/examples/1GB/standalone/accumulo-site.xml
    accumulo/branches/ACCUMULO-259/conf/examples/512MB/native-standalone/accumulo-site.xml
    accumulo/branches/ACCUMULO-259/conf/examples/512MB/standalone/accumulo-site.xml
    accumulo/branches/ACCUMULO-259/core/   (props changed)
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/Constants.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/ClientSideIteratorScanner.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/IsolatedScanner.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MetadataLocationObtainer.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MultiTableBatchWriterImpl.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReader.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/conf/Property.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/LruBlockCache.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/FirstEntryInRowIterator.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/user/VersioningIterator.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/MasterMonitorInfo.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/RecoveryStatus.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/TabletServerStatus.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/TabletSplit.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/AddressUtil.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateUserCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DebugCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/PasswdCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TraceCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserCommand.java
    accumulo/branches/ACCUMULO-259/core/src/main/thrift/master.thrift
    accumulo/branches/ACCUMULO-259/core/src/main/thrift/tabletserver.thrift
    accumulo/branches/ACCUMULO-259/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java
    accumulo/branches/ACCUMULO-259/docs/examples/README
    accumulo/branches/ACCUMULO-259/examples/wikisearch/ingest/src/main/java/org/apache/accumulo/examples/wikisearch/ingest/WikipediaPartitionedIngester.java
    accumulo/branches/ACCUMULO-259/pom.xml
    accumulo/branches/ACCUMULO-259/server/   (props changed)
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/client/BulkImporter.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/logger/LogReader.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/Master.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/tableOps/BulkImport.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/master/tserverOps/ShutdownTServer.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/servlets/MasterServlet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/servlets/OperationServlet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/monitor/servlets/XMLServlet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/problems/ProblemReports.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/Compactor.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/MinorCompactor.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServerResourceManager.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/tabletserver/log/TabletServerLogger.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/test/GetMasterStats.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/test/continuous/ContinuousIngest.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/test/functional/BadIteratorMincTest.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/test/functional/RunTests.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/test/performance/thrift/NullTserver.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/test/randomwalk/bulk/Setup.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/test/randomwalk/concurrent/CheckBalance.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/trace/TraceFileSystem.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/util/AddressUtil.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/util/EmbeddedWebServer.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/util/Initialize.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
    accumulo/branches/ACCUMULO-259/server/src/main/java/org/apache/accumulo/server/util/ZooZap.java
    accumulo/branches/ACCUMULO-259/server/src/main/resources/web/screen.css
    accumulo/branches/ACCUMULO-259/src/   (props changed)
    accumulo/branches/ACCUMULO-259/start/src/main/java/org/apache/accumulo/start/Main.java
    accumulo/branches/ACCUMULO-259/test/system/continuous/agitator.pl
    accumulo/branches/ACCUMULO-259/test/system/continuous/continuous-env.sh.example
    accumulo/branches/ACCUMULO-259/test/system/continuous/start-batchwalkers.sh
    accumulo/branches/ACCUMULO-259/test/system/continuous/start-ingest.sh
    accumulo/branches/ACCUMULO-259/test/system/continuous/start-scanners.sh
    accumulo/branches/ACCUMULO-259/test/system/continuous/start-stats.sh
    accumulo/branches/ACCUMULO-259/test/system/continuous/start-walkers.sh

Propchange: accumulo/branches/ACCUMULO-259/
------------------------------------------------------------------------------
  Merged /accumulo/branches/1.4/src:r1342421-1343896,1343899-1343942,1349972,1351425
  Merged /accumulo/branches/1.3/src:r1349971
  Merged /accumulo/trunk:r1343822-1353583
  Merged /accumulo/branches/1.4:r1341135-1342418,1342420-1343942,1349972,1351425
  Merged /accumulo/trunk/src:r1350779
  Merged /accumulo/branches/1.3:r1349971

Modified: accumulo/branches/ACCUMULO-259/bin/tdown.sh
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/bin/tdown.sh?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/bin/tdown.sh (original)
+++ accumulo/branches/ACCUMULO-259/bin/tdown.sh Mon Jun 25 17:09:31 2012
@@ -29,7 +29,6 @@ echo 'stopping unresponsive tablet serve
 for server in `cat $SLAVES | grep -v '^#' `; do
         # only start if there's not one already running
         $ACCUMULO_HOME/bin/stop-server.sh $server "$ACCUMULO_HOME/.*/accumulo-start.*.jar" tserver TERM & 
-        $ACCUMULO_HOME/bin/stop-server.sh $server "$ACCUMULO_HOME/.*/accumulo-start.*.jar" logger TERM & 
 done
 
 sleep 10
@@ -38,8 +37,7 @@ echo 'stopping unresponsive tablet serve
 for server in `cat $SLAVES | grep -v '^#' `; do
         # only start if there's not one already running
         $ACCUMULO_HOME/bin/stop-server.sh $server "$ACCUMULO_HOME/.*/accumulo-start.*.jar" tserver KILL & 
-        $ACCUMULO_HOME/bin/stop-server.sh $server "$ACCUMULO_HOME/.*/accumulo-start.*.jar" logger KILL & 
 done
 
-echo 'Cleaning tablet server and logger entries from zookeeper'
-$ACCUMULO_HOME/bin/accumulo org.apache.accumulo.server.util.ZooZap -tservers -loggers
+echo 'Cleaning tablet server entries from zookeeper'
+$ACCUMULO_HOME/bin/accumulo org.apache.accumulo.server.util.ZooZap -tservers

Modified: accumulo/branches/ACCUMULO-259/bin/tup.sh
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/bin/tup.sh?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/bin/tup.sh (original)
+++ accumulo/branches/ACCUMULO-259/bin/tup.sh Mon Jun 25 17:09:31 2012
@@ -23,13 +23,12 @@ bin=`cd "$bin"; pwd`
 
 SLAVES=$ACCUMULO_HOME/conf/slaves
 
-echo -n "Starting tablet servers and loggers ..."
+echo -n "Starting tablet servers ..."
 
 count=1
 for server in `grep -v '^#' "$SLAVES"`
 do 
     echo -n "."
-    ${bin}/start-server.sh $server logger &
     ${bin}/start-server.sh $server tserver "tablet server" &
     count=`expr $count + 1`
     if [ `expr $count % 72` -eq 0 ] ;

Propchange: accumulo/branches/ACCUMULO-259/conf/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jun 25 17:09:31 2012
@@ -8,3 +8,6 @@ monitor
 accumulo-env.sh
 accumulo-site.xml
 accumulo_user_manual.pdf
+log4j.properties
+generic_logger.xml
+monitor_logger.xml

Modified: accumulo/branches/ACCUMULO-259/conf/examples/1GB/native-standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/conf/examples/1GB/native-standalone/accumulo-site.xml?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/conf/examples/1GB/native-standalone/accumulo-site.xml (original)
+++ accumulo/branches/ACCUMULO-259/conf/examples/1GB/native-standalone/accumulo-site.xml Mon Jun 25 17:09:31 2012
@@ -78,10 +78,10 @@
     </property>
 
     <property>
-      <name>logger.sort.buffer.size</name>
+      <name>tserver.sort.buffer.size</name>
       <value>50M</value>
     </property>
-
+    
     <property>
       <name>tserver.walog.max.size</name>
       <value>256M</value>

Modified: accumulo/branches/ACCUMULO-259/conf/examples/1GB/standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/conf/examples/1GB/standalone/accumulo-site.xml?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/conf/examples/1GB/standalone/accumulo-site.xml (original)
+++ accumulo/branches/ACCUMULO-259/conf/examples/1GB/standalone/accumulo-site.xml Mon Jun 25 17:09:31 2012
@@ -73,16 +73,16 @@
     </property>
     
     <property>
-      <name>logger.sort.buffer.size</name>
-      <value>50M</value>
-    </property>
-
-    <property>
       <name>trace.user</name>
       <value>root</value>
     </property>
     
     <property>
+      <name>tserver.sort.buffer.size</name>
+      <value>50M</value>
+    </property>
+    
+    <property>
       <name>tserver.walog.max.size</name>
       <value>256M</value>
     </property>

Modified: accumulo/branches/ACCUMULO-259/conf/examples/512MB/native-standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/conf/examples/512MB/native-standalone/accumulo-site.xml?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/conf/examples/512MB/native-standalone/accumulo-site.xml (original)
+++ accumulo/branches/ACCUMULO-259/conf/examples/512MB/native-standalone/accumulo-site.xml Mon Jun 25 17:09:31 2012
@@ -78,10 +78,10 @@
     </property>
 
     <property>
-      <name>logger.sort.buffer.size</name>
+      <name>tserver.sort.buffer.size</name>
       <value>50M</value>
     </property>
-
+    
     <property>
       <name>tserver.walog.max.size</name>
       <value>100M</value>

Modified: accumulo/branches/ACCUMULO-259/conf/examples/512MB/standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/conf/examples/512MB/standalone/accumulo-site.xml?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/conf/examples/512MB/standalone/accumulo-site.xml (original)
+++ accumulo/branches/ACCUMULO-259/conf/examples/512MB/standalone/accumulo-site.xml Mon Jun 25 17:09:31 2012
@@ -78,10 +78,10 @@
     </property>
     
     <property>
-      <name>logger.sort.buffer.size</name>
+      <name>tserver.sort.buffer.size</name>
       <value>50M</value>
     </property>
-
+    
     <property>
       <name>tserver.walog.max.size</name>
       <value>100M</value>

Propchange: accumulo/branches/ACCUMULO-259/core/
------------------------------------------------------------------------------
  Reverse-merged /incubator/accumulo/trunk/src/core:r1178656-1201898
  Merged /accumulo/trunk/src/core:r1350779
  Merged /accumulo/trunk/core:r1343822-1353583
  Merged /accumulo/branches/1.4/core:r1341135-1342418,1342420-1343942,1349972,1351425
  Merged /accumulo/branches/1.4/src/core:r1342421-1343896,1343899-1343942,1349972,1351425
  Merged /accumulo/branches/1.3/src/core:r1349971

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/Constants.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/Constants.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/Constants.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/Constants.java Mon Jun 25 17:09:31 2012
@@ -62,9 +62,6 @@ public class Constants {
   
   public static final String ZDEAD = "/dead";
   public static final String ZDEADTSERVERS = "/dead/tservers";
-  public static final String ZDEADLOGGERS = "/dead/loggers";
-  
-  public static final String ZLOGGERS = "/loggers";
   
   public static final String ZTRACERS = "/tracers";
   
@@ -78,6 +75,7 @@ public class Constants {
   public static final String ZNEXT_FILE = "/next_file";
   
   public static final String ZHDFS_RESERVATIONS = "/hdfs_reservations";
+  public static final String ZRECOVERY = "/recovery";
   
   public static final String METADATA_TABLE_ID = "!0";
   public static final String METADATA_TABLE_NAME = "!METADATA";
@@ -184,4 +182,12 @@ public class Constants {
     return getMetadataTableDir(conf) + ZROOT_TABLET;
   }
   
+  /**
+   * @param conf
+   * @return
+   */
+  public static String getWalDirectory(AccumuloConfiguration conf) {
+    return getBaseDir(conf) + "/wal";
+  }
+  
 }

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/ClientSideIteratorScanner.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/ClientSideIteratorScanner.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/ClientSideIteratorScanner.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/ClientSideIteratorScanner.java Mon Jun 25 17:09:31 2012
@@ -25,7 +25,6 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.TreeSet;
 
-import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.impl.ScannerOptions;
 import org.apache.accumulo.core.client.mock.IteratorAdapter;
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
@@ -134,9 +133,9 @@ public class ClientSideIteratorScanner e
    */
   public ClientSideIteratorScanner(Scanner scanner) {
     smi = new ScannerTranslator(scanner);
-    this.range = new Range((Key) null, (Key) null);
-    this.size = Constants.SCAN_BATCH_SIZE;
-    this.timeOut = Integer.MAX_VALUE;
+    this.range = scanner.getRange();
+    this.size = scanner.getBatchSize();
+    this.timeOut = scanner.getTimeOut();
   }
   
   /**

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/IsolatedScanner.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/IsolatedScanner.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/IsolatedScanner.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/IsolatedScanner.java Mon Jun 25 17:09:31 2012
@@ -20,7 +20,6 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Map.Entry;
 
-import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.impl.IsolationException;
 import org.apache.accumulo.core.client.impl.ScannerOptions;
 import org.apache.accumulo.core.data.ByteSequence;
@@ -219,9 +218,9 @@ public class IsolatedScanner extends Sca
   
   public IsolatedScanner(Scanner scanner, RowBufferFactory bufferFactory) {
     this.scanner = scanner;
-    this.range = new Range();
-    this.timeOut = Integer.MAX_VALUE;
-    this.batchSize = Constants.SCAN_BATCH_SIZE;
+    this.range = scanner.getRange();
+    this.timeOut = scanner.getTimeOut();
+    this.batchSize = scanner.getBatchSize();
     this.bufferFactory = bufferFactory;
   }
   

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java Mon Jun 25 17:09:31 2012
@@ -77,6 +77,7 @@ import org.apache.accumulo.core.util.Arg
 import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.LocalityGroupUtil;
 import org.apache.accumulo.core.util.MetadataTable;
+import org.apache.accumulo.core.util.NamingThreadFactory;
 import org.apache.accumulo.core.util.OpTimer;
 import org.apache.accumulo.core.util.StringUtil;
 import org.apache.accumulo.core.util.TextUtil;
@@ -386,7 +387,7 @@ public class TableOperationsImpl extends
     CountDownLatch latch = new CountDownLatch(splits.size());
     AtomicReference<Exception> exception = new AtomicReference<Exception>(null);
     
-    ExecutorService executor = Executors.newFixedThreadPool(16);
+    ExecutorService executor = Executors.newFixedThreadPool(16, new NamingThreadFactory("addSplits"));
     try {
       executor.submit(new SplitTask(new SplitEnv(tableName, tableId, executor, latch, exception), splits));
 

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java Mon Jun 25 17:09:31 2012
@@ -16,6 +16,7 @@
  */
 package org.apache.accumulo.core.client.impl;
 
+import java.net.UnknownHostException;
 import java.util.List;
 
 import org.apache.accumulo.core.client.AccumuloException;
@@ -34,7 +35,7 @@ import org.apache.thrift.transport.TTran
 public class MasterClient {
   private static final Logger log = Logger.getLogger(MasterClient.class);
   
-  public static MasterClientService.Iface getConnectionWithRetry(Instance instance) throws TTransportException {
+  public static MasterClientService.Iface getConnectionWithRetry(Instance instance) {
     ArgumentChecker.notNull(instance);
     
     while (true) {
@@ -64,6 +65,10 @@ public class MasterClient {
           instance.getConfiguration());
       return client;
     } catch (TTransportException tte) {
+      if (tte.getCause().getClass().equals(UnknownHostException.class)) {
+        // do not expect to recover from this
+        throw new RuntimeException(tte);
+      }
       log.debug("Failed to connect to master=" + master + " portHint=" + portHint + ", will retry... ", tte);
       return null;
     }

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MetadataLocationObtainer.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MetadataLocationObtainer.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MetadataLocationObtainer.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MetadataLocationObtainer.java Mon Jun 25 17:09:31 2012
@@ -132,8 +132,10 @@ public class MetadataLocationObtainer im
     ResultReceiver rr = new ResultReceiver() {
       
       @Override
-      public void receive(Key key, Value value) {
-        results.put(key, value);
+      public void receive(List<Entry<Key,Value>> entries) {
+        for (Entry<Key,Value> entry : entries) {
+          results.put(entry.getKey(), entry.getValue());
+        }
       }
     };
     

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MultiTableBatchWriterImpl.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MultiTableBatchWriterImpl.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MultiTableBatchWriterImpl.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/MultiTableBatchWriterImpl.java Mon Jun 25 17:09:31 2012
@@ -30,8 +30,10 @@ import org.apache.accumulo.core.data.Mut
 import org.apache.accumulo.core.master.state.tables.TableState;
 import org.apache.accumulo.core.security.thrift.AuthInfo;
 import org.apache.accumulo.core.util.ArgumentChecker;
+import org.apache.log4j.Logger;
 
 public class MultiTableBatchWriterImpl implements MultiTableBatchWriter {
+  static final Logger log = Logger.getLogger(MultiTableBatchWriterImpl.class);
   private boolean closed;
   
   private class TableBatchWriter implements BatchWriter {
@@ -86,6 +88,22 @@ public class MultiTableBatchWriterImpl i
     this.closed = true;
   }
   
+  /**
+   * Warning: do not rely upon finalize to close this class. Finalize is not guaranteed to be called.
+   */
+  @Override
+  protected void finalize() {
+    if (!closed) {
+      log.warn(MultiTableBatchWriterImpl.class.getSimpleName() + " not shutdown; did you forget to call close()?");
+      try {
+        close();
+      } catch (MutationsRejectedException mre) {
+        log.error(MultiTableBatchWriterImpl.class.getSimpleName() + " internal error.", mre);
+        throw new RuntimeException("Exception when closing " + MultiTableBatchWriterImpl.class.getSimpleName(), mre);
+      }
+    }
+  }
+  
   @Override
   public synchronized BatchWriter getBatchWriter(String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException {
     ArgumentChecker.notNull(tableName);

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java Mon Jun 25 17:09:31 2012
@@ -23,10 +23,8 @@ import java.util.Map.Entry;
 import java.util.NoSuchElementException;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.SynchronousQueue;
-import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -42,6 +40,7 @@ import org.apache.accumulo.core.data.Ran
 import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.thrift.AuthInfo;
+import org.apache.accumulo.core.util.NamingThreadFactory;
 import org.apache.hadoop.io.Text;
 import org.apache.log4j.Logger;
 
@@ -70,19 +69,8 @@ public class ScannerIterator implements 
   
   private static final List<KeyValue> EMPTY_LIST = Collections.emptyList();
   
-  private static AtomicInteger threadCounter = new AtomicInteger(1);
-
   private static ThreadPoolExecutor readaheadPool = new ThreadPoolExecutor(0, Integer.MAX_VALUE, 3l, TimeUnit.SECONDS, new SynchronousQueue<Runnable>(),
-      new ThreadFactory() {
-        
-        @Override
-        public Thread newThread(Runnable r) {
-          Thread t = new Thread(r);
-          t.setDaemon(true);
-          t.setName("Accumulo scanner read ahead thread " + threadCounter.getAndIncrement());
-          return t;
-        }
-      });
+      new NamingThreadFactory("Accumulo scanner read ahead thread"));
 
   private class Reader implements Runnable {
     

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReader.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReader.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReader.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReader.java Mon Jun 25 17:09:31 2012
@@ -21,11 +21,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.Map.Entry;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.BatchScanner;
@@ -36,6 +31,7 @@ import org.apache.accumulo.core.data.Val
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.thrift.AuthInfo;
 import org.apache.accumulo.core.util.ArgumentChecker;
+import org.apache.accumulo.core.util.SimpleThreadPool;
 import org.apache.log4j.Logger;
 
 public class TabletServerBatchReader extends ScannerOptions implements BatchScanner {
@@ -59,25 +55,6 @@ public class TabletServerBatchReader ext
   
   private final int batchReaderInstance = getNextBatchReaderInstance();
   
-  private static class BatchReaderThreadFactory implements ThreadFactory {
-    
-    private ThreadFactory dtf = Executors.defaultThreadFactory();
-    private int threadNum = 1;
-    private final int batchReaderInstance;
-    
-    BatchReaderThreadFactory(int batchReaderInstance) {
-      this.batchReaderInstance = batchReaderInstance;
-    }
-    
-    public Thread newThread(Runnable r) {
-      Thread thread = dtf.newThread(r);
-      thread.setName("batch scanner " + batchReaderInstance + "-" + threadNum++);
-      thread.setDaemon(true);
-      return thread;
-    }
-    
-  }
-  
   public TabletServerBatchReader(Instance instance, AuthInfo credentials, String table, Authorizations authorizations, int numQueryThreads) {
     ArgumentChecker.notNull(instance, credentials, table, authorizations);
     this.instance = instance;
@@ -86,8 +63,7 @@ public class TabletServerBatchReader ext
     this.table = table;
     this.numThreads = numQueryThreads;
     
-    queryThreadPool = new ThreadPoolExecutor(numQueryThreads, numQueryThreads, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(),
-        new BatchReaderThreadFactory(batchReaderInstance));
+    queryThreadPool = new SimpleThreadPool(numQueryThreads, "batch scanner " + batchReaderInstance + "-");
     
     ranges = null;
   }

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java Mon Jun 25 17:09:31 2012
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.ListIterator;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.NoSuchElementException;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Semaphore;
@@ -82,8 +83,10 @@ public class TabletServerBatchReaderIter
   private final ExecutorService queryThreadPool;
   private final ScannerOptions options;
   
-  private ArrayBlockingQueue<Entry<Key,Value>> resultsQueue = new ArrayBlockingQueue<Entry<Key,Value>>(1000);
-  private Entry<Key,Value> nextEntry = null;
+  private ArrayBlockingQueue<List<Entry<Key,Value>>> resultsQueue;
+  private Iterator<Entry<Key,Value>> batchIterator;
+  private List<Entry<Key,Value>> batch;
+  private static final List<Entry<Key,Value>> LAST_BATCH = new ArrayList<Map.Entry<Key,Value>>();
   private Object nextLock = new Object();
   
   private long failSleepTime = 100;
@@ -91,7 +94,7 @@ public class TabletServerBatchReaderIter
   private volatile Throwable fatalException = null;
   
   public interface ResultReceiver {
-    void receive(Key key, Value value);
+    void receive(List<Entry<Key,Value>> entries);
   }
   
   private static class MyEntry implements Entry<Key,Value> {
@@ -131,6 +134,7 @@ public class TabletServerBatchReaderIter
     this.numThreads = numThreads;
     this.queryThreadPool = queryThreadPool;
     this.options = new ScannerOptions(scannerOptions);
+    resultsQueue = new ArrayBlockingQueue<List<Entry<Key,Value>>>(numThreads);
     
     if (options.fetchedColumns.size() > 0) {
       ArrayList<Range> ranges2 = new ArrayList<Range>(ranges.size());
@@ -144,14 +148,14 @@ public class TabletServerBatchReaderIter
     ResultReceiver rr = new ResultReceiver() {
       
       @Override
-      public void receive(Key key, Value value) {
+      public void receive(List<Entry<Key,Value>> entries) {
         try {
-          resultsQueue.put(new MyEntry(key, value));
+          resultsQueue.put(entries);
         } catch (InterruptedException e) {
           if (TabletServerBatchReaderIterator.this.queryThreadPool.isShutdown())
-            log.debug("Failed to add Batch Scan result for key " + key, e);
+            log.debug("Failed to add Batch Scan result", e);
           else
-            log.warn("Failed to add Batch Scan result for key " + key, e);
+            log.warn("Failed to add Batch Scan result", e);
           fatalException = e;
           throw new RuntimeException(e);
           
@@ -169,17 +173,21 @@ public class TabletServerBatchReaderIter
     }
   }
   
+
   @Override
   public boolean hasNext() {
     synchronized (nextLock) {
-      // check if one was cached
-      if (nextEntry != null)
-        return nextEntry.getKey() != null && nextEntry.getValue() != null;
+      if (batch == LAST_BATCH)
+        return false;
+      
+      if (batch != null && batchIterator.hasNext())
+        return true;
       
       // don't have one cached, try to cache one and return success
       try {
-        while (nextEntry == null && fatalException == null)
-          nextEntry = resultsQueue.poll(1, TimeUnit.SECONDS);
+        batch = null;
+        while (batch == null && fatalException == null && !queryThreadPool.isShutdown())
+          batch = resultsQueue.poll(1, TimeUnit.SECONDS);
         
         if (fatalException != null)
           if (fatalException instanceof RuntimeException)
@@ -187,7 +195,11 @@ public class TabletServerBatchReaderIter
           else
             throw new RuntimeException(fatalException);
         
-        return nextEntry.getKey() != null && nextEntry.getValue() != null;
+        if (queryThreadPool.isShutdown())
+          throw new RuntimeException("scanner closed");
+
+        batchIterator = batch.iterator();
+        return batch != LAST_BATCH;
       } catch (InterruptedException e) {
         throw new RuntimeException(e);
       }
@@ -196,17 +208,13 @@ public class TabletServerBatchReaderIter
   
   @Override
   public Entry<Key,Value> next() {
-    Entry<Key,Value> current = null;
-    
     // if there's one waiting, or hasNext() can get one, return it
     synchronized (nextLock) {
-      if (hasNext()) {
-        current = nextEntry;
-        nextEntry = null;
-      }
+      if (hasNext())
+        return batchIterator.next();
+      else
+        throw new NoSuchElementException();
     }
-    
-    return current;
   }
   
   @Override
@@ -388,22 +396,22 @@ public class TabletServerBatchReaderIter
             
             if (fatalException != null) {
               // we are finished with this batch query
-              if (!resultsQueue.offer(new MyEntry(null, null))) {
+              if (!resultsQueue.offer(LAST_BATCH)) {
                 log.debug("Could not add to result queue after seeing fatalException in processFailures", fatalException);
               }
             }
           } else {
             // we are finished with this batch query
             if (fatalException != null) {
-              if (!resultsQueue.offer(new MyEntry(null, null))) {
+              if (!resultsQueue.offer(LAST_BATCH)) {
                 log.debug("Could not add to result queue after seeing fatalException", fatalException);
               }
             } else {
               try {
-                resultsQueue.put(new MyEntry(null, null));
+                resultsQueue.put(LAST_BATCH);
               } catch (InterruptedException e) {
                 fatalException = e;
-                if (!resultsQueue.offer(new MyEntry(null, null))) {
+                if (!resultsQueue.offer(LAST_BATCH)) {
                   log.debug("Could not add to result queue after seeing fatalException", fatalException);
                 }
               }
@@ -546,9 +554,14 @@ public class TabletServerBatchReaderIter
         opTimer.stop("Got 1st multi scan results, #results=" + scanResult.results.size() + (scanResult.more ? "  scanID=" + imsr.scanID : "")
             + " in %DURATION%");
         
+        ArrayList<Entry<Key,Value>> entries = new ArrayList<Map.Entry<Key,Value>>(scanResult.results.size());
         for (TKeyValue kv : scanResult.results) {
-          receiver.receive(new Key(kv.key), new Value(kv.value));
+          entries.add(new MyEntry(new Key(kv.key), new Value(kv.value)));
         }
+        
+        if (entries.size() > 0)
+          receiver.receive(entries);
+
         trackScanning(failures, unscanned, scanResult);
         
         while (scanResult.more) {
@@ -557,9 +570,14 @@ public class TabletServerBatchReaderIter
           scanResult = client.continueMultiScan(null, imsr.scanID);
           opTimer.stop("Got more multi scan results, #results=" + scanResult.results.size() + (scanResult.more ? "  scanID=" + imsr.scanID : "")
               + " in %DURATION%");
+          
+          entries = new ArrayList<Map.Entry<Key,Value>>(scanResult.results.size());
           for (TKeyValue kv : scanResult.results) {
-            receiver.receive(new Key(kv.key), new Value(kv.value));
+            entries.add(new MyEntry(new Key(kv.key), new Value(kv.value)));
           }
+          
+          if (entries.size() > 0)
+            receiver.receive(entries);
           trackScanning(failures, unscanned, scanResult);
         }
         

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java Mon Jun 25 17:09:31 2012
@@ -60,6 +60,7 @@ import org.apache.accumulo.core.tabletse
 import org.apache.accumulo.core.tabletserver.thrift.NoSuchScanIDException;
 import org.apache.accumulo.core.tabletserver.thrift.NotServingTabletException;
 import org.apache.accumulo.core.tabletserver.thrift.TabletClientService;
+import org.apache.accumulo.core.util.NamingThreadFactory;
 import org.apache.accumulo.core.util.ThriftUtil;
 import org.apache.hadoop.io.Text;
 import org.apache.log4j.Logger;
@@ -545,7 +546,7 @@ public class TabletServerBatchWriter {
     public MutationWriter(int numSendThreads) {
       serversMutations = new HashMap<String,TabletServerMutations>();
       queued = new HashSet<String>();
-      sendThreadPool = Executors.newFixedThreadPool(numSendThreads);
+      sendThreadPool = Executors.newFixedThreadPool(numSendThreads, new NamingThreadFactory(this.getClass().getName()));
     }
     
     private void binMutations(MutationSet mutationsToProcess, Map<String,TabletServerMutations> binnedMutations) {

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java Mon Jun 25 17:09:31 2012
@@ -47,17 +47,23 @@ public class MockConnector extends Conne
   
   @Override
   public BatchScanner createBatchScanner(String tableName, Authorizations authorizations, int numQueryThreads) throws TableNotFoundException {
+    if (acu.tables.get(tableName) == null)
+      throw new TableNotFoundException(tableName, tableName, "no such table");
     return acu.createBatchScanner(tableName, authorizations);
   }
   
   @Override
   public BatchDeleter createBatchDeleter(String tableName, Authorizations authorizations, int numQueryThreads, long maxMemory, long maxLatency,
       int maxWriteThreads) throws TableNotFoundException {
+    if (acu.tables.get(tableName) == null)
+      throw new TableNotFoundException(tableName, tableName, "no such table");
     return new MockBatchDeleter(acu, tableName, authorizations);
   }
   
   @Override
   public BatchWriter createBatchWriter(String tableName, long maxMemory, long maxLatency, int maxWriteThreads) throws TableNotFoundException {
+    if (acu.tables.get(tableName) == null)
+      throw new TableNotFoundException(tableName, tableName, "no such table");
     return new MockBatchWriter(acu, tableName);
   }
   

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java Mon Jun 25 17:09:31 2012
@@ -28,8 +28,7 @@ import org.apache.accumulo.core.util.she
 import org.apache.commons.cli.CommandLine;
 
 /**
- * An Accumulo Shell implementation that allows a developer to attach
- * an InputStream and Writer to the Shell for testing purposes.
+ * An Accumulo Shell implementation that allows a developer to attach an InputStream and Writer to the Shell for testing purposes.
  */
 public class MockShell extends Shell {
   private static final String NEWLINE = "\n";
@@ -43,14 +42,13 @@ public class MockShell extends Shell {
     this.writer = writer;
   }
   
-  public void config(String... args) {
-    super.config(args);
+  public boolean config(String... args) {
+    configError = super.config(args);
     
     // Update the ConsoleReader with the input and output "redirected"
     try {
       this.reader = new ConsoleReader(in, writer);
-    }
-    catch (Exception e) {
+    } catch (Exception e) {
       printException(e);
       configError = true;
     }
@@ -61,8 +59,9 @@ public class MockShell extends Shell {
     
     // Make the parsing from the client easier;
     this.verbose = false;
+    return configError;
   }
-
+  
   @Override
   protected void setInstance(CommandLine cl) {
     // We always want a MockInstance for this test
@@ -89,7 +88,7 @@ public class MockShell extends Shell {
     }
     
     while (true) {
-      if (exit)
+      if (hasExited())
         return exitCode;
       
       reader.setDefaultPrompt(getDefaultPrompt());
@@ -104,14 +103,16 @@ public class MockShell extends Shell {
   }
   
   /**
-   * @param in the in to set
+   * @param in
+   *          the in to set
    */
   public void setConsoleInputStream(InputStream in) {
     this.in = in;
   }
-
+  
   /**
-   * @param writer the writer to set
+   * @param writer
+   *          the writer to set
    */
   public void setConsoleWriter(Writer writer) {
     this.writer = writer;
@@ -119,7 +120,8 @@ public class MockShell extends Shell {
   
   /**
    * Convenience method to create the byte-array to hand to the console
-   * @param commands 
+   * 
+   * @param commands
    *          An array of commands to run
    * @return A byte[] input stream which can be handed to the console.
    */

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/conf/Property.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/conf/Property.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/conf/Property.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/conf/Property.java Mon Jun 25 17:09:31 2012
@@ -62,14 +62,14 @@ public enum Property {
   MASTER_CLIENTPORT("master.port.client", "9999", PropertyType.PORT, "The port used for handling client connections on the master"),
   MASTER_TABLET_BALANCER("master.tablet.balancer", "org.apache.accumulo.server.master.balancer.TableLoadBalancer", PropertyType.CLASSNAME,
       "The balancer class that accumulo will use to make tablet assignment and migration decisions."),
-  MASTER_LOGGER_BALANCER("master.logger.balancer", "org.apache.accumulo.server.master.balancer.SimpleLoggerBalancer", PropertyType.CLASSNAME,
-      "The balancer class that accumulo will use to make logger assignment decisions."),
   MASTER_RECOVERY_MAXAGE("master.recovery.max.age", "60m", PropertyType.TIMEDURATION, "Recovery files older than this age will be removed."),
   MASTER_RECOVERY_MAXTIME("master.recovery.time.max", "30m", PropertyType.TIMEDURATION, "The maximum time to attempt recovery before giving up"),
   MASTER_BULK_RETRIES("master.bulk.retries", "3", PropertyType.COUNT, "The number of attempts to bulk-load a file before giving up."),
   MASTER_BULK_THREADPOOL_SIZE("master.bulk.threadpool.size", "5", PropertyType.COUNT, "The number of threads to use when coordinating a bulk-import."),
   MASTER_MINTHREADS("master.server.threads.minimum", "2", PropertyType.COUNT, "The minimum number of threads to use to handle incoming requests."),
   MASTER_THREADCHECK("master.server.threadcheck.time", "1s", PropertyType.TIMEDURATION, "The time between adjustments of the server thread pool."),
+  MASTER_RECOVERY_DELAY("master.recovery.delay", "10s", PropertyType.TIMEDURATION,
+      "When a tablet server's lock is deleted, it takes time for it to completely quit. This delay gives it time before log recoveries begin."),
   
   // properties that are specific to tablet server behavior
   TSERV_PREFIX("tserver.", null, PropertyType.PREFIX, "Properties in this category affect the behavior of the tablet servers"),
@@ -119,10 +119,6 @@ public enum Property {
   TSERV_BLOOM_LOAD_MAXCONCURRENT("tserver.bloom.load.concurrent.max", "4", PropertyType.COUNT,
       "The number of concurrent threads that will load bloom filters in the background. "
           + "Setting this to zero will make bloom filters load in the foreground."),
-  TSERV_LOGGER_TIMEOUT("tserver.logger.timeout", "30s", PropertyType.TIMEDURATION, "The time to wait for a logger to respond to a write-ahead request"),
-  TSERV_LOGGER_COUNT("tserver.logger.count", "2", PropertyType.COUNT, "The number of loggers that each tablet server should use."),
-  TSERV_LOGGER_STRATEGY("tserver.logger.strategy", "org.apache.accumulo.server.tabletserver.log.RoundRobinLoggerStrategy", PropertyType.STRING,
-      "The classname used to decide which loggers to use."),
   TSERV_MONITOR_FS(
       "tserver.monitor.fs",
       "true",
@@ -152,29 +148,18 @@ public enum Property {
   TSERV_HOLD_TIME_SUICIDE("tserver.hold.time.max", "5m", PropertyType.TIMEDURATION,
       "The maximum time for a tablet server to be in the \"memory full\" state.  If the tablet server cannot write out memory"
           + " in this much time, it will assume there is some failure local to its node, and quit.  A value of zero is equivalent to forever."),
+  TSERV_WAL_BLOCKSIZE("tserver.wal.blocksize", "0", PropertyType.MEMORY,
+      "The size of the HDFS blocks used to write to the Write-Ahead log.  If zero, it will be 110% of tserver.walog.max.size (that is, try to use just one block)"),
+  TSERV_WAL_REPLICATION("tserver.wal.replication", "0", PropertyType.COUNT,
+      "The replication to use when writing the Write-Ahead log to HDFS. If zero, it will use the HDFS default replication setting."),
+  TSERV_RECOVERY_MAX_CONCURRENT("tserver.recovery.concurrent.max", "2", PropertyType.COUNT, "The maximum number of threads to use to sort logs during recovery"),
+  TSERV_SORT_BUFFER_SIZE("tserver.sort.buffer.size", "200M", PropertyType.MEMORY, "The amount of memory to use when sorting logs during recovery."),
+  TSERV_ARCHIVE_WALOGS("tserver.archive.walogs", "false", PropertyType.BOOLEAN, "Keep copies of the WALOGs for debugging purposes"),
   
   // properties that are specific to logger server behavior
   LOGGER_PREFIX("logger.", null, PropertyType.PREFIX, "Properties in this category affect the behavior of the write-ahead logger servers"),
-  LOGGER_PORT("logger.port.client", "11224", PropertyType.PORT, "The port used for write-ahead logger services"),
-  LOGGER_COPY_THREADPOOL_SIZE("logger.copy.threadpool.size", "2", PropertyType.COUNT,
-      "size of the thread pool used to copy files from the local log area to HDFS"),
   LOGGER_DIR("logger.dir.walog", "walogs", PropertyType.PATH,
       "The directory used to store write-ahead logs on the local filesystem. It is possible to specify a comma-separated list of directories."),
-  LOGGER_PORTSEARCH("logger.port.search", "false", PropertyType.BOOLEAN, "if the port above is in use, search higher ports until one is available"),
-  LOGGER_ARCHIVE("logger.archive", "false", PropertyType.BOOLEAN, "determines if logs are archived in hdfs"),
-  LOGGER_ARCHIVE_REPLICATION("logger.archive.replication", "0", PropertyType.COUNT,
-      "determines the replication factor for walogs archived in hdfs, set to zero to use default"),
-  LOGGER_MONITOR_FS(
-      "logger.monitor.fs",
-      "true",
-      PropertyType.BOOLEAN,
-      "When enabled the logger will monitor file systems and kill itself when one switches from rw to ro.  This is usually and indication that Linux has detected a bad disk."),
-  LOGGER_SORT_BUFFER_SIZE("logger.sort.buffer.size", "200M", PropertyType.MEMORY,
-      "The amount of memory to use when sorting logs during recovery. Only used when *not* sorting logs with map/reduce."),
-  LOGGER_RECOVERY_FILE_REPLICATION("logger.recovery.file.replication", "1", PropertyType.COUNT,
-      "When a logger puts a WALOG into HDFS, it will use this as the replication factor."),
-  LOGGER_MINTHREADS("logger.server.threads.minimum", "2", PropertyType.COUNT, "The miniumum number of threads to use to handle incoming requests."),
-  LOGGER_THREADCHECK("logger.server.threadcheck.time", "1s", PropertyType.TIMEDURATION, "The time between adjustments of the server thread pool."),
   
   // accumulo garbage collector properties
   GC_PREFIX("gc.", null, PropertyType.PREFIX, "Properties in this category affect the behavior of the accumulo garbage collector."),
@@ -192,6 +177,10 @@ public enum Property {
   MONITOR_BANNER_COLOR("monitor.banner.color", "#c4c4c4", PropertyType.STRING, "The color of the banner text displayed on the monitor page."),
   MONITOR_BANNER_BACKGROUND("monitor.banner.background", "#304065", PropertyType.STRING,
       "The background color of the banner text displayed on the monitor page."),
+  MONITOR_SSL_KEYSTORE("monitor.ssl.keyStore", "", PropertyType.PATH, "The keystore for enabling monitor SSL."),
+  MONITOR_SSL_KEYSTOREPASS("monitor.ssl.keyStorePassword", "", PropertyType.STRING, "The keystore password for enabling monitor SSL."),
+  MONITOR_SSL_TRUSTSTORE("monitor.ssl.trustStore", "", PropertyType.PATH, "The truststore for enabling monitor SSL."),
+  MONITOR_SSL_TRUSTSTOREPASS("monitor.ssl.trustStorePassword", "", PropertyType.STRING, "The truststore password for enabling monitor SSL."),
   
   TRACE_PREFIX("trace.", null, PropertyType.PREFIX, "Properties in this category affect the behavior of distributed tracing."),
   TRACE_PORT("trace.port.client", "12234", PropertyType.PORT, "The listening port for the trace server"),
@@ -223,7 +212,7 @@ public enum Property {
   TABLE_MINC_COMPACT_IDLETIME("table.compaction.minor.idle", "5m", PropertyType.TIMEDURATION,
       "After a tablet has been idle (no mutations) for this time period it may have its "
           + "in-memory map flushed to disk in a minor compaction.  There is no guarantee an idle " + "tablet will be compacted."),
-  TABLE_SCAN_MAXMEM("table.scan.max.memory", "1M", PropertyType.MEMORY,
+  TABLE_SCAN_MAXMEM("table.scan.max.memory", "512K", PropertyType.MEMORY,
       "The maximum amount of memory that will be used to cache results of a client query/scan. "
           + "Once this limit is reached, the buffered data is sent to the client."),
   TABLE_FILE_TYPE("table.file.type", RFile.EXTENSION, PropertyType.STRING, "Change the type of file a table writes"),
@@ -347,8 +336,7 @@ public enum Property {
   }
   
   private static final EnumSet<Property> fixedProperties = EnumSet.of(Property.TSERV_CLIENTPORT, Property.TSERV_NATIVEMAP_ENABLED,
-      Property.TSERV_SCAN_MAX_OPENFILES, Property.TSERV_LOGGER_COUNT,
-      Property.LOGGER_PORT, Property.MASTER_CLIENTPORT, Property.GC_PORT);
+      Property.TSERV_SCAN_MAX_OPENFILES, Property.MASTER_CLIENTPORT, Property.GC_PORT);
   
   public static boolean isFixedZooPropertyKey(Property key) {
     return fixedProperties.contains(key);

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java Mon Jun 25 17:09:31 2012
@@ -29,10 +29,9 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Random;
 import java.util.Set;
+import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -51,6 +50,7 @@ import org.apache.accumulo.core.iterator
 import org.apache.accumulo.core.iterators.SortedKeyValueIterator;
 import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.LoggingRunnable;
+import org.apache.accumulo.core.util.NamingThreadFactory;
 import org.apache.accumulo.start.classloader.AccumuloClassLoader;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
@@ -68,19 +68,6 @@ public class BloomFilterLayer {
   public static final String BLOOM_FILE_NAME = "acu_bloom";
   public static final int HASH_COUNT = 5;
   
-  private static class BloomLoaderThreadFactory implements ThreadFactory {
-    
-    private ThreadFactory dtf = Executors.defaultThreadFactory();
-    private int threadNum = 1;
-    
-    public Thread newThread(Runnable r) {
-      Thread thread = dtf.newThread(r);
-      thread.setName("bloom-loader-" + threadNum++);
-      thread.setDaemon(true);
-      return thread;
-    }
-  }
-  
   private static ExecutorService loadThreadPool = null;
   
   private static synchronized ExecutorService getLoadThreadPool(int maxLoadThreads) {
@@ -89,7 +76,8 @@ public class BloomFilterLayer {
     }
     
     if (maxLoadThreads > 0) {
-      loadThreadPool = new ThreadPoolExecutor(0, maxLoadThreads, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new BloomLoaderThreadFactory());
+      BlockingQueue<Runnable> q = new LinkedBlockingQueue<Runnable>();
+      loadThreadPool = new ThreadPoolExecutor(0, maxLoadThreads, 60, TimeUnit.SECONDS, q, new NamingThreadFactory("bloom-loader"));
     }
     
     return loadThreadPool;

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/LruBlockCache.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/LruBlockCache.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/LruBlockCache.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/LruBlockCache.java Mon Jun 25 17:09:31 2012
@@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.ReentrantLock;
 
+import org.apache.accumulo.core.util.NamingThreadFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -96,7 +97,7 @@ public class LruBlockCache implements Bl
   private final EvictionThread evictionThread;
   
   /** Statistics thread schedule pool (for heavy debugging, could remove) */
-  private final ScheduledExecutorService scheduleThreadPool = Executors.newScheduledThreadPool(1);
+  private final ScheduledExecutorService scheduleThreadPool = Executors.newScheduledThreadPool(1, new NamingThreadFactory("LRUBlockCacheStats"));
   
   /** Current size of cache */
   private final AtomicLong size;

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/FirstEntryInRowIterator.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/FirstEntryInRowIterator.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/FirstEntryInRowIterator.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/FirstEntryInRowIterator.java Mon Jun 25 17:09:31 2012
@@ -75,6 +75,8 @@ public class FirstEntryInRowIterator ext
   // this is only ever called immediately after getting "next" entry
   @Override
   protected void consume() throws IOException {
+    if (lastRowFound == null)
+      return;
     int count = 0;
     while (getSource().hasTop() && lastRowFound.equals(getSource().getTopKey().getRow())) {
       
@@ -101,10 +103,17 @@ public class FirstEntryInRowIterator ext
     latestRange = range;
     latestColumnFamilies = columnFamilies;
     latestInclusive = inclusive;
+    lastRowFound = null;
     
-    // seek to first possible pattern in range
-    super.seek(range, columnFamilies, inclusive);
-    lastRowFound = getSource().hasTop() ? getSource().getTopKey().getRow() : null;
+    Key startKey = range.getStartKey();
+    Range seekRange = new Range(startKey == null ? null : new Key(startKey.getRow()), true, range.getEndKey(), range.isEndKeyInclusive());
+    super.seek(seekRange, columnFamilies, inclusive);
+    
+    if (getSource().hasTop()) {
+      lastRowFound = getSource().getTopKey().getRow();
+      if (range.beforeStartKey(getSource().getTopKey()))
+        consume();
+    }
   }
   
   @Override

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/user/VersioningIterator.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/user/VersioningIterator.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/user/VersioningIterator.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/iterators/user/VersioningIterator.java Mon Jun 25 17:09:31 2012
@@ -34,11 +34,16 @@ import org.apache.accumulo.core.iterator
 import org.apache.accumulo.core.iterators.WrappingIterator;
 
 public class VersioningIterator extends WrappingIterator implements OptionDescriber {
+  private final int maxCount = 10;
   
   private Key currentKey = new Key();
   private int numVersions;
   protected int maxVersions;
   
+  private Range range;
+  private Collection<ByteSequence> columnFamilies;
+  private boolean inclusive;
+  
   @Override
   public VersioningIterator deepCopy(IteratorEnvironment env) {
     VersioningIterator copy = new VersioningIterator();
@@ -66,30 +71,19 @@ public class VersioningIterator extends 
   }
   
   @Override
-  public boolean hasTop() {
-    return super.hasTop();
-  }
-  
-  @Override
   public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive) throws IOException {
     // do not want to seek to the middle of a row
     Range seekRange = IteratorUtil.maximizeStartKeyTimeStamp(range);
+    this.range = seekRange;
+    this.columnFamilies = columnFamilies;
+    this.inclusive = inclusive;
     
     super.seek(seekRange, columnFamilies, inclusive);
     resetVersionCount();
     
-    if (range.getStartKey() != null) {
-      while (getSource().hasTop() && getSource().getTopKey().compareTo(range.getStartKey(), PartialKey.ROW_COLFAM_COLQUAL_COLVIS_TIME) < 0) {
-        // the value has a more recent time stamp, so
-        // pass it up
-        // log.debug("skipping "+getTopKey());
+    if (range.getStartKey() != null)
+      while (hasTop() && range.beforeStartKey(getTopKey()))
         next();
-      }
-      
-      while (hasTop() && range.beforeStartKey(getTopKey())) {
-        next();
-      }
-    }
   }
   
   private void resetVersionCount() {
@@ -102,8 +96,29 @@ public class VersioningIterator extends 
     Key keyToSkip = currentKey;
     super.next();
     
+    int count = 0;
     while (getSource().hasTop() && getSource().getTopKey().equals(keyToSkip, PartialKey.ROW_COLFAM_COLQUAL_COLVIS)) {
-      getSource().next();
+      if (count < maxCount) {
+        // it is quicker to call next if we are close, but we never know if we are close
+        // so give next a try a few times
+        getSource().next();
+        count++;
+      } else {
+        reseek(keyToSkip.followingKey(PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
+        count = 0;
+      }
+    }
+  }
+  
+  protected void reseek(Key key) throws IOException {
+    if (key == null)
+      return;
+    if (range.afterEndKey(key)) {
+      range = new Range(range.getEndKey(), true, range.getEndKey(), range.isEndKeyInclusive());
+      getSource().seek(range, columnFamilies, inclusive);
+    } else {
+      range = new Range(key, true, range.getEndKey(), range.isEndKeyInclusive());
+      getSource().seek(range, columnFamilies, inclusive);
     }
   }
   

Modified: accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java?rev=1353663&r1=1353662&r2=1353663&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java (original)
+++ accumulo/branches/ACCUMULO-259/core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java Mon Jun 25 17:09:31 2012
@@ -13819,13 +13819,13 @@ import org.slf4j.LoggerFactory;
           case 4: // ARGUMENTS
             if (field.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list47 = iprot.readListBegin();
-                this.arguments = new ArrayList<ByteBuffer>(_list47.size);
-                for (int _i48 = 0; _i48 < _list47.size; ++_i48)
+                org.apache.thrift.protocol.TList _list35 = iprot.readListBegin();
+                this.arguments = new ArrayList<ByteBuffer>(_list35.size);
+                for (int _i36 = 0; _i36 < _list35.size; ++_i36)
                 {
-                  ByteBuffer _elem49;
-                  _elem49 = iprot.readBinary();
-                  this.arguments.add(_elem49);
+                  ByteBuffer _elem37;
+                  _elem37 = iprot.readBinary();
+                  this.arguments.add(_elem37);
                 }
                 iprot.readListEnd();
               }
@@ -13836,15 +13836,15 @@ import org.slf4j.LoggerFactory;
           case 5: // OPTIONS
             if (field.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map50 = iprot.readMapBegin();
-                this.options = new HashMap<String,String>(2*_map50.size);
-                for (int _i51 = 0; _i51 < _map50.size; ++_i51)
+                org.apache.thrift.protocol.TMap _map38 = iprot.readMapBegin();
+                this.options = new HashMap<String,String>(2*_map38.size);
+                for (int _i39 = 0; _i39 < _map38.size; ++_i39)
                 {
-                  String _key52;
-                  String _val53;
-                  _key52 = iprot.readString();
-                  _val53 = iprot.readString();
-                  this.options.put(_key52, _val53);
+                  String _key40;
+                  String _val41;
+                  _key40 = iprot.readString();
+                  _val41 = iprot.readString();
+                  this.options.put(_key40, _val41);
                 }
                 iprot.readMapEnd();
               }
@@ -13892,9 +13892,9 @@ import org.slf4j.LoggerFactory;
         oprot.writeFieldBegin(ARGUMENTS_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.arguments.size()));
-          for (ByteBuffer _iter54 : this.arguments)
+          for (ByteBuffer _iter42 : this.arguments)
           {
-            oprot.writeBinary(_iter54);
+            oprot.writeBinary(_iter42);
           }
           oprot.writeListEnd();
         }
@@ -13904,10 +13904,10 @@ import org.slf4j.LoggerFactory;
         oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
         {
           oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.options.size()));
-          for (Map.Entry<String, String> _iter55 : this.options.entrySet())
+          for (Map.Entry<String, String> _iter43 : this.options.entrySet())
           {
-            oprot.writeString(_iter55.getKey());
-            oprot.writeString(_iter55.getValue());
+            oprot.writeString(_iter43.getKey());
+            oprot.writeString(_iter43.getValue());
           }
           oprot.writeMapEnd();
         }



Mime
View raw message