Fetch no more than 128 splits in parallel

patch by Patricio Echague; reviewed by jbellis for CASSANDRA-6169
This commit is contained in:
Jonathan Ellis 2013-10-09 13:35:48 -05:00
parent 5d5925aaf4
commit eee485eb63
2 changed files with 5 additions and 2 deletions

View File

@ -20,6 +20,7 @@
* Log UnknownColumnfamilyException when closing socket (CASSANDRA-5725)
* Properly error out on CREATE INDEX for counters table (CASSANDRA-6160)
* Handle JMX notification failure for repair (CASSANDRA-6097)
* (Hadoop) Fetch no more than 128 splits in parallel (CASSANDRA-6169)
1.2.10

View File

@ -27,8 +27,10 @@ import java.util.Map;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.cassandra.auth.IAuthenticator;
import org.apache.cassandra.dht.IPartitioner;
@ -123,7 +125,7 @@ public abstract class AbstractColumnFamilyInputFormat<K, Y> extends InputFormat<
logger.debug("partitioner is " + partitioner);
// cannonical ranges, split into pieces, fetching the splits in parallel
ExecutorService executor = Executors.newCachedThreadPool();
ExecutorService executor = new ThreadPoolExecutor(0, 128, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
List<InputSplit> splits = new ArrayList<InputSplit>();
try