Commit Graph

5828 Commits

Author SHA1 Message Date
Lei Xu
36bada3032 HDFS-12215. DataNode.transferBlock does not create its daemon in the xceiver thread group. (Lei Xu) 2017-08-25 16:01:14 -07:00
Andrew Wang
f29a0fc288 HDFS-12303. Change default EC cell size to 1MB for better performance. Contributed by Wei Zhou. 2017-08-25 14:14:23 -07:00
Kihwal Lee
8455d70756 HDFS-12299. Race Between update pipeline and DN Re-Registration 2017-08-25 14:49:29 -05:00
Arpit Agarwal
4b2c442d4e HDFS-12319. DirectoryScanner will throw IllegalStateException when Multiple BP's are present. Contributed by Brahma Reddy Battula. 2017-08-25 10:41:52 -07:00
John Zhuge
3123895db0 HDFS-12318. Fix IOException condition for openInfo in DFSInputStream. Contributed by legend. 2017-08-24 00:26:37 -07:00
Xiao Chen
1000a2af04 HDFS-10899. Add functionality to re-encrypt EDEKs. 2017-08-23 17:06:16 -07:00
John Zhuge
b6bfb2fcb2 HDFS-11738. Hedged pread takes more time when block moved from initial locations. Contributed by Vinayakumar B. 2017-08-21 13:45:30 -07:00
Manoj Govindassamy
913760cb4f HDFS-11988. Verify HDFS Snapshots with open files captured are consistent across truncates and appends to current version file. 2017-08-21 11:08:38 -07:00
Manoj Govindassamy
4230872dd6 HDFS-12316. Verify HDFS snapshot deletion doesn't crash the ongoing file writes. 2017-08-17 16:23:48 -07:00
Andrew Wang
b298948897 HDFS-12072. Provide fairness between EC and non-EC recovery tasks. Contributed by Eddy Xu. 2017-08-17 15:26:11 -07:00
Andrew Wang
dd7916d3cd HDFS-12250. Reduce usage of FsPermissionExtension in unit tests. Contributed by Chris Douglas. 2017-08-17 09:35:36 -07:00
Andrew Wang
96b3a6b972 HDFS-11082. Provide replicated EC policy to replicate files. Contributed by SammiChen. 2017-08-16 22:17:06 -07:00
Akira Ajisaka
08aaa4b36f
HDFS-12269. Better to return a Map rather than HashMap in getErasureCodingCodecs. Contributed by Huafeng Wang. 2017-08-17 13:20:27 +09:00
Ravi Prakash
f34646d652 HDFS-12301. NN File Browser UI: Navigate to a path when enter is pressed 2017-08-15 15:44:59 -07:00
Wei-Chiu Chuang
e3ae3e2644 HDFS-12066. When Namenode is in safemode,may not allowed to remove an user's erasure coding policy. Contributed by lufei. 2017-08-15 07:41:43 -07:00
Wei-Chiu Chuang
1040bae6fc HDFS-12054. FSNamesystem#addErasureCodingPolicies should call checkNameNodeSafeMode() to ensure Namenode is not in safemode. Contributed by lufei. 2017-08-15 07:38:43 -07:00
Yiqun Lin
2e43c28e01 HDFS-11696. Fix warnings from Spotbugs in hadoop-hdfs. Contributed by Yiqun Lin. 2017-08-15 16:48:49 +08:00
Chris Douglas
645a8f2a4d HADOOP-14726. Mark FileStatus::isDir as final 2017-08-14 21:57:20 -07:00
Anu Engineer
d72124a442 HDFS-12162. Update listStatus document to describe the behavior when the argument is a file. Contributed by Ajay Kumar. 2017-08-14 11:32:49 -07:00
Lei Xu
ce797a1706 HDFS-12221. Replace xcerces in XmlEditsVisitor. (Ajay Kumar via lei) 2017-08-14 10:27:47 -07:00
John Zhuge
8b242f09a6 HDFS-11303. Hedged read might hang infinitely if read data from all DN failed . Contributed by Chen Zhang, Wei-chiu Chuang, and John Zhuge. 2017-08-11 19:42:07 -07:00
Yiqun Lin
f13ca94954 HDFS-12287. Remove a no-longer applicable TODO comment in DatanodeManager. Contributed by Chen Liang. 2017-08-11 14:13:45 +08:00
John Zhuge
312e57b954 HDFS-11957. Enable POSIX ACL inheritance by default. Contributed by John Zhuge. 2017-08-10 10:30:47 -07:00
Kihwal Lee
b5c02f95b5 HDFS-12278. LeaseManager operations are inefficient in 2.8. Contributed by Rushabh S Shah. 2017-08-09 16:46:05 -05:00
Kihwal Lee
69afa26f19 HDFS-12157. Do fsyncDirectory(..) outside of FSDataset lock. Contributed by inayakumar B. 2017-08-09 09:03:51 -05:00
Wei-Chiu Chuang
9a3c2379ef HDFS-12182. BlockManager.metaSave does not distinguish between "under replicated" and "missing" blocks. Contributed by Wellington Chevreuil. 2017-08-08 23:44:18 -07:00
Kai Zheng
a53b8b6fdc HDFS-11975. Provide a system-default EC policy. Contributed by Huichun Lu 2017-08-09 10:12:58 +08:00
Haohui Mai
1db4788b7d HADOOP-14598. Blacklist Http/HttpsFileSystem in FsUrlStreamHandlerFactory. Contributed by Steve Loughran. 2017-08-08 16:33:18 -07:00
Haohui Mai
71b8dda4f6 HDFS-10326. Disable setting tcp socket send/receive buffers for write pipelines. Contributed by Daryn Sharp. 2017-08-08 14:58:16 -07:00
Kai Zheng
0b67436068 HDFS-12306. Add audit log for some erasure coding operations. Contributed by Huafeng Wang 2017-08-07 19:30:10 +08:00
Arpit Agarwal
bbc6d254c8 HDFS-12224. Add tests to TestJournalNodeSync for sync after JN downtime. Contributed by Hanisha Koneru. 2017-08-04 12:51:33 -07:00
Lei Xu
fe3341786a HDFS-12251. Add document for StreamCapabilities. (Lei (Eddy) Xu) 2017-08-04 11:21:58 -07:00
Andrew Wang
f4c6b00a9f HDFS-12131. Add some of the FSNamesystem JMX values as metrics. Contributed by Erik Krogen. 2017-08-03 15:44:51 -07:00
Manoj Govindassamy
79df1e750e HDFS-9388. Decommission related code to support Maintenance State for datanodes. 2017-08-02 14:22:46 -07:00
Chris Douglas
12e44e7bda HDFS-6984. Serialize FileStatus via protobuf. 2017-08-02 12:12:48 -07:00
Sean Mackrory
1a1bf6b7d0 HADOOP-13595. Rework hadoop_usage to be broken up by clients/daemons/etc. Contributed by Allen Wittenauer. 2017-08-02 12:25:05 -06:00
Haohui Mai
6814324c33 HDFS-12107. FsDatasetImpl#removeVolumes floods the logs when removing the volume. Contributed by Kelvin Chu. 2017-08-01 18:34:07 -07:00
Manoj Govindassamy
52d7bafcf4 HDFS-12217. HDFS snapshots doesn't capture all open files when one of the open files is deleted. 2017-08-01 16:28:20 -07:00
Sean Mackrory
7774759830 HDFS-12151. Hadoop 2 clients cannot writeBlock to Hadoop 3 DataNodes. 2017-08-01 14:34:25 -06:00
Akira Ajisaka
b38a1eea8e
HADOOP-14245. Use Mockito.when instead of Mockito.stub. Contributed by Andras Bokor. 2017-08-01 15:15:43 +09:00
Weiwei Yang
ea568123fa HDFS-12154. Incorrect javadoc description in StorageLocationChecker#check. Contributed by Nandakumar. 2017-07-31 17:02:44 -07:00
Arpit Agarwal
3e23415a92 HDFS-12082. BlockInvalidateLimit value is incorrectly set after namenode heartbeat interval reconfigured. Contributed by Weiwei Yang. 2017-07-31 11:33:55 -07:00
Andrew Wang
480c8db40c HDFS-12206. Rename the split EC / replicated block metrics. 2017-07-28 11:24:44 -07:00
Lei Xu
77791e4c36 HDFS-12044. Mismatch between BlockManager.maxReplicationStreams and ErasureCodingWorker.stripedReconstructionPool pool size causes slow and bursty recovery. (Contributed by Lei (Eddy) Xu) 2017-07-28 10:50:49 -07:00
Wei-Chiu Chuang
369f731264 HDFS-12062. removeErasureCodingPolicy needs super user permission. Contributed by Wei-Chiu Chuang. 2017-07-28 00:51:03 -07:00
Yongjun Zhang
c6330f22a5 HDFS-12190. Enable 'hdfs dfs -stat' to display access time. Contributed by Yongjun Zhang. 2017-07-27 16:48:24 -07:00
Jitendra Pandey
e3c7300225 HDFS-2319. Add test cases for FSshell -stat. Contributed by XieXianshan and Bharat Viswanadham. 2017-07-27 13:23:15 -07:00
Brahma Reddy Battula
c4a85c694f HDFS-11896. Non-dfsUsed will be doubled on dead node re-registration. Contributed by Brahma Reddy Battula. 2017-07-27 12:02:57 -07:00
Kihwal Lee
a68b5b31cf HDFS-12171. Reduce IIP object allocations for inode lookup. Contributed by Daryn Sharp. 2017-07-25 11:03:49 -05:00
Brahma Reddy Battula
6d983cca52 HADOOP-14455. ViewFileSystem#rename should support be supported within same nameservice with different mountpoints. Contributed by Brahma Reddy Battula. 2017-07-25 23:51:53 +08:00
Kihwal Lee
1a79dcfc45 HDFS-12143. Improve performance of getting and removing inode features. Contributed by Daryn Sharp. 2017-07-25 10:28:57 -05:00
Akira Ajisaka
770cc46228
HDFS-12176. dfsadmin shows DFS Used%: NaN% if the cluster has zero block. Contributed by Weiwei Yang. 2017-07-24 16:24:23 +09:00
Kihwal Lee
8e3a992ecc HDFS-11742. Improve balancer usability after HDFS-8818. Contributed by Kihwal Lee 2017-07-21 09:14:19 -05:00
Konstantin V Shvachko
8c2c812832 HDFS-11472. Fix inconsistent replica size after a data pipeline failure. Contributed by Erik Krogen and Wei-Chiu Chuang. 2017-07-20 14:47:25 -07:00
Anu Engineer
413b23eb04 HDFS-12158. Secondary Namenode's web interface lack configs for X-FRAME-OPTIONS protection. Contributed by Mukul Kumar Singh. 2017-07-19 10:29:06 -07:00
Brahma Reddy Battula
04ff412dab HDFS-12133. Correct ContentSummaryComputationContext Logger class name.. Contributed by Surendra Singh Lilhore. 2017-07-19 23:43:10 +08:00
Brahma Reddy Battula
f8cd55fe33 HDFS-12067. Correct dfsadmin commands usage message to reflects IPC port. Contributed by steven-wugang. 2017-07-19 23:21:43 +08:00
Tsz-Wo Nicholas Sze
ed27f2b2cc HDFS-12138. Remove redundant 'public' modifiers from BlockCollection. Contributed by Chen Liang 2017-07-17 13:54:16 -07:00
Brahma Reddy Battula
b778887af5 HDFS-12112. TestBlockManager#testBlockManagerMachinesArray sometimes fails with NPE. Contributed by Wei-Chiu Chuang. 2017-07-15 10:38:31 +08:00
Xiao Chen
0a6d5c0cf1 HADOOP-14521. KMS client needs retry logic. Contributed by Rushabh S Shah. 2017-07-14 22:22:53 -07:00
Tsz-Wo Nicholas Sze
f413ee33df HDFS-12130. Optimizing permission check for getContentSummary. Contributed by Chen Liang 2017-07-14 14:35:51 -07:00
Tsz-Wo Nicholas Sze
a1f12bb543 Revert "HDFS-12130. Optimizing permission check for getContentSummary." to fix commit message.
This reverts commit a29fe100b3.
2017-07-14 14:34:01 -07:00
Kihwal Lee
e7d187a1b6 HDFS-12140. Remove BPOfferService lock contention to get block pool id. Contributed by Daryn Sharp. 2017-07-14 16:07:17 -05:00
Kihwal Lee
8d86a93915 HDFS-12137. DN dataset lock should be fair. Contributed by Daryn Sharp. 2017-07-14 15:41:43 -05:00
Tsz-Wo Nicholas Sze
a29fe100b3 HDFS-12130. Optimizing permission check for getContentSummary. 2017-07-14 13:36:27 -07:00
Xiaoyu Yao
e15e2713e1 HDFS-11502. Datanode UI should display hostname based on JMX bean instead of window.location.hostname. Contributed by Jeffrey E Rodriguez and Yuanbo Liu. 2017-07-12 16:26:19 -07:00
Akira Ajisaka
9144fd9e9b
HADOOP-14629. Improve exception checking in FileContext related JUnit tests. Contributed by Andras Bokor. 2017-07-12 11:35:50 +09:00
Yiqun Lin
3a7f02b815 HDFS-12085. Reconfigure namenode heartbeat interval fails if the interval was set with time unit. Contributed by Weiwei Yang. 2017-07-11 20:40:11 +08:00
Akira Ajisaka
8fc5dcc2a1
Revert "HADOOP-14587. Use GenericTestUtils.setLogLevel when available in hadoop-common. Contributed by Wenxin He."
This reverts commit 82cb2a6497.
2017-07-08 02:53:18 +09:00
Akira Ajisaka
82cb2a6497
HADOOP-14587. Use GenericTestUtils.setLogLevel when available in hadoop-common. Contributed by Wenxin He. 2017-07-07 15:00:47 +09:00
Akira Ajisaka
186650d21d
HDFS-12078. Add time unit to the description of property dfs.namenode.stale.datanode.interval in hdfs-default.xml. Contributed by Weiwei Yang. 2017-07-04 14:51:52 +09:00
Akira Ajisaka
b0560e0624
HDFS-12079. Description of dfs.block.invalidate.limit is incorrect in hdfs-default.xml. Contributed by Weiwei Yang. 2017-07-04 14:02:14 +09:00
Wei-Chiu Chuang
bcba844d11 HDFS-12042. Lazy initialize AbstractINodeDiffList#diffs for snapshots to reduce memory consumption. Contributed by Misha Dmitriev. 2017-06-30 10:28:01 -07:00
Arpit Agarwal
6a9dc5f44b HDFS-12043. Add counters for block re-replication. Contributed by Chen Liang. 2017-06-30 10:20:12 -07:00
Arpit Agarwal
a2f0cbd92f Revert "HDFS-12043. Add counters for block re-replication. Contributed by Chen Liang."
Accidentally committed the wrong patch version, reverting to fix that.

