Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
eeeb0b5
HDDS-6615. EC: Improve write performance by pipelining encode and flu…
kaijchen Nov 30, 2022
f1d651d
HDDS-7561. Improve setquota, clrquota CLI usage (#4016)
sumitagrawl Nov 30, 2022
627c90c
HDDS-7510. Recon: Return number of open containers in `/clusterState`…
ArafatKhan2198 Nov 30, 2022
4de7d56
HDDS-7394. OM RPC FairCallQueue decay decision metrics list caller us…
xBis7 Nov 30, 2022
9a5bfb4
HDDS-7568. Bump copyright year in NOTICE (#4018)
kaijchen Dec 1, 2022
45778cc
HDDS-7540. Let reusable workflow inherit secrets (#4012)
adoroszlai Dec 1, 2022
cb9caca
HDDS-7575. Correct showing of RATIS-THREE icon in Recon UI (#4026)
symious Dec 2, 2022
fe86f3b
HDDS-7567. Invalid entries in LICENSE (#4020)
kaijchen Dec 2, 2022
50a9d46
HDDS-7497. Fix mkdir does not update bucket's usedNamespace (#3969)
xichen01 Dec 2, 2022
be092c4
HDDS-7563. Add a handler for under replicated Ratis containers in RM …
siddhantsangwan Dec 2, 2022
984d26a
HDDS-7562. Suppress warning about long filenames in tar (#4017)
adoroszlai Dec 2, 2022
1119f9d
HDDS-7579. Use Netty 4.1.77 for consistency (#4031)
adoroszlai Dec 2, 2022
069e038
HDDS-7253. Fix exception when '/' in key name (#4038)
xichen01 Dec 4, 2022
47a5671
HDDS-7581. Fix update-jar-report for snapshot (#4034)
adoroszlai Dec 5, 2022
b532d2f
HDDS-7541. FSO recursive delete directory with hierarchy takes much t…
sumitagrawl Dec 5, 2022
ee2bd17
HDDS-7555. Upgrade Ratis to 2.4.2-8b8bdda-SNAPSHOT. (#4028)
ChenSammi Dec 5, 2022
a1bc9b8
HDDS-5704. Ozone URI syntax description in help content needs to ment…
Galsza Dec 5, 2022
037492f
HDDS-7472. EC: Fix NSSummaryEndpoint#getDiskUsage for EC keys (#3987)
DaveTeng0 Dec 5, 2022
721b025
HDDS-7526. Avoid overwriting replication config on existing bucket wh…
SaketaChalamchala Dec 6, 2022
fd3ddc4
HDDS-7599. Bump commons-net from 3.6 to 3.9.0 (#4046)
dependabot[bot] Dec 6, 2022
d50a9dd
HDDS-7550. Recon: UI sorting not functioning as expected (#4009)
smitajoshi12 Dec 6, 2022
565775c
HDDS-7464. Container Report at SCM is not coming separately for ICR a…
sumitagrawl Dec 7, 2022
a93ca68
HDDS-7597. Clarify SCM admin access denied message (#4056)
mladjan-gadzic Dec 8, 2022
8967738
HDDS-7492. Extend Placement Policy Interface to select mis-replicated…
swamirishi Dec 8, 2022
ebd1c74
HDDS-7615. Import Guava classes directly, not from hadoop-thirdparty …
ChenSammi Dec 9, 2022
77d386d
HDDS-7502. Recon: Show number of open containers on the Overview page…
smitajoshi12 Dec 9, 2022
6eed1ec
HDDS-7265. ScatterRackPolicy for Ratis pipeline provider container pl…
neils-dev Dec 9, 2022
845ceff
HDDS-7603. Enable Erasure coding and encryption flag on FileStatus fo…
swamirishi Dec 9, 2022
a9bb088
HDDS-7587. Update NOTICE and LICENSE in license/bin/ (#4039)
captainzmc Dec 10, 2022
e7567f8
HDDS-7617. Mark testECContainerRecoveryWithTimedOutRecovery as flaky
adoroszlai Dec 11, 2022
66e2773
HDDS-7572. Use keyManager and trustManager provided by keyStoreFactor…
ChenSammi Dec 12, 2022
76fb016
HDDS-7580. Add option to show key count in DBScanner. (#4033)
sadanand48 Dec 12, 2022
d0e6824
HDDS-7614. Add subscription mechanism to ContainerReplicaPendingOps (…
siddhantsangwan Dec 12, 2022
c9a0e2c
HDDS-7589. Unify multipart stream reading. (#4041)
Cyrill Dec 12, 2022
3fe4b4e
HDDS-7595. Add OmId in OM's UI (#4047)
symious Dec 12, 2022
e4a1993
HDDS-7618. Replication Commands should timeout if not processed on da…
sodonnel Dec 13, 2022
a6307d7
HDDS-7628. Disable flaky TestOzoneContainerWithTLS#testContainerDownload
adoroszlai Dec 13, 2022
4c529eb
HDDS-7591. Add a handler for over replicated Ratis containers to RM (…
siddhantsangwan Dec 13, 2022
d6f63bf
HDDS-7619. Update SCM term in datanode when command is received (#4072)
adoroszlai Dec 13, 2022
2279689
HDDS-7008. Mark TestOzoneHARatisLogParser as flaky (#4078)
adoroszlai Dec 14, 2022
551ef3c
HDDS-7640. EC: UNHEALTHY replicas not replaced by healthy replicas fr…
siddhantsangwan Dec 14, 2022
2fc94fa
HDDS-7582. ECUnderReplicationHandler does not consider pending adds w…
siddhantsangwan Dec 14, 2022
6064b84
HDDS-7503. CLI admin namespace -quota should return whole file system…
DaveTeng0 Dec 14, 2022
2ba8bb7
HDDS-7643. rocksdb iterator is not closed properly (#4084)
sumitagrawl Dec 15, 2022
a756937
HDDS-7627. EC: Bug fix for calculating Misreplication Count (#4088)
swamirishi Dec 15, 2022
5eead92
HDDS-7592. Recursive delete of directory multiple time impacts some d…
sumitagrawl Dec 15, 2022
fd0eddd
HDDS-7642. EC: Add debug logging to the Replication Manager check han…
sodonnel Dec 15, 2022
b347fde
HDDS-7628. Disable flaky TestOzoneContainerWithTLS#testCreateOzoneCon…
adoroszlai Dec 15, 2022
2d4bc6a
HDDS-7636. Remove hadoop security dependency in org.apache.hadoop.hdd…
ChenSammi Dec 15, 2022
1a5e698
HDDS-7521. EC: Misreplication Handler changes for Placement Policy in…
swamirishi Dec 15, 2022
1f7e9cc
HDDS-7620. Check term for async commands before processing (#4096)
adoroszlai Dec 15, 2022
517e3e1
HDDS-7371. Create properties for all dependency versions (#4059)
adoroszlai Dec 16, 2022
fdf219f
HDDS-5366. [Ozone-Streaming] Implement stream method to ContainerSta…
captainzmc Jun 23, 2021
0afbbc5
HDDS-5452. Add link method to ContainerStateMachine for Ratis streami…
kaijchen Jul 18, 2021
9eafca6
HDDS-5481. Fix stream() and link() method in ContainerStateMachine. (…
kaijchen Jul 22, 2021
da95602
HDDS-5480. [Ozone-Streaming] Client and server should support stream …
captainzmc Jul 28, 2021
82153a2
HDDS-5488. [Ozone-Streaming] Add a new BlockOutputStream/KeyOutputStr…
kaijchen Aug 12, 2021
5a294b7
HDDS-5599. [Ozone-Streaming]drop BufferPool and ChunkBuffer to avoid…
captainzmc Aug 25, 2021
ff59eeb
HDDS-5705. [Ozone-Streaming] Change ByteBufStreamOutput to ByteBuffer…
kaijchen Sep 8, 2021
f27388a
HDDS-5742. Avoid unnecessary Bytebuffer conversions (#2673)
captainzmc Sep 23, 2021
94f8789
HDDS-5486. [Ozone-Streaming] Streaming supports writing in Pipline mo…
captainzmc Sep 30, 2021
9d01c02
HDDS-5849. [Ozone-Streaming]Write exceptions occur after checksum is …
captainzmc Oct 12, 2021
122f96c
HDDS-5674.[Ozone-Streaming] Handle client retries on exception (#2701)
sadanand48 Oct 21, 2021
e063706
HDDS-5895. [Ozone-Streaming] Make raft.server.data-stream.client.pool…
captainzmc Oct 26, 2021
75efaae
HDDS-5763. Provide an Executor for each LocalStream in ContainerState…
szetszwo Nov 1, 2021
2e86e93
HDDS-5987. [Ozone-Streaming] Add XceiverClientRatis stream config (#2…
guohao-rosicky Nov 15, 2021
9a7edb0
HDDS-5961. [Ozone-Streaming] update the usage space of Containers in …
guohao-rosicky Nov 17, 2021
237e0af
HDDS-5879. [Ozone-Streaming] OzoneBucket add the createMultipartStrea…
guohao-rosicky Nov 19, 2021
95e317b
HDDS-5743. [Ozone-Streaming] Add option to write files via streaming …
sadanand48 Nov 19, 2021
9a2de9a
HDDS-5851. [Ozone-Streaming] Define a PutBlock/maxBuffer fixed bounda…
sadanand48 Dec 1, 2021
ac9921d
HDDS-6039. Define a minimum packet size during streaming writes. (#2883)
sadanand48 Dec 21, 2021
a67569f
HDDS-6130. [Ozone-Streaming] When releaseBuffers will get “Couldn 't…
captainzmc Dec 23, 2021
f85b42d
HDDS-6139. [Ozone-Streaming] Fix incorrect computation of totalAckDat…
sadanand48 Jan 13, 2022
0e8c800
HDDS-6178. [Ozone-Streaming] Fix NPE in HDDS-6139. (#2984)
sadanand48 Jan 14, 2022
2657f5a
HDDS-6138.[Ozone-Streaming] Define a limit on the size of the retry b…
sadanand48 Feb 10, 2022
14ffbd9
HDDS-6298. Add XceiverServerRatis stream config (#3070)
guohao-rosicky Feb 11, 2022
872e306
HDDS-5487. [Ozone-Streaming] BlockDataStreamOutput support FlushDelay…
captainzmc Feb 14, 2022
92054a4
HDDS-6282. Fix BlockDataStreamOutput#doFlushIfNeeded NPE (#3060)
guohao-rosicky Feb 15, 2022
8a5f2d6
HDDS-6229. [Ozone-Streaming] Data Channel abstraction on datanode (#3…
guohao-rosicky Feb 15, 2022
8f68101
HDDS-6355. [Ozone-Streaming] Fix CheckStyle problem (#3119)
guohao-rosicky Feb 21, 2022
bb3af31
HDDS-6388. [Ozone-Streaming] Streaming write support both pipeline mo…
captainzmc Mar 2, 2022
dfefdf2
HDDS-5798. [Ozone-Streaming] Setup TlsConf parameters. (#3207)
szetszwo Mar 27, 2022
95dbea6
HDDS-6137. [Ozone-Streaming] Refactor KeyDataStreamOutput. (#3195)
guohao-rosicky Mar 28, 2022
6a63842
HDDS-6500. [Ozone-Streaming] Buffer the PutBlockRequest at the end of…
szetszwo Mar 28, 2022
3d821e3
HDDS-5666. Add option to createKey via streaming api in Freon (#2574)
sadanand48 Apr 8, 2022
7f22916
HDDS-6592. [Ozone-Streaming] Fix ContainerStateMachine#applyTransacti…
guohao-rosicky Apr 18, 2022
45954da
HDDS-6842. [Ozone-Streaming] Reduce the number of watch requests in S…
szetszwo Jun 10, 2022
7184025
HDDS-6867. [Ozone-Streaming] PutKeyHandler should not use streaming …
captainzmc Jun 15, 2022
07bf1db
HDDS-6955. [Ozone-streaming] Add explicit stream flag in ozone shell …
kaijchen Jul 12, 2022
13da2a7
HDDS-7431. [Ozone-Streaming] Disable data steam by default. (#3900)
szetszwo Oct 28, 2022
8a0e347
HDDS-7438. [Ozone-Streaming] Add a createStreamKey method to OzoneBuc…
szetszwo Oct 31, 2022
9bbf5a1
HDDS-7425. Add documentation for the new Streaming Pipeline feature. …
szetszwo Nov 9, 2022
1e155f3
HDDS-7478. [Ozone-Streaming] NPE in when creating a file with o3fs. (…
szetszwo Nov 11, 2022
0650ad9
HDDS-7426. Add a new acceptance test for Streaming Pipeline. (#4019)
szetszwo Dec 1, 2022
8b2ca00
HDDS-7616. EC: Refactor Unhealthy Replicated Processor (#4063)
swamirishi Dec 16, 2022
886733b
HDDS-7605. Improve logging in Container Balancer (#4067)
siddhantsangwan Dec 16, 2022
ca2d59b
HDDS-6650. S3MultipartUpload support update bucket usedNamespace. (#4…
sumitagrawl Dec 19, 2022
2ac31e1
HDDS-7398. Tool to remove old certs from the scm db (#3972)
Galsza Dec 19, 2022
1235e9b
HDDS-7399. Enable specifying external root ca (#4053)
Galsza Dec 19, 2022
d93dcd3
HDDS-7649. S3 multipart upload EC release space quota wrong for old v…
sumitagrawl Dec 19, 2022
d5f9172
HDDS-7621. Update SCM term in datanode from heartbeat without any com…
adoroszlai Dec 19, 2022
ef48076
HDDS-7654. EC: ReplicationManager - merge mis-rep queue into under re…
sodonnel Dec 19, 2022
7ca9b5d
HDDS-7565. FSO purge directory for old bucket can update quota for ne…
sumitagrawl Dec 19, 2022
bdeceee
HDDS-7635. Update failure metrics when allocate block fails in preExe…
aswinshakil Dec 19, 2022
204f8e1
HDDS-7683. EC: ReplicationManager - UnderRep maintenance handler shou…
sodonnel Dec 20, 2022
c7785fa
HDDS-7463. SCM Pipeline scrubber never able to cleanup allocated pipe…
ashishkumar50 Dec 20, 2022
9077cb8
HDDS-7473. Ratis integration for support of remove registeration (#4112)
sumitagrawl Dec 21, 2022
add8f8b
HDDS-7686. Cherry-pick proto.lock files change from ozone-1.3 release…
captainzmc Dec 21, 2022
157c591
HDDS-7631. Log format error on quotas when exceeding the space quota …
mladjan-gadzic Dec 21, 2022
fa8494c
HDDS-5331. Recon: Trigger PipelineSyncTask when DN becomes stale and …
devmadhuu Dec 21, 2022
58283b6
HDDS-7684. Embed Matomo Web Analytics tracking code in docs. (#4111)
jojochuang Dec 21, 2022
c40cb07
HDDS-7576. Prometheus metrics do not remove stale metrics until resta…
xBis7 Dec 21, 2022
a7f06c1
HDDS-3486. Recon cannot track missing containers that were created an…
devmadhuu Dec 22, 2022
b167d99
HDDS-7692. Remove usage of MonotonicClock and use default system cloc…
siddhantsangwan Dec 22, 2022
b828881
HDDS-7661. Ratis Misreplication Handler (#4100)
swamirishi Dec 22, 2022
bfc37bb
HDDS-7641. Namespace quota validation is not present in multiple plac…
sumitagrawl Dec 22, 2022
98eb2eb
HDDS-7644. S3 multipart upload does not update quota namespace for mi…
sumitagrawl Dec 23, 2022
a89ba1a
HDDS-7584. Addition of new OM node expels itself from the Ratis ring …
aryangupta1998 Dec 23, 2022
7cfaf96
HDDS-7525. Migrate key digest from MD5 to SHA256 in Ozone shell
GAOJHIHCYUAN Dec 24, 2022
4184499
HDDS-7623. Do not compress container re-replication traffic by defaul…
chungen0126 Dec 27, 2022
b352ad0
HDDS-7409 [doc] Update documents for better presentation (#3884)
whbing Jan 2, 2023
1c830c5
HDDS-7564. Update Ozone version after 1.3.0 release (#4115)
captainzmc Jan 3, 2023
eb031df
HDDS-7648. Add a servername tag in UGI metrics. (#4094)
mladjan-gadzic Jan 3, 2023
04f68c9
HDDS-7633. Compile error with Java 11: package com.sun.jmx.mbeanserve…
adoroszlai Jan 3, 2023
c119557
HDDS-7588. Intermittent failure in TestObjectStoreWithLegacyFS#testFl…
kaijchen Jan 3, 2023
58da8a9
HDDS-7716. Log read requests rejected with permission denied in OM au…
myskov Jan 3, 2023
2171732
HDDS-7714. Docker cluster ozone-om-ha fails during docker-compose up …
adoroszlai Jan 3, 2023
9b48d8b
HDDS-7696. MisReplicationHandler does not consider QUASI_CLOSED repli…
sodonnel Jan 5, 2023
41f0488
HDDS-7339. Implement Certificate renewal task for services (#3982)
ChenSammi Jan 5, 2023
10811c5
HDDS-7666. EC: Unrecoverable EC containers with some remaining replic…
sodonnel Jan 5, 2023
9d30c9a
HDDS-7606. Add SCM HA support in intellij run (#4058)
ChenSammi Jan 6, 2023
7d6ee03
HDDS-7727. EC: SCM unregistered event handler for DatanodeCommandCoun…
adoroszlai Jan 6, 2023
ecc2f18
HDDS-7708. No check for certificate duration config scenarios. (#4149)
ashishkumar50 Jan 6, 2023
f2f0afa
HDDS-7243. Remove RequestFeatureValidator from echoRPC method which s…
DaveTeng0 Jan 6, 2023
2eb5805
HDDS-7738. SCM terminates when adding container to a closed pipeline …
duongkame Jan 7, 2023
e09f9a2
HDDS-7729. EC: ECContainerReplicaCount should handle pending delete o…
sodonnel Jan 8, 2023
4abe983
HDDS-7695. EC metrics related to replication commands don't add up (#…
sodonnel Jan 8, 2023
a1cb9d5
HDDS-7628. Intermittent failure in TestOzoneContainerWithTLS (#4142)
ChenSammi Jan 9, 2023
dcfd621
HDDS-7652. Volume Quota not enforced during write when bucket quota i…
sumitagrawl Jan 9, 2023
07b6759
HDDS-7739. EC: Increase the information in the RM sending command log…
sodonnel Jan 9, 2023
a80c6b1
HDDS-7726. EC: Enhance datanode reconstruction log message (#4155)
adoroszlai Jan 9, 2023
b6cda51
HDDS-4539. Container Health Task should not run until Recon has reach…
devmadhuu Jan 9, 2023
ed7c60c
HDDS-7560. Placement Policy Interface changes to handle Overreplicati…
swamirishi Jan 9, 2023
ab91e46
HDDS-7638. Ozone client change to support HSync. (#4104)
szetszwo Jan 10, 2023
cbbddc6
HDDS-7630. Show detailed OMResponse when OzoneManagerDoubleBuffer ter…
symious Jan 10, 2023
dff8296
HDDS-7705. Fix OM Bootstrap request (#4160)
Cyrill Jan 10, 2023
4531701
HDDS-7753. Simplify DatanodeDetails#toString to improve log messages …
adoroszlai Jan 10, 2023
de53086
HDDS-5541. Namespace summary endpoint can carry basic information on …
devmadhuu Jan 11, 2023
7229b35
HDDS-6447. Refine SCM handling of unhealthy container replicas. (#3920)
errose28 Jan 11, 2023
d56acae
HDDS-7760. Let ContainerDataConstructor extend SafeConstructor (#4162)
rohit-kb Jan 11, 2023
9d5cfd6
HDDS-7083. Spread container-copy directories (#3648)
symious Jan 12, 2023
5f54cc6
HDDS-5934. Add OM NodeID to VERSION file. (#4138)
fapifta Jan 12, 2023
2bd13c3
HDDS-7751. Volume quota must have all bucket quota set (#4165)
sumitagrawl Jan 12, 2023
80f544b
HDDS-7570. Provide a shareable ofs://temp directory (#4027)
neils-dev Jan 12, 2023
1a63207
HDDS-7775. EC: Exception encountered while deleting UNHEALTHY replica…
siddhantsangwan Jan 12, 2023
f9dfd73
HDDS-7761. EC: ReplicationManager - Use placementPolicy.replicasToRem…
sodonnel Jan 12, 2023
253e97c
HDDS-7774. Update outdated Trash documentation (#4172)
huangxiaopingRD Jan 12, 2023
c00d3af
HDDS-7722. FSO buckets fail to invalidate open file table cache when …
jojochuang Jan 13, 2023
7923e25
HDDS-7441. Rename function names of retrieving metadata keys (#3918)
symious Jan 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ jobs:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- name: Compile Ozone using Java ${{ matrix.java }}
run: hadoop-ozone/dev-support/checks/build.sh -Dskip.npx -Dskip.installnpx
run: hadoop-ozone/dev-support/checks/build.sh -Dskip.npx -Dskip.installnpx -Djavac.version=${{ matrix.java }}
- name: Delete temporary build artifacts before caching
run: |
#Never cache local artifacts
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/post-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ concurrency:
jobs:
CI:
uses: ./.github/workflows/ci.yml
secrets: inherit
1 change: 1 addition & 0 deletions .github/workflows/scheduled_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ on:
jobs:
CI:
uses: ./.github/workflows/ci.yml
secrets: inherit
10 changes: 5 additions & 5 deletions LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,8 @@ licenses. This section summarizes those components and their licenses.
See licenses/ for text of these licenses.


Apache Software Foundation License 2.0
--------------------------------------
Apache License 2.0
------------------

hadoop-hdds/framework/src/main/resources/webapps/static/nvd3-1.8.5.min.js.map
hadoop-hdds/framework/src/main/resources/webapps/static/nvd3-1.8.5.min.css.map
Expand All @@ -221,15 +221,15 @@ BSD 3-Clause
------------

hadoop-hdds/framework/src/main/resources/webapps/static/d3-3.5.17.min.js
hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/d3-3.5.17.min.js
hadoop-hdds/docs/themes/ozonedoc/static/fonts/glyphicons-*
hadoop-hdds/docs/themes/ozonedoc/static/js/bootstrap.min.js


MIT License
-----------

hadoop-hdds/framework/src/main/resources/webapps/static/bootstrap-3.4.1
hadoop-hdds/docs/themes/ozonedoc/static/css/bootstrap-*
hadoop-hdds/docs/themes/ozonedoc/static/js/bootstrap.min.js
hadoop-hdds/docs/themes/ozonedoc/static/fonts/glyphicons-*

hadoop-hdds/framework/src/main/resources/webapps/static/angular-route-1.8.0.min.js
hadoop-hdds/framework/src/main/resources/webapps/static/angular-nvd3-1.0.9.min.js
Expand Down
2 changes: 1 addition & 1 deletion NOTICE.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Apache Ozone
Copyright 2021 The Apache Software Foundation
Copyright 2022 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Expand Down
4 changes: 2 additions & 2 deletions hadoop-hdds/annotations/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.ozone</groupId>
<artifactId>hdds</artifactId>
<version>1.3.0-SNAPSHOT</version>
<version>1.4.0-SNAPSHOT</version>
</parent>

<artifactId>hdds-annotation-processing</artifactId>
<version>1.3.0-SNAPSHOT</version>
<version>1.4.0-SNAPSHOT</version>
<description>Apache Ozone annotation processing tools for validating custom
annotations at compile time.
</description>
Expand Down
4 changes: 2 additions & 2 deletions hadoop-hdds/client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.ozone</groupId>
<artifactId>hdds</artifactId>
<version>1.3.0-SNAPSHOT</version>
<version>1.4.0-SNAPSHOT</version>
</parent>

<artifactId>hdds-client</artifactId>
<version>1.3.0-SNAPSHOT</version>
<version>1.4.0-SNAPSHOT</version>
<description>Apache Ozone Distributed Data Store Client Library</description>
<name>Apache Ozone HDDS Client</name>
<packaging>jar</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,37 @@ public enum ChecksumCombineMode {
tags = ConfigTag.CLIENT)
private int streamBufferSize = 4 * 1024 * 1024;

@Config(key = "datastream.buffer.flush.size",
defaultValue = "16MB",
type = ConfigType.SIZE,
description = "The boundary at which putBlock is executed",
tags = ConfigTag.CLIENT)
private long dataStreamBufferFlushSize = 16 * 1024 * 1024;

@Config(key = "datastream.min.packet.size",
defaultValue = "1MB",
type = ConfigType.SIZE,
description = "The maximum size of the ByteBuffer "
+ "(used via ratis streaming)",
tags = ConfigTag.CLIENT)
private int dataStreamMinPacketSize = 1024 * 1024;

@Config(key = "datastream.window.size",
defaultValue = "64MB",
type = ConfigType.SIZE,
description = "Maximum size of BufferList(used for retry) size per " +
"BlockDataStreamOutput instance",
tags = ConfigTag.CLIENT)
private long streamWindowSize = 64 * 1024 * 1024;

@Config(key = "datastream.pipeline.mode",
defaultValue = "true",
description = "Streaming write support both pipeline mode(datanode1->" +
"datanode2->datanode3) and star mode(datanode1->datanode2, " +
"datanode1->datanode3). By default we use pipeline mode.",
tags = ConfigTag.CLIENT)
private boolean datastreamPipelineMode = true;

@Config(key = "stream.buffer.increment",
defaultValue = "0B",
type = ConfigType.SIZE,
Expand Down Expand Up @@ -143,6 +174,13 @@ public enum ChecksumCombineMode {
tags = ConfigTag.CLIENT)
private int maxECStripeWriteRetries = 10;

@Config(key = "ec.stripe.queue.size",
defaultValue = "2",
description = "The max number of EC stripes can be buffered in client " +
" before flushing into datanodes.",
tags = ConfigTag.CLIENT)
private int ecStripeQueueSize = 2;

@Config(key = "exclude.nodes.expiry.time",
defaultValue = "600000",
description = "Time after which an excluded node is reconsidered for" +
Expand Down Expand Up @@ -244,6 +282,22 @@ public void setStreamBufferMaxSize(long streamBufferMaxSize) {
this.streamBufferMaxSize = streamBufferMaxSize;
}

public int getDataStreamMinPacketSize() {
return dataStreamMinPacketSize;
}

public void setDataStreamMinPacketSize(int dataStreamMinPacketSize) {
this.dataStreamMinPacketSize = dataStreamMinPacketSize;
}

public long getStreamWindowSize() {
return streamWindowSize;
}

public void setStreamWindowSize(long streamWindowSize) {
this.streamWindowSize = streamWindowSize;
}

public int getMaxRetryCount() {
return maxRetryCount;
}
Expand Down Expand Up @@ -288,6 +342,10 @@ public int getMaxECStripeWriteRetries() {
return this.maxECStripeWriteRetries;
}

public int getEcStripeQueueSize() {
return this.ecStripeQueueSize;
}

public long getExcludeNodesExpiryTime() {
return excludeNodesExpiryTime;
}
Expand All @@ -296,6 +354,14 @@ public int getBufferIncrement() {
return bufferIncrement;
}

public long getDataStreamBufferFlushSize() {
return dataStreamBufferFlushSize;
}

public void setDataStreamBufferFlushSize(long dataStreamBufferFlushSize) {
this.dataStreamBufferFlushSize = dataStreamBufferFlushSize;
}

public ChecksumCombineMode getChecksumCombineMode() {
try {
return ChecksumCombineMode.valueOf(checksumCombineMode);
Expand Down Expand Up @@ -325,4 +391,12 @@ public void setFsDefaultBucketLayout(String bucketLayout) {
public String getFsDefaultBucketLayout() {
return fsDefaultBucketLayout;
}

public boolean isDatastreamPipelineMode() {
return datastreamPipelineMode;
}

public void setDatastreamPipelineMode(boolean datastreamPipelineMode) {
this.datastreamPipelineMode = datastreamPipelineMode;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ protected NettyChannelBuilder createChannel(DatanodeDetails dn, int port)
NettyChannelBuilder.forAddress(dn.getIpAddress(), port).usePlaintext()
.maxInboundMessageSize(OzoneConsts.OZONE_SCM_CHUNK_MAX_SIZE)
.intercept(new GrpcClientInterceptor());
if (secConfig.isGrpcTlsEnabled()) {
if (secConfig.isSecurityEnabled() && secConfig.isGrpcTlsEnabled()) {
SslContextBuilder sslContextBuilder = GrpcSslContexts.forClient();
if (caCerts != null) {
sslContextBuilder.trustManager(caCerts);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import org.apache.ratis.client.RaftClient;
import org.apache.ratis.client.api.DataStreamApi;
import org.apache.ratis.grpc.GrpcTlsConfig;
import org.apache.ratis.proto.RaftProtos;
import org.apache.ratis.proto.RaftProtos.ReplicationLevel;
Expand Down Expand Up @@ -135,7 +136,7 @@ private long updateCommitInfosMap(RaftClientReply reply) {
.orElse(0L);
}

private long updateCommitInfosMap(
public long updateCommitInfosMap(
Collection<RaftProtos.CommitInfoProto> commitInfoProtos) {
// if the commitInfo map is empty, just update the commit indexes for each
// of the servers
Expand Down Expand Up @@ -382,4 +383,8 @@ public XceiverClientReply sendCommandAsync(
throw new UnsupportedOperationException(
"Operation Not supported for ratis client");
}

public DataStreamApi getDataStreamApi() {
return this.getClient().getDataStreamApi();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
/*
* 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.hdds.scm.storage;

import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import org.apache.hadoop.hdds.scm.client.HddsClientUtils;
import org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException;
import org.apache.hadoop.io.retry.RetryPolicy;
import org.apache.ratis.protocol.exceptions.AlreadyClosedException;
import org.apache.ratis.protocol.exceptions.RaftRetryFailureException;

import java.io.IOException;
import java.io.InterruptedIOException;
import java.util.Map;
import java.util.Objects;

/**
* This class is used for error handling methods.
*/
public abstract class AbstractDataStreamOutput
implements ByteBufferStreamOutput {

private final Map<Class<? extends Throwable>, RetryPolicy> retryPolicyMap;
private int retryCount;
private boolean isException;

protected AbstractDataStreamOutput(
Map<Class<? extends Throwable>, RetryPolicy> retryPolicyMap) {
this.retryPolicyMap = retryPolicyMap;
this.isException = false;
this.retryCount = 0;
}

@VisibleForTesting
public int getRetryCount() {
return retryCount;
}

protected void resetRetryCount() {
retryCount = 0;
}

protected boolean isException() {
return isException;
}

/**
* Checks if the provided exception signifies retry failure in ratis client.
* In case of retry failure, ratis client throws RaftRetryFailureException
* and all succeeding operations are failed with AlreadyClosedException.
*/
protected boolean checkForRetryFailure(Throwable t) {
return t instanceof RaftRetryFailureException
|| t instanceof AlreadyClosedException;
}

// Every container specific exception from datatnode will be seen as
// StorageContainerException
protected boolean checkIfContainerToExclude(Throwable t) {
return t instanceof StorageContainerException;
}

protected void setExceptionAndThrow(IOException ioe) throws IOException {
isException = true;
throw ioe;
}

protected void handleRetry(IOException exception) throws IOException {
RetryPolicy retryPolicy = retryPolicyMap
.get(HddsClientUtils.checkForException(exception).getClass());
if (retryPolicy == null) {
retryPolicy = retryPolicyMap.get(Exception.class);
}
handleRetry(exception, retryPolicy);
}

protected void handleRetry(IOException exception, RetryPolicy retryPolicy)
throws IOException {
RetryPolicy.RetryAction action = null;
try {
action = retryPolicy.shouldRetry(exception, retryCount, 0, true);
} catch (Exception e) {
setExceptionAndThrow(new IOException(e));
}
if (action != null &&
action.action == RetryPolicy.RetryAction.RetryDecision.FAIL) {
String msg = "";
if (action.reason != null) {
msg = "Retry request failed. " + action.reason;
}
setExceptionAndThrow(new IOException(msg, exception));
}

// Throw the exception if the thread is interrupted
if (Thread.currentThread().isInterrupted()) {
setExceptionAndThrow(exception);
}
Objects.requireNonNull(action);
Preconditions.checkArgument(
action.action == RetryPolicy.RetryAction.RetryDecision.RETRY);
if (action.delayMillis > 0) {
try {
Thread.sleep(action.delayMillis);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
IOException ioe = (IOException) new InterruptedIOException(
"Interrupted: action=" + action + ", retry policy=" + retryPolicy)
.initCause(e);
setExceptionAndThrow(ioe);
}
}
retryCount++;
}
}
Loading