Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
217 commits
Select commit Hold shift + click to select a range
f166e67
HDFS-7347. Configurable erasure coding policy for individual files an…
vinayakumarb Nov 6, 2014
bc2833b
HDFS-7339. Allocating and persisting block groups in NameNode. Contri…
zhe-thoughts Jan 31, 2015
0c1da5a
HDFS-7652. Process block reports for erasure coded blocks. Contribute…
zhe-thoughts Feb 9, 2015
ec48013
Fix Compilation Error in TestAddBlockgroup.java after the merge
Jing9 Feb 9, 2015
e50bcea
HADOOP-11514. Raw Erasure Coder API for concrete encoding and decodin…
umamaheswararao Jan 29, 2015
9f19eb9
HADOOP-11534. Minor improvements for raw erasure coders ( Contributed…
Feb 2, 2015
b29f3bd
HADOOP-11541. Raw XOR coder
Feb 7, 2015
ba93714
HDFS-7716. Erasure Coding: extend BlockInfo to handle EC info. Contri…
Jing9 Feb 11, 2015
dae27f6
HADOOP-11542. Raw Reed-Solomon coder in pure Java. Contributed by Kai…
Feb 12, 2015
9f2f583
HDFS-7749. Erasure Coding: Add striped block support in INodeFile. Co…
Jing9 Feb 26, 2015
9af1f47
Addendum fix for HDFS-7749 to be compatible with HDFS-7993
zhe-thoughts Apr 27, 2015
1e1e930
HDFS-7837. Erasure Coding: allocate and persist striped blocks in Nam…
Jing9 Mar 2, 2015
c0945a8
HADOOP-11643. Define EC schema API for ErasureCodec. Contributed by K…
Mar 5, 2015
39a0a85
HDFS-7872. Erasure Coding: INodeFile.dumpTreeRecursively() supports t…
Jing9 Mar 6, 2015
8f89d74
HADOOP-11646. Erasure Coder API for encoding and decoding of block gr…
vinayakumarb Mar 9, 2015
f05c212
HDFS-7853. Erasure coding: extend LocatedBlocks to support reading fr…
Jing9 Mar 9, 2015
292e367
HADOOP-11705. Make erasure coder configurable. Contributed by Kai Zheng
Mar 12, 2015
68caf87
Fixed a compiling issue introduced by HADOOP-11705.
Mar 12, 2015
1158588
HDFS-7936. Erasure coding: resolving conflicts when merging with HDFS…
Jing9 Mar 16, 2015
26773d9
HDFS-7826. Erasure Coding: Update INodeFile quota computation for str…
Jing9 Mar 16, 2015
a38a37c
HDFS-7912. Erasure Coding: track BlockInfo instead of Block in UnderR…
Jing9 Mar 17, 2015
c3bc083
HADOOP-11706 Refine a little bit erasure coder API
Mar 18, 2015
e3dbfeb
Updated CHANGES-HDFS-EC-7285.txt accordingly
Mar 18, 2015
57a84c0
HDFS-7369. Erasure coding: distribute recovery work for striped block…
zhe-thoughts Mar 18, 2015
90d332d
HADOOP-11707. Add factory to create raw erasure coder. Contributed b…
Mar 20, 2015
df29724
HADOOP-11647. Reed-Solomon ErasureCoder. Contributed by Kai Zheng
Mar 20, 2015
544f75d
HDFS-7936. Erasure coding: resolving conflicts when merging with HDFS…
zhe-thoughts Mar 23, 2015
46dac35
HDFS-7864. Erasure Coding: Update safemode calculation for striped bl…
Jing9 Mar 23, 2015
d0d75a8
HDFS-7827. Erasure Coding: support striped blocks in non-protobuf fsi…
Jing9 Mar 23, 2015
ea2e60f
HDFS-7936. Erasure coding: resolving conflicts when merging with HDFS…
zhe-thoughts Mar 24, 2015
9d1175b
HDFS-7716. Add a test for BlockGroup support in FSImage. Contributed…
Mar 25, 2015
d9af36b
HADOOP-11664. Loading predefined EC schemas from configuration. Contr…
zhe-thoughts Mar 27, 2015
97378e4
HDFS-7936. Erasure coding: resolving conflicts in the branch when mer…
zhe-thoughts Mar 30, 2015
abf833a
HDFS-7907. Erasure Coding: track invalid, corrupt, and under-recovery…
Jing9 Mar 30, 2015
cd655ee
HDFS-8005. Erasure Coding: simplify striped block recovery work compu…
Jing9 Mar 30, 2015
af8eaac
HDFS-8027. Erasure Coding: Update CHANGES-HDFS-7285.txt with branch c…
Mar 31, 2015
9edc73d
HDFS-7617. Add unit tests for editlog transactions for EC. Contribute…
zhe-thoughts Mar 31, 2015
98ea3ec
HADOOP-11782 Correct two thrown messages in ECSchema class. Contribut…
Apr 1, 2015
578019d
HDFS-7936. Erasure coding: resolving conflicts in the branch when mer…
zhe-thoughts Apr 2, 2015
1af8c14
HDFS-7839. Erasure coding: implement facilities in NameNode to create…
zhe-thoughts Apr 3, 2015
e54a74b
HADOOP-11740. Combine erasure encoder and decoder interfaces. Contrib…
zhe-thoughts Apr 3, 2015
c243319
HDFS-7936. Erasure coding: resolving conflicts in the branch when mer…
zhe-thoughts Apr 6, 2015
146ce7a
HDFS-7969. Erasure coding: NameNode support for lease recovery of str…
zhe-thoughts Apr 6, 2015
17f7cdc
HADOOP-11805 Better to rename some raw erasure coders. Contributed by…
Apr 7, 2015
d43102d
Updated CHANGES-HDFS-EC-7285.txt
Apr 7, 2015
d25ca09
HADOOP-11782 Correct two thrown messages in ECSchema class. Contribut…
vinayakumarb Apr 7, 2015
aac73c2
HADOOP-11740. Combine erasure encoder and decoder interfaces. Contrib…
vinayakumarb Apr 7, 2015
99502cb
HADOOP-11645. Erasure Codec API covering the essential aspects for an…
vinayakumarb Apr 7, 2015
91c741a
HDFS-7782. Erasure coding: pread from files in striped layout. Contri…
zhe-thoughts Apr 7, 2015
bff5939
HDFS-7782. Erasure coding: pread from files in striped layout. Contri…
zhe-thoughts Apr 7, 2015
16484f0
HDFS-8023. Erasure Coding: retrieve eraure coding schema for a file f…
vinayakumarb Apr 8, 2015
2ca3e38
HDFS-8023. Erasure Coding: retrieve eraure coding schema for a file f…
vinayakumarb Apr 8, 2015
1a37b0f
HDFS-8074 Define a system-wide default EC schema. Contributed by Kai …
Apr 8, 2015
c4a0d88
HDFS-8104 Make hard-coded values consistent with the system default s…
Apr 9, 2015
971bd5e
HADOOP-11818 Minor improvements for erasurecode classes. Contributed …
Apr 9, 2015
4d0bc72
HDFS-8077. Erasure coding: fix bugs in EC zone and symlinks. Contribu…
Jing9 Apr 10, 2015
4970f2a
HDFS-7889 Subclass DFSOutputStream to support writing striping layout…
Apr 10, 2015
f53e402
HDFS-8090. Erasure Coding: Add RPC to client-namenode to list all ECS…
vinayakumarb Apr 10, 2015
35797b0
HDFS-7936. Erasure coding: resolving conflicts in the branch when mer…
zhe-thoughts Apr 13, 2015
a32c4dc
HDFS-8122. Erasure Coding: Support specifying ECSchema during creatio…
zhe-thoughts Apr 13, 2015
3b56a5a
HDFS-8114. Erasure coding: Add auditlog FSNamesystem#createErasureCod…
zhe-thoughts Apr 13, 2015
04c23d9
HDFS-8123. Erasure Coding: Better to move EC related proto messages t…
vinayakumarb Apr 15, 2015
2c27780
HDFS-8027. Erasure Coding: Update CHANGES-HDFS-7285.txt with branch c…
vinayakumarb Apr 15, 2015
ceb3d1c
HDFS-7349. Support DFS command for the EC encoding (Contributed by Vi…
vinayakumarb Apr 15, 2015
5e8837d
HDFS-8120. Erasure coding: created util class to analyze striped bloc…
Jing9 Apr 15, 2015
4c039b0
HDFS-7994. Detect if resevered EC Block ID is already used during nam…
Apr 16, 2015
64f8f0a
HDFS-8167. BlockManager.addBlockCollectionWithCheck should check if t…
zhe-thoughts Apr 17, 2015
909632d
HADOOP-11841. Remove unused ecschema-def.xml files.
Apr 17, 2015
cd458c3
HDFS-8166. DFSStripedOutputStream should not create empty blocks. Con…
Jing9 Apr 18, 2015
ab76e1f
HDFS-7937. Erasure Coding: INodeFile quota computation unit tests. Co…
Jing9 Apr 18, 2015
f6e1160
HDFS-8145. Fix the editlog corruption exposed by failed TestAddStripe…
Jing9 Apr 18, 2015
a1c9425
HDFS-8146. Protobuf changes for BlockECRecoveryCommand and its fields…
vinayakumarb Apr 18, 2015
dfba46a
HDFS-8181. createErasureCodingZone sets retryCache state as false alw…
vinayakumarb Apr 20, 2015
922631f
HDFS-8188. Erasure coding: refactor client-related code to sync with …
zhe-thoughts Apr 20, 2015
e107886
HDFS-8190. StripedBlockUtil.getInternalBlockLength may have overflow …
Apr 21, 2015
e9d85bb
HDFS-8216. TestDFSStripedOutputStream should use BlockReaderTestUtil …
zhe-thoughts Apr 22, 2015
2f11109
HDFS-8212. DistributedFileSystem.createErasureCodingZone should pass …
zhe-thoughts Apr 22, 2015
014d867
HDFS-8024. Erasure Coding: ECworker frame, basics, bootstraping and c…
umamaheswararao Apr 22, 2015
e8df258
HDFS-8156. Add/implement necessary APIs even we just have the system …
zhe-thoughts Apr 22, 2015
fcd54ec
HDFS-8136. Client gets and uses EC schema when reads and writes a str…
Apr 23, 2015
eb612b0
HDFS-8233. Fix DFSStripedOutputStream#getCurrentBlockGroupBytes when …
Jing9 Apr 23, 2015
3f2c693
HDFS-8223. Should calculate checksum for parity blocks in DFSStripedO…
Jing9 Apr 23, 2015
f5d4a95
HDFS-8228. Erasure Coding: SequentialBlockGroupIdGenerator#nextValue …
zhe-thoughts Apr 24, 2015
89d3378
HDFS-8033. Erasure coding: stateful (non-positional) read from files …
zhe-thoughts Apr 25, 2015
f9eb95c
HDFS-8230. Erasure Coding: Ignore DatanodeProtocol#DNA_ERASURE_CODING…
vinayakumarb Apr 28, 2015
5eb17e5
HDFS-8189. ClientProtocol#createErasureCodingZone API was wrongly ann…
vinayakumarb Apr 28, 2015
9593776
HDFS-8235. Erasure Coding: Create DFSStripedInputStream in DFSClient#…
Jing9 Apr 28, 2015
1a8139e
Fix merge conflicts.
Jing9 Apr 29, 2015
b00c663
HDFS-8272. Erasure Coding: simplify the retry logic in DFSStripedInpu…
zhe-thoughts Apr 29, 2015
f062828
HDFS-8282. Erasure coding: move striped reading logic to StripedBlock…
zhe-thoughts Apr 30, 2015
1a31f1c
HDFS-8183. Erasure Coding: Improve DFSStripedOutputStream closing of …
zhe-thoughts Apr 30, 2015
5059958
HDFS-8308. Erasure Coding: NameNode may get blocked in waitForLoading…
Jing9 May 1, 2015
77d94dd
HDFS-7949. WebImageViewer need support file size calculation with str…
zhe-thoughts May 1, 2015
ea6c66e
HDFS-8316. Erasure coding: refactor EC constants to be consistent wit…
Jing9 May 4, 2015
6dea01f
HDFS-8281. Erasure Coding: implement parallel stateful reading for st…
Jing9 May 4, 2015
436c148
HDFS-8137. Send the EC schema to DataNode via EC encoding/recovering …
umamaheswararao May 5, 2015
4392325
HDFS-8242. Erasure Coding: XML based end-to-end test for ECCli comman…
vinayakumarb May 5, 2015
e849be2
HDFS-8324. Add trace info to DFSClient#getErasureCodingZoneInfo(..). …
umamaheswararao May 5, 2015
220ca96
HDFS-7672. Handle write failure for stripping blocks and refactor the…
May 5, 2015
6616de2
HDFS-7348. Erasure Coding: DataNode reconstruct striped blocks. Contr…
zhe-thoughts May 5, 2015
cea46f7
HDFS-8334. Erasure coding: rename DFSStripedInputStream related test …
zhe-thoughts May 6, 2015
ac97edd
HDFS-8129. Erasure Coding: Maintain consistent naming for Erasure Cod…
umamaheswararao May 7, 2015
a17cedb
HDFS-8203. Erasure Coding: Seek and other Ops in DFSStripedInputStrea…
Jing9 May 7, 2015
9da9275
HDFS-8289. Erasure Coding: add ECSchema to HdfsFileStatus. Contribute…
Jing9 May 7, 2015
51ea117
HDFS-8355. Erasure Coding: Refactor BlockInfo and BlockInfoUnderConst…
Jing9 May 8, 2015
6bacaa9
HDFS-7936. Erasure coding: resolving conflicts in the branch when mer…
zhe-thoughts May 11, 2015
8d3030f
HDFS-7678. Erasure coding: DFSInputStream with decode functionality (…
zhe-thoughts May 12, 2015
97a2396
HDFS-8372. Erasure coding: compute storage type quotas for striped fi…
Jing9 May 12, 2015
54d2827
HDFS-8368. Erasure Coding: DFS opening a non-existent file need to be…
zhe-thoughts May 12, 2015
8da9e18
HDFS-8363. Erasure Coding: DFSStripedInputStream#seekToNewSource. (yliu)
y-liu May 13, 2015
9798065
HDFS-8195. Erasure coding: Fix file quota change when we complete/com…
zhe-thoughts May 13, 2015
bba15e0
HDFS-8364. Erasure coding: fix some minor bugs in EC CLI (Contributed…
vinayakumarb May 13, 2015
c99c337
HDFS-8391. NN should consider current EC tasks handling count from DN…
umamaheswararao May 14, 2015
d8ea443
Merge HDFS-8394 from trunk: Move getAdditionalBlock() and related fun…
Jing9 May 16, 2015
c9103e9
HDFS-8367 BlockInfoStriped uses EC schema. Contributed by Kai Sasaki
May 18, 2015
a919726
HDFS-8352. Erasure Coding: test webhdfs read write stripe file. (walt…
May 18, 2015
9c7a78c
HADOOP-11921. Enhance tests for erasure coders. Contributed by Kai Zh…
zhe-thoughts May 18, 2015
09c3a37
HADOOP-11920. Refactor some codes for erasure coders. Contributed by …
zhe-thoughts May 18, 2015
b64f674
HADOOP-11566. Add tests and fix for erasure coders to recover erased …
zhe-thoughts May 18, 2015
343c0e7
HADOOP-11938. Enhance ByteBuffer version encode/decode API of raw era…
zhe-thoughts May 18, 2015
6c310db
HDFS-8417. Erasure Coding: Pread failed to read data starting from no…
Jing9 May 18, 2015
b008348
HDFS-8418. Fix the isNeededReplication calculation for Striped block …
Jing9 May 19, 2015
7434c44
HDFS-8320. Erasure coding: consolidate striping-related terminologies…
zhe-thoughts May 19, 2015
8c95673
HDFS-8366. Erasure Coding: Make the timeout parameter of polling bloc…
May 19, 2015
9145809
HDFS-8378. Erasure Coding: Few improvements for the erasure coding wo…
May 19, 2015
91c81fd
HDFS-8375. Add cellSize as an XAttr to ECZone. Contributed by Vinayak…
zhe-thoughts May 19, 2015
47ef869
HDFS-8428. Erasure Coding: Fix the NullPointerException when deleting…
May 20, 2015
45db1a0
HDFS-8323. Bump GenerationStamp for write faliure in DFSStripedOutput…
Jing9 May 20, 2015
744ef17
HDFS-8427. Remove dataBlockNum and parityBlockNum from BlockInfoStrip…
Jing9 May 20, 2015
e53fa76
HDFS-8186. Erasure coding: Make block placement policy for EC file co…
May 20, 2015
7af05a3
HDFS-8294. Erasure Coding: Fix Findbug warnings present in erasure co…
May 21, 2015
3d734df
HDFS-8441. Erasure Coding: make condition check earlier for setReplic…
May 22, 2015
4ae32ab
HADOOP-12013 Generate fixed data to perform erasure coder test. Contr…
May 22, 2015
0ed92e5
HDFS-7768. Change fsck to support EC files. Contributed by Takanobu …
May 24, 2015
b30e96b
HDFS-8382 Remove chunkSize and initialize from erasure coder. Contrib…
May 25, 2015
9a18598
HDFS-8408. Revisit and refactor ErasureCodingInfo (Contributed by Vin…
vinayakumarb May 25, 2015
80c56c2
HDFS-8408. Revisit and refactor ErasureCodingInfo (Contributed by Vin…
vinayakumarb May 25, 2015
5a391e1
HADOOP-12029. Remove chunkSize from ECSchema as its not required for …
vinayakumarb May 25, 2015
4ad4848
HADOOP-11847 Enhance raw coder allowing to read least required inputs…
May 26, 2015
c9e0268
Addendum fix for HDFS-7912.
May 26, 2015
1299357
HDFS-8479. Erasure coding: fix striping related logic in FSDirWriteFi…
Jing9 May 26, 2015
014bd32
HDFS-8481. Erasure coding: remove workarounds in client side stripped…
Jun 1, 2015
2d847e7
HDFS-8444. Erasure Coding: fix cannot rename a zone dir (Contributed …
vinayakumarb Jun 2, 2015
0799e1e
HADOOP-12011 Allow to dump verbose information to ease debugging in r…
Jun 2, 2015
9b54e66
HDFS-8336. Expose some administrative erasure coding operations to Hd…
vinayakumarb Jun 2, 2015
71329e8
HDFS-8517. Fix a decoding issue in stripped block recovering in clien…
Jing9 Jun 2, 2015
5f15084
HDFS-8453. Erasure coding: properly handle start offset for internal …
Jing9 Jun 2, 2015
673280d
HDFS-7621. Erasure Coding: update the Balancer/Mover data migration l…
Jun 3, 2015
a31eada
HDFS-8328. Follow-on to update decode for DataNode striped blocks rec…
y-liu Jun 4, 2015
c0929ab
HDFS-8319. Erasure Coding: support decoding for stateful read. Contri…
zhe-thoughts Jun 5, 2015
2eee19c
HDFS-8460. Erasure Coding: stateful read result doesn't match data oc…
Jun 5, 2015
c41b02c
HADOOP-12065 Using more meaningful keys in EC schema. Contributed by …
Jun 8, 2015
e299fe8
HDFS-8557 Allow to configure RS and XOR raw coders. Contributed by Ka…
Jun 10, 2015
c5d4652
HDFS-8556. Erasure Coding: Fix usage of 'createZone' (Contributed by …
vinayakumarb Jun 10, 2015
b7d6ea8
HDFS-8571. Fix TestErasureCodingCli test. Contributed by Vinayakumar B.
Jun 11, 2015
98d3407
HDFS-8450. Erasure Coding: Consolidate erasure coding zone related im…
vinayakumarb Jun 11, 2015
683332b
HDFS-8585. Erasure Coding: Remove dataBlockNum and parityBlockNum fro…
Jing9 Jun 12, 2015
49d5cff
HDFS-8559. Erasure Coding: fix non-protobuf fsimage for striped block…
y-liu Jun 14, 2015
c12a974
HDFS-8580. Erasure coding: Persist cellSize in BlockInfoStriped and S…
Jing9 Jun 17, 2015
62c5a87
HDFS-8466. Refactor BlockInfoContiguous and fix NPE in TestBlockInfo#…
vinayakumarb Jun 18, 2015
05c6968
HDFS-8466. Refactor BlockInfoContiguous and fix NPE in TestBlockInfo#…
vinayakumarb Jun 18, 2015
3682e01
HDFS-8254. Avoid assigning a leading streamer in StripedDataStreamer …
Jing9 Jun 19, 2015
448cb7d
HDFS-8543. Erasure Coding: processOverReplicatedBlock() handles strip…
Jing9 Jun 19, 2015
8c423a8
HDFS-8602. Erasure Coding: Client can't read(decode) the EC files whi…
Jing9 Jun 19, 2015
d920cda
HDFS-8567. Erasure Coding: SafeMode handles file smaller than a full …
Jing9 Jun 24, 2015
093907d
HDFS-8253. DFSStripedOutputStream.closeThreads releases cellBuffers m…
Jun 24, 2015
0b7af27
HDFS-8468. 2 RPC calls for every file read in DFSClient#open(..) resu…
vinayakumarb Jun 30, 2015
ee01a09
HDFS-8684. Erasure Coding: fix some block number calculation for stri…
y-liu Jul 6, 2015
2c494a8
HDFS-8461. Erasure coding: fix priority level of UnderReplicatedBlock…
Jing9 Jul 6, 2015
42a1d0d
Addendum fix for HDFS-8323 (adding back a mistakenly deleted line).
Jul 9, 2015
48f3830
HDFS-8719. Erasure Coding: client generates too many small packets wh…
Jul 9, 2015
2470a7b
HDFS-8563. Erasure Coding: fsck handles file smaller than a full stri…
Jing9 Jul 9, 2015
e692c7d
HDFS-8484. Erasure coding: Two contiguous blocks occupy IDs belong to…
Jing9 Jul 9, 2015
f4098df
HDFS-8744. Erasure Coding: the number of chunks in packet is not upda…
libo-intel Jul 13, 2015
b1e6429
HDFS-8669. Erasure Coding: handle missing internal block locations in…
Jing9 Jul 13, 2015
6ff957b
HDFS-8702. Erasure coding: update BlockManager.blockHasEnoughRacks(..…
Jing9 Jul 14, 2015
0a93712
HDFS-8734. Erasure Coding: fix one cell need two packets. Contributed…
Jing9 Jul 14, 2015
f32d9a1
HDFS-8619. Erasure Coding: revisit replica counting for striped block…
y-liu Jul 15, 2015
7e091de
HDFS-8058. Erasure coding: use BlockInfo[] for both striped and conti…
Jul 15, 2015
4fdd9ab
HDFS-8787. Erasure coding: rename BlockInfoContiguousUC and BlockInfo…
Jul 16, 2015
06394e3
HDFS-8433. Erasure coding: set blockToken in LocatedStripedBlock. Con…
Jul 20, 2015
29495cb
HADOOP-12060. Fix ByteBuffer usage for raw erasure coders. Contribute…
Jing9 Jul 20, 2015
f8f7a92
HDFS-8760. Erasure Coding: reuse BlockReader when reading the same bl…
Jing9 Jul 21, 2015
5956d23
HDFS-8781. Erasure Coding: Correctly handle BlockManager#InvalidateBl…
Jing9 Jul 22, 2015
c2c26e6
HDFS-8813. Erasure Coding: Client no need to decode missing parity bl…
Jing9 Jul 23, 2015
95b499a
HDFS-8798. Erasure Coding: fix DFSStripedInputStream/DFSStripedOutput…
Jing9 Jul 24, 2015
4a72be6
HDFS-8769. Erasure coding: unit test for SequentialBlockGroupIdGenera…
Jul 25, 2015
ba90c02
HDFS-8202. Improve end to end stirpping file test to add erasure reco…
Jul 31, 2015
9312b16
HDFS-8804. Erasure Coding: use DirectBufferPool in DFSStripedInputStr…
Jing9 Aug 4, 2015
4de4821
HDFS-8399. Erasure Coding: unit test the behaviour of BlockManager re…
Aug 4, 2015
8799363
HDFS-8857. Erasure Coding: Fix ArrayIndexOutOfBoundsException in Test…
libo-intel Aug 6, 2015
fbf7e81
HDFS-8827. Erasure Coding: Fix NPE when NameNode processes over-repli…
Jing9 Aug 7, 2015
1d37a88
HDFS-8854. Erasure coding: add ECPolicy to replace schema+cellSize in…
Aug 13, 2015
b57c9a3
HDFS-8220. Erasure Coding: StripedDataStreamer fails to handle the bl…
Aug 14, 2015
6b6a63b
Merge commit '456e901a4c5c639267ee87b8e5f1319f256d20c2' (HDFS-6407. A…
Aug 20, 2015
067ec8c
HDFS-8838. Erasure Coding: Tolerate datanode failures in DFSStripedOu…
Aug 27, 2015
164cbe6
HDFS-8909. Erasure coding: update BlockInfoContiguousUC and BlockInfo…
Aug 27, 2015
ab56fcd
Merge remote-tracking branch 'apache/trunk' into HDFS-7285
Aug 27, 2015
53358fe
Merge remote-tracking branch 'apache/trunk' into HDFS-7285
Sep 1, 2015
ddf4e78
HDFS-8937. Erasure coding: do not throw exception when setting replic…
Jing9 Sep 2, 2015
60bd765
HDFS-8978. Erasure coding: fix 2 failed tests of DFSStripedOutputStre…
Jing9 Sep 3, 2015
f62237b
HDFS-8833. Erasure coding: store EC schema and cell size in INodeFile…
zhe-thoughts Sep 10, 2015
96d6b51
HDFS-8853. Erasure Coding: Provide ECSchema validation when setting E…
Sep 10, 2015
ce02b55
HDFS-8975. Erasure coding : Fix random failure in TestSafeModeWithStr…
vinayakumarb Sep 12, 2015
c2ebab6
HDFS-7351. Document the HDFS Erasure Coding feature. Contributed by U…
umbrant Sep 15, 2015
ced438a
HDFS-8899. Erasure Coding: use threadpool for EC recovery tasks on Da…
Sep 15, 2015
e36129b
HDFS-9088. Cleanup erasure coding documentation. Contributed by Andre…
Sep 17, 2015
607bda2
HDFS-9097. Erasure coding: update EC command "-s" flag to "-p" when s…
Sep 17, 2015
82a88b9
HDFS-9086. Rename dfs.datanode.stripedread.threshold.millis to dfs.da…
Sep 18, 2015
c457095
HDFS-8550. Erasure Coding: Fix FindBugs Multithreaded correctness War…
Sep 18, 2015
b762199
HDFS-9113. ErasureCodingWorker#processErasureCodingTasks should not f…
umamaheswararao Sep 20, 2015
a9e6681
HDFS-9091. Erasure Coding: Provide DistributedFilesystem API to getAl…
Sep 21, 2015
1080c37
Merge remote-tracking branch 'apache/trunk' into HDFS-7285
Sep 21, 2015
7bff8ca
HDFS-8920. Erasure Coding: when recovering lost blocks, logs can be t…
Sep 23, 2015
c09dc25
HDFS-8882. Erasure Coding: Use datablocks, parityblocks and cell size…
Sep 23, 2015
6419900
HDFS-9040. Erasure coding: coordinate data streamers in DFSStripedOut…
Jing9 Sep 28, 2015
8fd5520
Merge remote-tracking branch 'apache/trunk' into HDFS-7285
Sep 29, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions hadoop-common-project/hadoop-common/CHANGES-HDFS-EC-7285.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
BREAKDOWN OF HADOOP-11264 SUBTASKS AND RELATED JIRAS (Common part of HDFS-7285)

HADOOP-11514. Raw Erasure Coder API for concrete encoding and decoding
(Kai Zheng via umamahesh)

HADOOP-11534. Minor improvements for raw erasure coders
( Kai Zheng via vinayakumarb )

HADOOP-11541. Raw XOR coder
( Kai Zheng )

HADOOP-11542. Raw Reed-Solomon coder in pure Java. Contributed by Kai Zheng
( Kai Zheng )

HADOOP-11643. Define EC schema API for ErasureCodec. Contributed by Kai Zheng
( Kai Zheng )

HADOOP-11646. Erasure Coder API for encoding and decoding of block group
( Kai Zheng via vinayakumarb )

HADOOP-11705. Make erasure coder configurable. Contributed by Kai Zheng
( Kai Zheng )

HADOOP-11706. Refine a little bit erasure coder API. Contributed by Kai Zheng
( Kai Zheng )

HADOOP-11707. Add factory to create raw erasure coder. Contributed by Kai Zheng
( Kai Zheng )

HADOOP-11647. Reed-Solomon ErasureCoder. Contributed by Kai Zheng
( Kai Zheng )

HADOOP-11782 Correct two thrown messages in ECSchema class. Contributed by Xinwei Qin
( Xinwei Qin via Kai Zheng )

HADOOP-11740. Combine erasure encoder and decoder interfaces (Zhe Zhang)

HADOOP-11805 Better to rename some raw erasure coders. Contributed by Kai Zheng
( Kai Zheng )

HADOOP-11645. Erasure Codec API covering the essential aspects for an erasure code
( Kai Zheng via vinayakumarb )

HADOOP-11818. Minor improvements for erasurecode classes. (Rakesh R via Kai Zheng)

HADOOP-11841. Remove unused ecschema-def.xml files. (szetszwo)

HADOOP-11921. Enhance tests for erasure coders. (Kai Zheng via Zhe Zhang)

HADOOP-11920. Refactor some codes for erasure coders. (Kai Zheng via Zhe Zhang)

HADOOP-11566. Add tests and fix for erasure coders to recover erased parity
units. (Kai Zheng via Zhe Zhang)

HADOOP-11938. Enhance ByteBuffer version encode/decode API of raw erasure
coder. (Kai Zheng via Zhe Zhang)

HADOOP-12013. Generate fixed data to perform erasure coder test. (Kai Zheng)

HADOOP-12029. Remove chunkSize from ECSchema as its not required for coders
(vinayakumarb)

HADOOP-11847. Enhance raw coder allowing to read least required inputs in decoding.
(Kai Zheng)

HADOOP-12011. Allow to dump verbose information to ease debugging in raw erasure coders
(Kai Zheng)

HADOOP-12065. Using more meaningful keys in EC schema. (Kai Zheng)

HDFS-8557. Allow to configure RS and XOR raw coders (Kai Zheng)

HADOOP-12060. Fix ByteBuffer usage for raw erasure coders. (Kai Zheng via
jing9)
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,21 @@ public class CommonConfigurationKeys extends CommonConfigurationKeysPublic {
public static final boolean IO_COMPRESSION_CODEC_LZ4_USELZ4HC_DEFAULT =
false;

/**
* Erasure Coding configuration family
*/

/** Supported erasure codec classes */
public static final String IO_ERASURECODE_CODECS_KEY = "io.erasurecode.codecs";

/** Raw coder factory for the RS codec. */
public static final String IO_ERASURECODE_CODEC_RS_RAWCODER_KEY =
"io.erasurecode.codec.rs.rawcoder";

/** Raw coder factory for the XOR codec. */
public static final String IO_ERASURECODE_CODEC_XOR_RAWCODER_KEY =
"io.erasurecode.codec.xor.rawcoder";

/**
* Service Authorization
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,10 @@ protected int getChecksumSize() {
return sum.getChecksumSize();
}

protected DataChecksum getDataChecksum() {
return sum;
}

protected TraceScope createWriteTraceScope() {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ public Path getCurrentTrashDir() throws IOException {
return getTrash().getCurrentTrashDir();
}

protected String getUsagePrefix() {
return usagePrefix;
}

// NOTE: Usage/Help are inner classes to allow access to outer methods
// that access commandFactory

Expand Down Expand Up @@ -204,7 +208,7 @@ private void printInfo(PrintStream out, String cmd, boolean showHelp) {
}
} else {
// display help or usage for all commands
out.println(usagePrefix);
out.println(getUsagePrefix());

// display list of short usages
ArrayList<Command> instances = new ArrayList<Command>();
Expand All @@ -228,7 +232,7 @@ private void printInfo(PrintStream out, String cmd, boolean showHelp) {
}

private void printInstanceUsage(PrintStream out, Command instance) {
out.println(usagePrefix + " " + instance.getUsage());
out.println(getUsagePrefix() + " " + instance.getUsage());
}

private void printInstanceHelp(PrintStream out, Command instance) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.io.erasurecode;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.io.erasurecode.rawcoder.*;

/**
* A codec & coder utility to help create raw coders conveniently.
*/
public final class CodecUtil {

private CodecUtil() { }

/**
* Create RS raw encoder according to configuration.
* @param conf configuration possibly with some items to configure the coder
* @param numDataUnits number of data units in a coding group
* @param numParityUnits number of parity units in a coding group
* @return raw encoder
*/
public static RawErasureEncoder createRSRawEncoder(
Configuration conf, int numDataUnits, int numParityUnits) {
RawErasureCoder rawCoder = createRawCoder(conf,
CommonConfigurationKeys.IO_ERASURECODE_CODEC_RS_RAWCODER_KEY,
true, numDataUnits, numParityUnits);
if (rawCoder == null) {
rawCoder = new RSRawEncoder(numDataUnits, numParityUnits);
}

return (RawErasureEncoder) rawCoder;
}

/**
* Create RS raw decoder according to configuration.
* @param conf configuration possibly with some items to configure the coder
* @param numDataUnits number of data units in a coding group
* @param numParityUnits number of parity units in a coding group
* @return raw decoder
*/
public static RawErasureDecoder createRSRawDecoder(
Configuration conf, int numDataUnits, int numParityUnits) {
RawErasureCoder rawCoder = createRawCoder(conf,
CommonConfigurationKeys.IO_ERASURECODE_CODEC_RS_RAWCODER_KEY,
false, numDataUnits, numParityUnits);
if (rawCoder == null) {
rawCoder = new RSRawDecoder(numDataUnits, numParityUnits);
}

return (RawErasureDecoder) rawCoder;
}

/**
* Create XOR raw encoder according to configuration.
* @param conf configuration possibly with some items to configure the coder
* @param numDataUnits number of data units in a coding group
* @param numParityUnits number of parity units in a coding group
* @return raw encoder
*/
public static RawErasureEncoder createXORRawEncoder(
Configuration conf, int numDataUnits, int numParityUnits) {
RawErasureCoder rawCoder = createRawCoder(conf,
CommonConfigurationKeys.IO_ERASURECODE_CODEC_XOR_RAWCODER_KEY,
true, numDataUnits, numParityUnits);
if (rawCoder == null) {
rawCoder = new XORRawEncoder(numDataUnits, numParityUnits);
}

return (RawErasureEncoder) rawCoder;
}

/**
* Create XOR raw decoder according to configuration.
* @param conf configuration possibly with some items to configure the coder
* @param numDataUnits number of data units in a coding group
* @param numParityUnits number of parity units in a coding group
* @return raw decoder
*/
public static RawErasureDecoder createXORRawDecoder(
Configuration conf, int numDataUnits, int numParityUnits) {
RawErasureCoder rawCoder = createRawCoder(conf,
CommonConfigurationKeys.IO_ERASURECODE_CODEC_XOR_RAWCODER_KEY,
false, numDataUnits, numParityUnits);
if (rawCoder == null) {
rawCoder = new XORRawDecoder(numDataUnits, numParityUnits);
}

return (RawErasureDecoder) rawCoder;
}

/**
* Create raw coder using specified conf and raw coder factory key.
* @param conf configuration possibly with some items to configure the coder
* @param rawCoderFactoryKey configuration key to find the raw coder factory
* @param isEncoder is encoder or not we're going to create
* @param numDataUnits number of data units in a coding group
* @param numParityUnits number of parity units in a coding group
* @return raw coder
*/
public static RawErasureCoder createRawCoder(Configuration conf,
String rawCoderFactoryKey, boolean isEncoder, int numDataUnits,
int numParityUnits) {

if (conf == null) {
return null;
}

Class<? extends RawErasureCoderFactory> factClass = null;
factClass = conf.getClass(rawCoderFactoryKey,
factClass, RawErasureCoderFactory.class);

if (factClass == null) {
return null;
}

RawErasureCoderFactory fact;
try {
fact = factClass.newInstance();
} catch (InstantiationException e) {
throw new RuntimeException("Failed to create raw coder", e);
} catch (IllegalAccessException e) {
throw new RuntimeException("Failed to create raw coder", e);
}

return isEncoder ? fact.createEncoder(numDataUnits, numParityUnits) :
fact.createDecoder(numDataUnits, numParityUnits);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.io.erasurecode;

/**
* A wrapper of block level data source/output that {@link ECChunk}s can be
* extracted from. For HDFS, it can be an HDFS block (250MB). Note it only cares
* about erasure coding specific logic thus avoids coupling with any HDFS block
* details. We can have something like HdfsBlock extend it.
*/
public class ECBlock {

private boolean isParity;
private boolean isErased;

/**
* A default constructor. isParity and isErased are false by default.
*/
public ECBlock() {
this(false, false);
}

/**
* A constructor specifying isParity and isErased.
* @param isParity is a parity block
* @param isErased is erased or not
*/
public ECBlock(boolean isParity, boolean isErased) {
this.isParity = isParity;
this.isErased = isErased;
}

/**
* Set true if it's for a parity block.
* @param isParity is parity or not
*/
public void setParity(boolean isParity) {
this.isParity = isParity;
}

/**
* Set true if the block is missing.
* @param isErased is erased or not
*/
public void setErased(boolean isErased) {
this.isErased = isErased;
}

/**
*
* @return true if it's parity block, otherwise false
*/
public boolean isParity() {
return isParity;
}

/**
*
* @return true if it's erased due to erasure, otherwise false
*/
public boolean isErased() {
return isErased;
}

}
Loading