This reverts commit 900221f95e.
2017-06-30 10:19:27 -07:00
Arpit Agarwal
900221f95e HDFS-12043. Add counters for block re-replication. Contributed by Chen Liang. 2017-06-29 17:15:13 -07:00
Andrew Wang
441378e7e4 Revert "HDFS-11696. Fix warnings from Spotbugs in hadoop-hdfs. Contributed by Yiqun Lin."
This reverts commit 89a8edc014.

 Conflicts:
	hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DFSAdmin.java
2017-06-29 13:54:16 -07:00
Wei-Chiu Chuang
16c8dbde57 HDFS-11881. NameNode consumes a lot of memory for snapshot diff report generation. Contributed by Manoj Govindassamy. 2017-06-29 06:38:41 -07:00
Wei-Chiu Chuang
e9d8bdfdf5 HADOOP-14297. Update the documentation about the new ec codecs config keys. Contributed by Kai Sasaki. 2017-06-28 13:53:54 -07:00
Lei Xu
d6df0fdbbd Add -E option in 'ls' to list erasure coding policy of each file and directory if applicable. Contributed by luhuichun via lei. 2017-06-28 13:47:23 -07:00
Wei-Chiu Chuang
f99b6d19de HDFS-11870. Add CLI cmd to enable/disable an erasure code policy. Contributed by lufei. 2017-06-28 10:54:25 -07:00
Akira Ajisaka
07defa4c09
HDFS-12040. TestFsDatasetImpl.testCleanShutdownOfVolume fails. Contributed by hu xiaodong. 2017-06-27 20:49:26 +09:00
Anu Engineer
8641a2c08b HDFS-12045. Add log when Diskbalancer volume is transient storage type. Contributed by steven-wugang. 2017-06-27 00:39:47 -07:00
Lei Xu
144753e87f HDFS-12033. DatanodeManager picking EC recovery tasks should also consider the number of regular replication tasks. Contributed by Lei (Eddy) Xu. 2017-06-26 15:43:50 -07:00
Andrew Wang
2c367b464c HDFS-11956. Do not require a storage ID or target storage IDs when writing a block. Contributed by Ewan Higgs. 2017-06-26 11:20:07 -07:00
Andrew Wang
06c8ca3bb3 HDFS-12032. Inaccurate comment on DatanodeDescriptor#getNumberOfBlocksToBeErasureCoded. 2017-06-26 10:54:01 -07:00
Brahma Reddy Battula
abdea26280 HDFS-12024. Fix typo's in FsDatasetImpl.java. Contributed by Yasen liu. 2017-06-23 22:56:28 +08:00
Xiao Chen
68dc7c2405 HDFS-12009. Accept human-friendly units in dfsadmin -setBalancerBandwidth and -setQuota. Contributed by Andrew Wang. 2017-06-22 19:57:54 -07:00
Arpit Agarwal
6d116ffad2 HDFS-11789. Maintain Short-Circuit Read Statistics. Contributed by Hanisha Koneru. 2017-06-22 13:35:56 -07:00
Vinayakumar B
8dbd53ef9f HDFS-11067. DFS#listStatusIterator(..) should throw FileNotFoundException if the directory deleted before fetching next batch of entries. Contributed by Vinayakumar B. 2017-06-22 17:37:08 +05:30
Arpit Agarwal
9ae9467f92 HDFS-11998. Enable DFSNetworkTopology as default. Contributed by Chen Liang. 2017-06-21 22:01:41 -07:00
Zhe Zhang
c22cf00442 Confusion/name conflict between NameNodeActivity#BlockReportNumOps and RpcDetailedActivity#BlockReportNumOps. Contributed by Erik Krogen. 2017-06-21 16:34:19 -07:00
Kai Zheng
5db3f98468 HDFS-11606. Add CLI cmd to remove an erasure code policy. Contributed by Tim Yao 2017-06-21 14:01:55 +08:00
Akira Ajisaka
1a598479a9
HDFS-11992. Replace commons-logging APIs with slf4j in FsDatasetImpl. Contributed by hu xiaodong. 2017-06-21 11:19:48 +09:00
Lei Xu
45ff4d38e6 HDFS-11647. Add -E option in hdfs "count" command to show erasure policy summarization. Contributed by luhuichun. 2017-06-20 11:55:09 -07:00
Wei-Chiu Chuang
2b654a493c HDFS-11978. Remove invalid '-usage' command of 'ec' and add missing commands 'addPolicies' 'listCodecs' in doc. Contributed by wenxin he. 2017-06-20 09:36:55 -07:00
Kihwal Lee
8c0769dee4 HDFS-11960. Successfully closed files can stay under-replicated. Contributed by Kihwal Lee. 2017-06-20 09:11:23 -05:00
Brahma Reddy Battula
2e9daa2e27 HADOOP-14533. Size of args cannot be less than zero in TraceAdmin#run as its linkedlist. Contributed by Weisen Han. 2017-06-20 20:44:31 +08:00
Akira Ajisaka
2c769167db
HDFS-11345. Document the configuration key for FSNamesystem lock fairness. Contributed by Erik Krogen. 2017-06-20 16:35:54 +09:00
Brahma Reddy Battula
099cbb427a HDFS-11890. Handle NPE in BlockRecoveryWorker when DN is getting shoutdown. Contributed by Surendra Singh Lilhore. 2017-06-20 11:03:56 +08:00
Masatake Iwasaki
d954a64730 HDFS-11995. HDFS Architecture documentation incorrectly describes writing to a local temporary file. Contributed by Nandakumar. 2017-06-20 08:07:42 +09:00
Lei Xu
73fb75017e HDFS-11916. Extend TestErasureCodingPolicies/TestErasureCodingPolicyWithSnapshot with a random EC policy. Contributed by Takanobu Asanuma. 2017-06-19 10:25:20 -07:00
Lei Xu
6460df21a0 HADOOP-14395. Provide Builder pattern for DistributedFileSystem.append. Contributed by Lei (Eddy) Xu. 2017-06-16 17:24:00 -07:00
Andrew Wang
fb68980959 HDFS-10480. Add an admin command to list currently open files. Contributed by Manoj Govindassamy. 2017-06-15 14:46:55 -07:00
Lei Xu
3f5108723c HDFS-11682. TestBalancer.testBalancerWithStripedFile is flaky. (lei) 2017-06-15 11:04:50 -07:00
Lei Xu
5e7cfdca7b HADOOP-14394. Provide Builder pattern for DistributedFileSystem.create. (lei) 2017-06-15 10:59:24 -07:00
Akira Ajisaka
315f07700d
HDFS-11736. OIV tests should not write outside 'target' directory. Contributed by Yiqun Lin. 2017-06-15 13:46:20 +09:00
Lei Xu
999c8fcbef HDFS-10999. Introduce separate stats for Replicated and Erasure Coded Blocks apart from the current Aggregated stats. (Manoj Govindassamy via lei) 2017-06-14 10:44:19 -07:00
Arpit Agarwal
8633ef8e10 HADOOP-14503. Make RollingAverages a mutable metric. Contributed by Hanisha Koneru. 2017-06-12 20:43:43 -07:00
Tsz-Wo Nicholas Sze
bec79ca249 HDFS-11947. When constructing a thread name, BPOfferService may print a bogus warning message. Contributed by Weiwei Yang 2017-06-13 09:45:10 +08:00
Arpit Agarwal
b3d3ede91a HDFS-11967. TestJMXGet fails occasionally. Contributed by Arpit Agarwal. 2017-06-12 16:03:47 -07:00
Arpit Agarwal
3f0a727f75 HDFS-11907. Add metric for time taken by NameNode resource check. Contributed by Chen Liang. 2017-06-12 15:18:38 -07:00
Mingliang Liu
1a33c9d589 HDFS-11945. Internal lease recovery may not be retried for a long time. Contributed by Kihwal Lee 2017-06-08 14:36:47 -07:00
Yiqun Lin
5ec71639cf HDFS-11929. Document missing processor of hdfs oiv_legacy command. Contributed by LiXin Ge. 2017-06-07 13:42:13 +08:00
Vinayakumar B
70fc6746b3 HDFS-11708. Positional read will fail if replicas moved to different DNs after stream is opened. Contributed by Vinayakumar B. 2017-06-07 10:55:53 +05:30
Brahma Reddy Battula
1869e1771c HDFS-11711. DN should not delete the block On "Too many open files" Exception. Contributed by Brahma Reddy Battula. 2017-06-07 13:05:33 +08:00
Andrew Wang
c31cb879a3 HDFS-11840. Log HDFS Mover exception message of exit to its own log. Contributed by LiXin Ge. 2017-06-06 14:57:48 -07:00
Arpit Agarwal
867903db2b HDFS-11932. BPServiceActor thread name is not correctly set. Contributed by Chen Liang. 2017-06-06 13:51:02 -07:00
Brahma Reddy Battula
19ef3a81f8 HADOOP-14485. Redundant 'final' modifier in try-with-resources statement. Contributed by wenxin he. 2017-06-06 23:11:47 +08:00
Yongjun Zhang
6a28a2b914 HDFS-11914. Add more diagnosis info for fsimage transfer failure. Contributed by Yongjun Zhang. 2017-06-05 16:31:03 -07:00
Arpit Agarwal
835560983e HDFS-11928. Segment overflow in FileDistributionCalculator. Contributed by LiXin Ge. 2017-06-05 13:21:22 -07:00
Kihwal Lee
e4e203e080 HDFS-10816. TestComputeInvalidateWork#testDatanodeReRegistration fails due to race between test and replication monitor. Contributed by Eric Badger. 2017-06-05 15:18:27 -05:00
Yiqun Lin
367da9b7b8 HDFS-11899. ASF License warnings generated intermittently in trunk. Contributed by Yiqun Lin. 2017-06-03 22:07:24 +08:00
Brahma Reddy Battula
056cc72885 HADOOP-14436. Remove the redundant colon in ViewFs.md. Contributed by maobaolong. 2017-06-02 22:39:10 +08:00
Yiqun Lin
8d9084eb62 HDFS-11359. DFSAdmin report command supports displaying maintenance state datanodes. Contributed by Yiqun Lin. 2017-06-02 12:48:30 +08:00
Xiao Chen
219f4c199e HDFS-11904. Reuse iip in unprotectedRemoveXAttrs calls. 2017-06-01 14:13:57 -07:00
Xiao Chen
6a3fc685a9 HDFS-11741. Long running balancer may fail due to expired DataEncryptionKey. Contributed by Wei-Chiu Chuang and Xiao Chen. 2017-06-01 14:05:37 -07:00
Brahma Reddy Battula
ff3103556b HDFS-11905. Fix license header inconsistency in hdfs. Contributed by Yeliang Cang. 2017-06-02 00:28:33 +08:00
Brahma Reddy Battula
0dcf843c00 HDFS-11893. Fix TestDFSShell.testMoveWithTargetPortEmpty failure. Contributed by Brahma Reddy Battula. 2017-06-01 22:29:29 +08:00
Kihwal Lee
1543d0f5be HDFS-5042. Completed files lost after power failure. Contributed by Vinayakumar B. 2017-05-31 10:55:03 -05:00
Brahma Reddy Battula
13de636b40 HDFS-11901. Modifier 'static' is redundant for inner enums. Contributed by ZhangBing Lin. 2017-05-31 23:09:08 +08:00
Lei Xu
91d6fe151f HDFS-11659. TestDataNodeHotSwapVolumes.testRemoveVolumeBeingWritten fail due to no DataNode available for pipeline recovery. Contributed by Lei (Eddy) Xu. 2017-05-30 11:10:12 -07:00
Akira Ajisaka
a7f085d6bf
HDFS-11832. Switch leftover logs to slf4j format in BlockManager.java. Contributed by Hui Xu and Chen Liang. 2017-05-29 17:30:23 +09:00
Yiqun Lin
31058b243e HDFS-11446. TestMaintenanceState#testWithNNAndDNRestart fails intermittently. Contributed by Yiqun Lin. 2017-05-28 11:23:32 +08:00
Inigo Goiri
303c8dc9b6 Fix NPE in LazyPersistFileScrubber. Contributed by Inigo Goiri. 2017-05-26 13:16:01 -07:00
Kihwal Lee
2b5ad48762 HDFS-11817. A faulty node can cause a lease leak and NPE on accessing data. Contributed by Kihwal Lee. 2017-05-25 17:17:38 -05:00
Arpit Agarwal
1161563136 HDFS-11879. Fix JN sync interval in case of exception. Contributed by Hanisha Koneru. 2017-05-25 14:01:53 -07:00
Kihwal Lee
29b7df960f HDFS-11856. Ability to re-add Upgrading Nodes to pipeline for future pipeline updates. Contributed by Vinayakumar B. 2017-05-25 13:05:23 -05:00
Arpit Agarwal
4fb41b31db HDFS-11878. Fix journal missing log httpServerUrl address in JournalNodeSyncer. Contributed by Hanisha Koneru. 2017-05-25 10:42:24 -07:00
Brahma Reddy Battula
2e41f8803d HDFS-11445. FSCK shows overall health stauts as corrupt even one replica is corrupt. Contributed by Brahma Reddy Battula. 2017-05-25 22:35:10 +08:00
Akira Ajisaka
6a52b5e144
HADOOP-14180. FileSystem contract tests to replace JUnit 3 with 4. Contributed by Xiaobing Zhou and Mingliang Liu. 2017-05-25 15:36:44 +09:00
Wei-Chiu Chuang
b8b69d797a Revert "HDFS-10797. Disk usage summary of snapshots causes renamed blocks to get counted twice. Contributed by Sean Mackrory."
This reverts commit 6a38d118d8.
2017-05-24 17:21:22 -07:00
Wei-Chiu Chuang
2cba561228 Revert "HDFS-11515. -du throws ConcurrentModificationException. Contributed by Istvan Fajth, Wei-Chiu Chuang."
This reverts commit bc7aff7cec.
2017-05-24 17:20:27 -07:00
Arpit Agarwal
0e83ed5e73 HDFS-11877. FileJournalManager#getLogFile should ignore in progress edit logs during JN sync. Contributed by Hanisha Koneru. 2017-05-24 16:09:00 -07:00
Jing Zhao
1c8dd6d3d1 HDFS-11823. Extend TestDFSStripedIutputStream/TestDFSStripedOutputStream with a random EC policy. Contributed by Takanobu Asanuma. 2017-05-24 11:14:19 -07:00
Kai Zheng
a62be38a5e HDFS-11793. Allow to enable user defined erasure coding policy. Contributed by Sammi Chen 2017-05-24 18:45:52 +08:00
Rakesh Radhakrishnan
1b5451bf05 HDFS-11794. Add ec sub command -listCodec to show currently supported ec codecs. Contributed by SammiChen. 2017-05-23 17:03:28 +05:30
Arpit Agarwal
d0f346af26 HDFS-11419. Performance analysis of new DFSNetworkTopology#chooseRandom. Contributed by Chen Liang. 2017-05-22 20:25:34 -07:00
Arpit Agarwal
ca6bcc3c76 HDFS-11866. JournalNode Sync should be off by default in hdfs-default.xml. Contributed by Hanisha Koneru. 2017-05-22 17:53:47 -07:00
Brahma Reddy Battula
9cab42cc79 HDFS-11849. JournalNode startup failure exception should be logged in log file. Contributed By Surendra Singh Lilhore. 2017-05-23 02:39:19 +08:00
Sunil G
b6f66b0da1 YARN-6584. Correct license headers in hadoop-common, hdfs, yarn and mapreduce. Contributed by Yeliang Cang. 2017-05-22 14:10:06 +05:30
Arpit Agarwal
44e9ef2e90 HDFS-11842. TestDataNodeOutlierDetectionViaMetrics UT fails intermittently. Controbuted by Hanisha Koneru. 2017-05-17 19:33:37 -07:00
Arpit Agarwal
ec21ce425f HDFS-11827. NPE is thrown when log level changed in BlockPlacementPolicyDefault#chooseRandom() method. Contributed by xupeng. 2017-05-16 19:51:04 -07:00
Akira Ajisaka
89a8edc014
HDFS-11696. Fix warnings from Spotbugs in hadoop-hdfs. Contributed by Yiqun Lin. 2017-05-16 12:41:59 -04:00
Kihwal Lee
9b90e52f1e HDFS-11641. Reduce cost of audit logging by using FileStatus instead of HdfsFileStatus. Contributed by Daryn Sharp. 2017-05-16 11:28:46 -05:00
Akira Ajisaka
1d1c52b42f
HDFS-11833. HDFS architecture documentation descibes outdated placement policy. Contributed by Chen Liang. 2017-05-16 11:52:55 -04:00
Jason Lowe
2397a2626e HDFS-11818. TestBlockManager.testSufficientlyReplBlocksUsesNewRack fails intermittently. Contributed by Nathan Roberts 2017-05-12 17:42:47 -05:00
Vinayakumar B
1411612aa4 HDFS-11674. reserveSpaceForReplicas is not released if append request failed due to mirror down and replica recovered (Contributed by Vinayakumar B) 2017-05-12 07:38:18 +05:30
Andrew Wang
83dd14aa84 HDFS-11757. Query StreamCapabilities when creating balancer's lock file. Contributed by SammiChen. 2017-05-11 14:09:49 -07:00
Chris Douglas
51b671ef18 HDFS-11681. DatanodeStorageInfo#getBlockIterator() should return an iterator to an unmodifiable set Contributed by Virajith Jalaparti 2017-05-10 22:25:28 -07:00
Kihwal Lee
ad1e3e4d9f HDFS-11755. Underconstruction blocks can be considered missing. Contributed by Nathan Roberts. 2017-05-10 14:15:57 -05:00
Jason Lowe
fab73748a1 HDFS-11745. Increase HDFS test timeouts from 1 second to 10 seconds. Contributed by Eric Badger 2017-05-10 13:02:31 -05:00
Andrew Wang
543aac9f28 HADOOP-14386. Rewind trunk from Guava 21.0 back to Guava 11.0.2. 2017-05-09 09:22:53 -07:00
Andrew Wang
54fd0e44b7 HDFS-11644. Support for querying outputstream capabilities. Contributed by Manoj Govindassamy. 2017-05-08 21:59:49 -07:00
Kihwal Lee
cef2815cf4 HDFS-11702. Remove indefinite caching of key provider uri in DFSClient. Contributed by Rushabh S Shah. 2017-05-08 08:27:37 -05:00
Chris Douglas
e4f34ecb04 HADOOP-14390. Correct spelling of 'succeed' and variants. Contributed by Dongtao Zhang 2017-05-05 12:10:50 -07:00
Chris Douglas
a3954ccab1 HDFS-9807. Add an optional StorageID to writes. Contributed by Ewan Higgs 2017-05-05 12:01:26 -07:00
Yiqun Lin
97c2e576c9 HDFS-11530. Use HDFS specific network topology to choose datanode in BlockPlacementPolicyDefault. Contributed by Yiqun Lin and Chen Liang. 2017-05-05 11:54:50 +08:00
Arpit Agarwal
07761af357 HDFS-11448. JN log segment syncing should support HA upgrade. Contributed by Hanisha Koneru. 2017-05-04 15:57:44 -07:00
Lei Xu
25f5d9ad5e HDFS-11687. Add new public encryption APIs required by Hive. (lei)
Change-Id: I4a23a00de63ad18022312ceb1f306a87d032d07c
2017-05-04 12:06:50 -07:00
Andrew Wang
c2a52ef9c2 HDFS-11643. Add shouldReplicate option to create builder. Contributed by SammiChen. 2017-05-04 11:39:14 -07:00
Arpit Agarwal
81092b1f11 HDFS-11722. Change Datanode file IO profiling sampling to percentage. Contributed by Hanisha Koneru. 2017-05-03 16:29:30 -07:00
Arpit Agarwal
30cd265134 Revert "HDFS-11488. JN log segment syncing should support HA upgrade. Contributed by Hanisha Koneru."
This reverts commit 08fb82d6d1.
2017-05-03 16:28:47 -07:00
Arpit Agarwal
08fb82d6d1 HDFS-11488. JN log segment syncing should support HA upgrade. Contributed by Hanisha Koneru. 2017-05-03 15:46:08 -07:00
Mingliang Liu
83dded556d HDFS-11739. Fix regression in tests caused by YARN-679. Contributed by Steve Loughran 2017-05-03 11:22:44 -07:00
Erik Krogen
d9014bda93 HDFS-11717. Add unit test for HDFS-11709 StandbyCheckpointer should handle non-existing legacyOivImageDir gracefully. Contributed by Erik Krogen. 2017-05-02 18:34:11 -07:00
Xiaoyu Yao
1058b40843 HDFS-11593. Change SimpleHttpProxyHandler#exceptionCaught log level from info to debug. Contributed by Xiaobing Zhou. 2017-05-01 16:12:51 -07:00
Kihwal Lee
4cfc866436 HDFS-11714. Newly added NN storage directory won't get initialized and cause space exhaustion. Contributed by Kihwal Lee. 2017-05-01 17:29:25 -05:00
Kihwal Lee
07b98e7830 HDFS-11609. Some blocks can be permanently lost if nodes are decommissioned while dead. Contributed by Kihwal Lee. 2017-05-01 14:19:02 -05:00
Lei Xu
19a7e94ee4 HDFS-11718. DFSStripedOutputStream hsync/hflush should not throw UnsupportedOperationException. (Manoj Govindassamy via lei)
Change-Id: I4cc226b80c64a0d900a3b1ce71e51f051cd29c22
2017-04-28 17:06:14 -07:00
Kai Zheng
cb672a45a0 HDFS-11605. Allow user to customize new erasure code policies. Contributed by Huafeng Wang 2017-04-28 13:18:50 +08:00
Wei-Chiu Chuang
bbf8cac14d HADOOP-13200. Implement customizable and configurable erasure coders. Contributed by Tim Yao. 2017-04-27 12:39:47 -07:00
Wei-Chiu Chuang
ddaeb3e497 Revert "HADOOP-13200. Implement customizable and configurable erasure coders. Contributed by Tim Yao."
This reverts commit 872088c6e7.
2017-04-27 12:25:47 -07:00
Wei-Chiu Chuang
872088c6e7 HADOOP-13200. Implement customizable and configurable erasure coders. Contributed by Tim Yao. 2017-04-27 11:59:33 -07:00
Zhe Zhang
d8a3309830 HDFS-11709. StandbyCheckpointer should handle an non-existing legacyOivImageDir gracefully. Contributed by Erik Krogen. 2017-04-27 09:50:30 -07:00
Konstantin V Shvachko
28eb2aabeb HDFS-11384. Balancer disperses getBlocks calls to avoid NameNode's rpc queue saturation. Contributed by Konstantin V Shvachko. 2017-04-26 17:28:49 -07:00
Akira Ajisaka
93fa48fcf2
HDFS-11417. Add datanode admin command to get the storage info. Contributed by Surendra Singh Lilhore. 2017-04-26 17:43:29 +09:00
Chris Douglas
2f73396b59 HDFS-6708. StorageType should be encoded in the block token. Contributed by Ewan Higgs 2017-04-25 23:57:00 -07:00
Xiaoyu Yao
4ea2778acb HADOOP-14207. "dfsadmin -refreshCallQueue" fails with DecayRpcScheduler. Contributed by Surendra Singh Lihore. 2017-04-25 18:45:56 -07:00
Jason Lowe
e4321ec843 HDFS-11691. Add a proper scheme to the datanode links in NN web UI. Contributed by Kihwal Lee 2017-04-25 17:30:42 -05:00
Yongjun Zhang
20e3ae260b HDFS-11402. HDFS Snapshots should capture point-in-time copies of OPEN files. (Manoj Govindassamy via Yongjun Zhang) 2017-04-21 20:35:48 -07:00
Kai Zheng
b0803388fc HDFS-11604. Define and parse erasure code policies. Contributed by Lin Zeng 2017-04-21 13:33:33 +08:00
Andrew Wang
74a723852d HDFS-11660. TestFsDatasetCache#testPageRounder fails intermittently with AssertionError. 2017-04-19 18:10:04 -07:00
Andrew Wang
c1549352cf HDFS-11671. TestReconstructStripedBlocks#test2RecoveryTasksForSameBlockGroup fails. 2017-04-19 13:49:56 -07:00
Konstantin V Shvachko
8dfcd95d58 HDFS-11634. Optimize BlockIterator when interating starts in the middle. Contributed by Konstantin V Shvachko. 2017-04-17 16:56:24 -07:00
Zhe Zhang
ad49098eb3 HDFS-11615. FSNamesystemLock metrics can be inaccurate due to millisecond precision. Contributed by Erik Krogen. 2017-04-17 16:22:33 -07:00
Andrew Wang
a7312715a6 HDFS-10996. Ability to specify per-file EC policy at create time. Contributed by SammiChen. 2017-04-12 12:27:34 -07:00
Andrew Wang
966b1b5b44 HDFS-11565. Use compact identifiers for built-in ECPolicies in HdfsFileStatus. 2017-04-12 12:24:32 -07:00
Anu Engineer
abce613356 HDFS-11645. DataXceiver thread should log the actual error when getting InvalidMagicNumberException. Contributed by Chen Liang. 2017-04-12 11:40:58 -07:00
Kihwal Lee
d4c01dde49 HDFS-11648. Lazy construct the IIP pathname. Contributed by Daryn Sharp. 2017-04-12 13:29:24 -05:00
Chris Nauroth
23b1a7bdf1 HDFS-11163. Mover should move the file blocks to default storage once policy is unset. Contributed by Surendra Singh Lilhore. 2017-04-11 22:03:09 -07:00
Hanisha Koneru
62e4573efb HDFS-11630. TestThrottledAsyncCheckerTimeout fails intermittently in Jenkins builds. Contributed by Hanisha Koneru. 2017-04-11 21:36:24 -07:00
Mingliang Liu
3a91376707 HDFS-11558. BPServiceActor thread name is too long. Contributed by Xiaobing Zhou 2017-04-11 15:29:38 -07:00
Wei-Chiu Chuang
f050afb578 HADOOP-13665. Erasure Coding codec should support fallback coder. Contributed by Kai Sasaki. 2017-04-11 07:32:13 -07:00
Yiqun Lin
2fd568fdd4 HDFS-11637. Fix javac warning caused by the deprecated key used in TestDFSClientRetries#testFailuresArePerOperation. Contributed by Yiqun Lin. 2017-04-11 19:40:09 +08:00
Chris Douglas
a5e57df3c5 HADOOP-14225. Remove xmlenc dependency 2017-04-10 11:48:40 -07:00
Andrew Wang
e8bdad7385 HDFS-11623. Move system erasure coding policies into hadoop-hdfs-client. 2017-04-07 16:46:28 -07:00
Andrew Wang
203edc026c HDFS-11633. FSImage failover disables all erasure coding policies. Contributed by Wei-Chiu Chuang. 2017-04-07 15:46:11 -07:00
Allen Wittenauer
96cbb4fce2 HADOOP-14202. fix jsvc/secure user var inconsistencies
Signed-off-by: John Zhuge <jzhuge@apache.org>
2017-04-07 08:59:21 -07:00
Xiaoyu Yao
0eacd4c13b HDFS-11608. HDFS write crashed with block size greater than 2 GB. Contributed by Xiaobing Zhou. 2017-04-06 16:11:55 -07:00
Xiaoyu Yao
a49fac5302 HDFS-11362. StorageDirectory should initialize a non-null default StorageDirType. Contribute by Hanisha Koneru. 2017-04-06 14:33:16 -07:00
Arpit Agarwal
8c57aeb5b4 HDFS-11131. TestThrottledAsyncChecker#testCancellation is flaky. 2017-04-05 17:54:30 -07:00
Xiaobing Zhou
3db8d68d63 HDFS-11628. Clarify the behavior of HDFS Mover in documentation. Contributed by Xiaobing Zhou. 2017-04-05 15:33:08 -07:00
Andrew Wang
9e0e430f18 HDFS-11538. Move ClientProtocol HA proxies into hadoop-hdfs-client. Contributed by Huafeng Wang. 2017-04-04 23:05:24 -07:00
Akira Ajisaka
8cb7325527
HDFS-9651. Add missing robots.txt files. 2017-04-05 12:47:45 +09:00
Andrew Wang
18432130a7 HADOOP-14104. Client should always ask namenode for kms provider path. Contributed by Rushabh S Shah. 2017-04-04 13:38:25 -07:00
Chris Douglas
6eba79232f HADOOP-14271. Correct spelling of 'occurred' and variants. Contributed by Yeliang Cang 2017-04-03 20:13:14 -07:00
Wei-Chiu Chuang
bbd68478d5 HDFS-11598. Improve -setrep for Erasure Coded files. Contributed by Yiqun Lin. 2017-04-03 07:57:28 -07:00
Wei-Chiu Chuang
bc7aff7cec HDFS-11515. -du throws ConcurrentModificationException. Contributed by Istvan Fajth, Wei-Chiu Chuang. 2017-04-03 07:35:09 -07:00
Hanisha Koneru
73835c73e2 HDFS-11560. Expose slow disks via NameNode JMX. Contributed by Hanisha Koneru. 2017-03-31 13:50:29 -07:00
Arpit Agarwal
5485d93bda HDFS-11603. Improve slow mirror/disk warnings in BlockReceiver. 2017-03-31 12:10:27 -07:00
Hanisha Koneru
28cdc5a8dc HDFS-11551. Handle SlowDiskReport from DataNode at the NameNode. Contributed by Hanisha Koneru. 2017-03-30 22:41:26 -07:00
Yongjun Zhang
bf3fb585aa HADOOP-11794. Enable distcp to copy blocks in parallel. Contributed by Yongjun Zhang, Wei-Chiu Chuang, Xiao Chen, Rosie Li. 2017-03-30 17:38:56 -07:00
Yongjun Zhang
144f1cf765 Revert "HADOOP-11794. Enable distcp to copy blocks in parallel. Contributed by Yongjun Zhang, Wei-Chiu Chuang, Xiao Chen."
This reverts commit 064c8b25ec.
2017-03-30 17:38:18 -07:00
Yongjun Zhang
064c8b25ec HADOOP-11794. Enable distcp to copy blocks in parallel. Contributed by Yongjun Zhang, Wei-Chiu Chuang, Xiao Chen. 2017-03-30 17:01:15 -07:00
Mingliang Liu
e5f0622a6f HDFS-11592. Closing a file has a wasteful preconditions in NameNode. Contributed by Eric Badger 2017-03-30 15:44:21 -07:00
Wei-Chiu Chuang
8c591b8d19 HDFS-10974. Document replication factor for EC files. Contributed by Yiqun Lin. 2017-03-30 11:16:05 -07:00
Andrew Wang
4966a6e26e HADOOP-14223. Extend FileStatus#toString() to include details like Erasure Coding and Encryption. Contributed by Manoj Govindassamy. 2017-03-29 14:37:21 -07:00
Daniel Templeton
15e3873dc3 HDFS-11571. Typo in DataStorage exception message (Contributed by Anna Budai via Daniel Templeton) 2017-03-29 10:56:36 -07:00
Rakesh Radhakrishnan
84d787b9d5 HDFS-11541. Call RawErasureEncoder and RawErasureDecoder release() methods. Contributed by SammiChen. 2017-03-29 11:41:48 +05:30
Yiqun Lin
6b09336438 HDFS-11577. Combine the old and the new chooseRandom for better performance. Contributed by Chen Liang. 2017-03-28 23:02:07 +08:00
Masatake Iwasaki
64ea62c1cc HDFS-11486. Client close() should not fail fast if the last block is being decommissioned. Contributed by Wei-Chiu Chuang and Yiqun Lin. 2017-03-28 09:13:44 +09:00
Wei-Chiu Chuang
46d37a65cf HDFS-10506. Addendum patch to include missing changes. Contributed by Akira Ajisaka. 2017-03-27 05:23:45 -07:00
Yiqun Lin
96e2ab8144 HDFS-11555. Fix typos in class OfflineImageReconstructor. Contributed by Yiqun Lin. 2017-03-27 19:23:37 +08:00
Tsuyoshi Ozawa
84ddedc0b2 HADOOP-10101. Update guava dependency to the latest version. (ozawa) 2017-03-25 10:06:52 +09:00
Hanisha Koneru
1f66524432 HDFS-11570. Unit test for NameNodeStatusMXBean. Contributed by Hanisha Koneru. 2017-03-24 14:44:25 -07:00
Xiaobing Zhou
1168ece596 HDFS-11534. Add counters for number of blocks in pending IBR. Contributed by Xiaobing Zhou. 2017-03-24 14:33:44 -07:00
Andrew Wang
332a997e10 HDFS-11170. Add builder-based create API to FileSystem. Contributed by SammiChen and Wei Zhou. 2017-03-24 12:56:46 -07:00
Andrew Wang
52b00600df HADOOP-13715. Add isErasureCoded() API to FileStatus class. Contributed by Manoj Govindassamy. 2017-03-24 11:44:46 -07:00
Ravi Prakash
d4f73e7e27 HDFS-11574. Spelling mistakes in the Java source. Contributed by Hu Xiaodong. 2017-03-24 09:38:17 -07:00
Yiqun Lin
3b908f71c5 HDFS-11358. DiskBalancer: Report command supports reading nodes from host file. Contributed by Yiqun Lin. 2017-03-21 17:44:17 +08:00
Arpit Agarwal
e7c8da614c HDFS-11545. Propagate DataNode's slow disks info to the NameNode via Heartbeats. Contributed by Hanisha Koneru. 2017-03-20 21:54:58 -07:00
Chris Douglas
b104f3a282 HDFS-6648. Order of namenodes in ConfiguredFailoverProxyProvider is undefined. Contributed by Inigo Goiri 2017-03-20 17:15:13 -07:00
Arpit Agarwal
ffa160ddb8 HDFS-11547. Add logs for slow BlockReceiver while writing data to disk. Contributed by Xiaobing Zhou. 2017-03-17 19:02:24 -07:00
Hanisha Koneru
7f8e928400 HDFS-11517. Expose slow disks via DataNode JMX. Contributed by Hanisha Koneru 2017-03-17 15:42:25 -07:00
Andrew Wang
92ea6d74ec HDFS-11516. Admin command line should print message to stderr in failure case. Contributed by Kai Sasaki. 2017-03-17 11:26:02 -07:00
Andrew Wang
4812518b23 HDFS-10530. BlockManager reconstruction work scheduling should correctly adhere to EC block placement policy. Contributed by Manoj Govindassamy and Rui Gao. 2017-03-16 15:07:38 -07:00
Kihwal Lee
ba62b50eba HDFS-10601. Improve log message to include hostname when the NameNode is in safemode. Contributed by Kuhu Shukla. 2017-03-16 10:54:59 -05:00
Hanisha Koneru
d69a82c89c HDFS-11511. Support Timeout when checking single disk. Contributed by Hanisha Koneru. 2017-03-15 18:01:45 -07:00
Chen Liang
615ac09499 HDFS-11419. DFSTopologyNodeImpl#chooseRandom optimizations. Contributed by Chen Liang. 2017-03-15 12:28:22 -07:00