Please take a look at the following changelog and add/update anything else
noteworthy
-- it was generated by ChatGPT DeepResearch with a little extra input from
myself.


Changelog

All notable changes to Apache Ozone are documented in this file. This
project adheres to the Keep a Changelog format and Semantic Versioning
<https://semver.org/>.

Apache Ozone 2.0.0 adds 1700 new features, improvements and bug fixes on
top of Ozone 1.4.
[2.0.0] - 2025-03-27 Added

   -

   *HDDS-7593 Supporting HSync and Lease Recovery:* Added support for
   HDFS-compatible hsync/hflush on Ozone client output streams, enabling
   durable writes for use cases like HBase and Solr. Also introduced
   HDFS-style lease recovery (recoverLease()) and the ability to toggle
   safe mode via the FileSystem API.
   -

   *HDDS-7852 SCM Decommissioning Support:* The Storage Container Manager
   now supports decommissioning in an HA cluster. Administrators can
   gracefully remove an SCM from the HA ring (or force remove if needed).
   -

   *HDDS-8829 Symmetric Keys for Delegation Tokens:* Added support for
   symmetric keys to secure delegation tokens, enhancing authentication and
   token management.
   -

   *HDDS-10656 Atomic Key Overwrite and Key Replacement:* Introduced atomic
   operations for key overwrite and key replacement, ensuring consistency
   during key updates.
   -

   *HDDS-6263 ARM64 Support:* Added native ARM64 support, enabling Apache
   Ozone to run efficiently on ARM-based servers.
   -

   *HDDS-8246 Java 11/17/21 Support and Testing:* Expanded runtime support
   and testing to include Java 11, 17, and 21, ensuring compatibility with
   modern Java environments.
   -

   *HDDS-11577 AWS SDK v2 Client Support:* Added AWS SDK v2 support for
   improved integration with Amazon Web Services and enhanced S3 gateway
   functionality.
   -

   *HDDS-9307 Ozone Performance and Operational Dashboards:* Introduced new
   dashboards to monitor cluster performance and operational metrics,
   providing real-time insights into Ozone’s health.
   -

   *HDDS-11825 Interactive Mode for Ozone CLI:* Added an interactive mode
   for the Ozone CLI, enhancing the command-line experience with guided
   prompts and real-time feedback.

Changed

   -

   *Default Crypto Compliance Mode:* The default value for Ozone’s security
   compliance mode (ozone.security.crypto.compliance.mode) was changed to a
   stricter setting. Ozone 2.0 enables compliance mode by default, enforcing
   stronger cryptographic standards out-of-the-box.
   -

   *Kerberos Principal Pattern:* Ozone Manager now defines a default
   principal pattern for Kerberos principals. This change allows cross-realm
   authentication without additional configuration, preventing errors when
   Ozone clients interact across different Kerberos realms.
   -

   *HSync File Overwrite:* It is now possible to overwrite a file that has
   been hsync-ed. Previously, attempting to overwrite an hsync-flushed file
   could fail; Ozone 2.0 removes this restriction to better match HDFS
   semantics.
   -

   *DataNode Failure Handling:* If a DataNode’s internal Ratis server
   encounters a critical failure or stops, the DataNode will now shut itself
   down automatically. This fail-fast behavior ensures consistency and
   improves cluster stability.
   -

   *Performance Improvements:* Ozone 2.0 includes multiple optimizations
   for better throughput and lower latency. Notably, writes through the Hadoop
   FS interface have improved streaming performance, Ozone clients use less
   heap memory (avoiding unnecessary byte array copies), and replication
   between datanodes now leverages zero-copy transfers for efficiency. Data
   checksum verification was also optimized by using direct buffers and
   reducing overhead.
   -

   *UI Improvements for Recon:* Enhanced the Recon UI for improved data
   visualization and navigation, making it easier for users to analyze cluster
   data.

Deprecated

   -

   *HDDS-11753 Deprecate File-Per-Chunk Container Layout:* The legacy
   *FILE_PER_CHUNK* container layout (configurable via
   ozone.scm.container.layout) is now *deprecated*. Beginning with 2.0.0,
   new containers cannot be created using this layout. Support for
   FILE_PER_CHUNK will be removed in a future release, so users should migrate
   any data off this layout if still in use.

Removed

   -

   *Non-HA OM/SCM Modes:* *Standalone (non-Ratis) deployment modes for
   Ozone Manager and SCM have been removed.* Ozone 2.x now always runs OM
   and SCM in HA (Ratis) mode. Clusters upgrading from a non-HA setup will be
   automatically converted to a single-node Ratis quorum. Legacy configuration
   flags to disable Ratis are no longer applicable.
   -

   *HDDS-7307 Move S3 Gateway Web Admin:* Moved the S3 Gateway web
   administration to a dedicated port to isolate admin traffic.
   -

   *HDDS-11759 Remove LegacyReplicationManager:* Removed the
   LegacyReplicationManager component, consolidating replication logic into
   the modern framework.
   -

   *(Various internal and unused configurations were also cleaned up—for
   example, some unused Netty-related SCM config keys were removed to simplify
   configuration.)*

Fixed

   -

   *Encryption Functionality:* Fixed a critical regression where Ozone
   encryption was unintentionally broken by a prior change. Encryption for
   buckets/keys now works as expected, restoring data-at-rest encryption
   capabilities.
   -

   *S3 Secret Generation:* Resolved an issue that caused an *Internal
   Server Error* when generating an S3 secret via the HTTP API. The S3
   secret creation endpoint now returns proper status on success or failure.
   -

   *OM Crash on S3 Secret:* Fixed a bug that could cause the Ozone Manager
   to terminate with an NPE when handling S3 secret value protos. Generating
   or fetching S3 credentials will no longer crash the OM.
   -

   *S3 MPU ETag Compatibility:* Corrected multi-part upload ETag
   calculation to match AWS S3 behavior, ensuring compatibility with S3
   clients.
   -

   *Orphaned Blocks on Overwrite:* Fixed a scenario that left orphaned data
   blocks when overwriting an existing key. Ozone now properly cleans up
   replaced blocks during key overwrite, preventing storage leaks.
   -

   *FSO ListKeys Results:* Corrected the ListKeys API for FileSystem
   Optimized (O3FS) buckets. Previously, a key prefix matching multiple keys
   could yield incomplete results; this issue has been resolved.
   -

   *Dynamic Config in Secure Clusters:* The ozone admin reconfig command
   now works in secure (Kerberized) clusters. Earlier, reconfiguration would
   fail when security was enabled; dynamic updates to configuration now
   succeed.
   -

   *Block Allocation in Safe Mode:* Fixed an issue where clients could not
   allocate blocks if SCM was in safe mode. The client/Ozone Manager now
   retries or waits when SCM is in safe mode, ensuring smoother startup and
   write operations.
   -

   *SCM Recommission State:* Fixed an InvalidStateTransitionException that
   could occur after recommissioning an SCM in an HA cluster. The SCM state
   machine now correctly handles recommissioning.
   -

   *DataNode Out-of-Memory:* Fixed a memory issue on DataNodes that could
   lead to out-of-memory errors due to excessive mmap allocations. DataNodes
   now better manage mmap buffers and avoid resource exhaustion.
   -

   *OM Memory Leak:* Patched a memory leak in Ozone Manager request
   handling. Previously, per-client thread-local data in OM requests was not
   properly released, potentially causing memory growth over time.
   -

   *DataNode Block Deletion Leak:* Fixed a resource leak on DataNodes when
   the delete blocks queue was full, preventing stale state accumulation and
   memory buildup.
   -

   *Heartbeat Reporting:* Resolved an issue where DataNodes could stop
   reporting heartbeats or container reports for extended periods. Transient
   failures no longer prevent timely SCM reporting.
   -

   *Replication Count Accuracy:* Fixed mis-counting of containers on
   decommissioning or decommissioned DataNodes, preventing false alarms in
   replication metrics.
   -

   *Log Spam on Pipeline Loss:* Fixed an infinite-loop bug in SCM that
   caused log flooding when a pipeline’s nodes could not be found, reducing
   noise and CPU usage.
   -

   *SetTimes on Linked Bucket:* Corrected the ozone fs -setTimes command
   for linked buckets so that setting access or modification times works as
   intended.

Security

   -

   *CVE-2024-45106 (S3 Secret Vulnerability):* Fixed an authentication flaw
   in the S3 Gateway where an HTTP endpoint could allow any authenticated
   Kerberos user to regenerate another user’s S3 secret. In Ozone 2.0.0, this
   endpoint is disabled by default and secured.
   -

   *Sticky-bit in Shared /tmp:* Fixed enforcement of sticky-bit permissions
   on the shared /tmp bucket when Ranger authorization is used. Ozone now
   properly upholds the expected Unix semantics for shared temporary storage,
   closing a potential access control gap.

Developer

   -

   *HDDS-6729 JUnit 4 to 5 Upgrade:* Upgraded the testing framework from
   JUnit 4 to JUnit 5 for improved test capabilities and modern annotations.
   -

   *HDDS-8113 Dropped Hadoop 2.7–2.9 Support:* Removed support for older
   Hadoop versions (2.7 through 2.9) to streamline compatibility and leverage
   newer Hadoop features.
   -

   *HDDS-10986 Publish SBOM Artifacts:* Enabled the publication of SBOM
   (Software Bill of Materials) artifacts to enhance supply chain transparency.
   -

   *HDDS-11617 Hadoop Dependency Updated to 3.4.1:* Updated the Hadoop
   dependency to version 3.4.1, improving compatibility and performance.


On Mon, Mar 31, 2025 at 8:47 AM Ethan Rose <er...@apache.org> wrote:

> Have we run this change through the upgrade/downgrade acceptance tests yet?
> It would be good to know:
> 1. If it works with downgrade (only affects network related protos)
> 2. If we are supporting downgrade from the 2.x to 1.x line.
> There is a lot of room for improvement on the current release
> notes/changelog but one thing I cannot find that should be called out right
> at the top is what this major version increase means for client/server and
> upgrade/downgrade compatibility.
>
> On Sun, Mar 30, 2025 at 5:04 PM Tsz-Wo Nicholas Sze <szets...@gmail.com>
> wrote:
>
> > Hi Wei-Chiu,
> >
> > (1) A reason for not yet being able to merge the PR is the protolock
> file.
> > We are not sure how and when to update it for such a change.  The "Build
> > and commit the proto.lock change" section in our release guideline [2]
> does
> > not mention it.
> >
> > (2) For future incompatible changes, we must wait for the next major
> > version.  Anyway, this PR definitely is a good improvement.
> >
> > (3) If we are not doing it now, I guess it may be hard to get it in a
> > maintenance release such as 2.0.1.  This kind of change is usually
> > unwelcome in a maintenance release.
> >
> > XiChen, not sure if you could work on HDDS-11351 in a timely manner.   If
> > not, I could continue the work.  Since we already know what to do, we
> > should be able to merge the change within a week.
> >
> > Tsz-Wo
> > [2]
> >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=173085374#OzoneReleaseGuideline-Buildandcommittheproto.lockchange
> >
> >
> >
> > On Sun, Mar 30, 2025 at 1:12 PM Wei-Chiu Chuang <weic...@apache.org>
> > wrote:
> >
> > > Thanks for bringing it up!
> > >
> > > I'm not against including it but
> > >
> > > (1) the PR has stalled for a few months now. Do we think it can be done
> > > soon?
> > > (2) there's no guarantee the PR will be the final version. What if
> later
> > on
> > > we realize we need to change protobuf again?
> > > (3) if it's a compatible change, it doesn't need to be in 2.0.0.
> > >
> > > On Sat, Mar 29, 2025 at 12:23 PM Tsz-Wo Nicholas Sze <
> szets...@gmail.com
> > >
> > > wrote:
> > >
> > > > More info on HDDS-11351:
> > > >
> > > > TLDR: The change is wire compatible but requires updating protolock.
> > > >
> > > > XiChen pointed out that both hdds.proto and
> > > > ScmServerDatanodeHeartbeatProtocol.proto have the same proto package
> > > > "hadoop.hdds".  So, we could safely move StorageTypeProto from
> > > > ScmServerDatanodeHeartbeatProtocol.proto to hdds.proto. The only
> > > difference
> > > > is the java_outer_classname. Fortunately,
> > > > ScmServerDatanodeHeartbeatProtocol.proto is a non-user facing
> internal
> > > > protocol and the change is wire compatible.  (It is API incompatible
> > but
> > > it
> > > > is fine since the protocol is not a public API.)  So there are no
> > > > compatibility issues.
> > > >
> > > > A problem is that we need to update the protolock file.  If we are
> > going
> > > to
> > > > do it, let's also rename ScmServerDatanodeHeartbeatProtocol.proto to
> > > > StorageContainerDatanodeProtocol.proto, i.e. make it consistent with
> > its
> > > > java_outer_classname.
> > > >
> > > > Tsz-Wo
> > > > [1] https://github.com/apache/ozone/pull/7109#discussion_r2008750162
> > > >
> > > >
> > > > On Sat, Mar 29, 2025 at 10:04 AM Tsz-Wo Nicholas Sze <
> > szets...@gmail.com
> > > >
> > > > wrote:
> > > >
> > > > > Hi Ozone dev,
> > > > >
> > > > > HDDS-11351 is unifying the protobuf definition of StorageType.  How
> > > about
> > > > > we get it in 2.0.0?
> > > > >
> > > > > Sorry that I came with this idea late.
> > > > >
> > > > > Tsz-Wo
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Mar 26, 2025 at 11:05 PM Wei-Chiu Chuang <
> weic...@apache.org
> > >
> > > > > wrote:
> > > > >
> > > > >> By the way, build environment:
> > > > >>
> > > > >> x86, Amazon Linux, OpenJDK8, Maven 3.9.9, gcc 11
> > > > >>
> > > > >> build parameters:
> > > > >> mvn clean install -Dmaven.javadoc.skip=true -DskipTests
> > > -Psign,dist,src
> > > > >> -Dtar -Dgpg.keyname="$CODESIGNINGKEY" -Drocks_tools_native
> > > > >>
> > > > >> # cat /etc/amazon-linux-release
> > > > >> Amazon Linux release 2023.6.20250317 (Amazon Linux)
> > > > >>
> > > > >> # java -version
> > > > >> openjdk version "1.8.0_442"
> > > > >> OpenJDK Runtime Environment Corretto-8.442.06.1 (build
> > 1.8.0_442-b06)
> > > > >> OpenJDK 64-Bit Server VM Corretto-8.442.06.1 (build 25.442-b06,
> > mixed
> > > > >> mode)
> > > > >>
> > > > >> # mvn -v
> > > > >> Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
> > > > >> Maven home: /root/apache-maven-3.9.9
> > > > >> Java version: 1.8.0_442, vendor: Amazon.com Inc., runtime:
> > > > >> /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre
> > > > >> Default locale: en, platform encoding: UTF-8
> > > > >> OS name: "linux", version: "6.1.130-139.222.amzn2023.x86_64",
> arch:
> > > > >> "amd64", family: "unix"
> > > > >>
> > > > >> # g++ -v
> > > > >> Using built-in specs.
> > > > >> COLLECT_GCC=g++
> > > > >>
> > > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-amazon-linux/11/lto-wrapper
> > > > >> OFFLOAD_TARGET_NAMES=nvptx-none
> > > > >> OFFLOAD_TARGET_DEFAULT=1
> > > > >> Target: x86_64-amazon-linux
> > > > >> Configured with: ../configure --enable-bootstrap --enable-host-pie
> > > > >> --enable-host-bind-now --enable-languages=c,c++,fortran,lto
> > > > --prefix=/usr
> > > > >> --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=
> > > > >> https://github.com/amazonlinux/amazon-linux-2022 --enable-shared
> > > > >> --enable-threads=posix --enable-checking=release
> --with-system-zlib
> > > > >> --enable-__cxa_atexit --disable-libunwind-exceptions
> > > > >> --enable-gnu-unique-object --enable-linker-build-id
> > > > >> --with-gcc-major-version-only --enable-plugin
> > --enable-initfini-array
> > > > >>
> > > > >>
> > > >
> > >
> >
> --with-isl=/builddir/build/BUILD/gcc-11.5.0-20240719/obj-x86_64-amazon-linux/isl-install
> > > > >> --enable-multilib --with-linker-hash-style=gnu
> > > > >> --enable-offload-targets=nvptx-none --without-cuda-driver
> > > > >> --enable-gnu-indirect-function --enable-cet --with-tune=generic
> > > > >> --with-arch_64=x86-64-v2 --with-arch_32=x86-64
> > > > --build=x86_64-amazon-linux
> > > > >> --with-build-config=bootstrap-lto --enable-link-serialization=1
> > > > >> Thread model: posix
> > > > >> Supported LTO compression algorithms: zlib zstd
> > > > >> gcc version 11.5.0 20240719 (Red Hat 11.5.0-5) (GCC)
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > > >> On Wed, Mar 26, 2025 at 10:58 PM Wei-Chiu Chuang <
> > weic...@apache.org>
> > > > >> wrote:
> > > > >>
> > > > >> > Here's RC1 vote:
> > > > >> >
> > > > >> > Git tag:
> > > https://github.com/apache/ozone/releases/tag/ozone-2.0.0-RC1
> > > > >> > A total of 1699 resolved jiras:
> > > > >> >
> > > > >>
> > > >
> > >
> >
> https://issues.apache.org/jira/issues/?jql=project%20%3D%20HDDS%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%202.0.0
> > > > >> >
> > > > >> > Source code and binary tarball:
> > > > >> > https://dist.apache.org/repos/dist/dev/ozone/2.0.0-rc1/
> > > > >> > Maven artifacts:
> > > > >> >
> > > >
> > https://repository.apache.org/content/repositories/orgapacheozone-1030/
> > > > >> > PGP key: https://dist.apache.org/repos/dist/dev/ozone/KEYS
> > > > >> > Fingerprint: 3ED23305D7631918
> > > > >> >
> > > > >> > RC0 and RC1 diff:
> > > > >> >
> > > > >>
> > > >
> > >
> >
> https://github.com/apache/ozone/compare/ozone-2.0.0-RC0...ozone-2.0.0-RC1
> > > > >> > 7 commits:
> > > > >> >
> > > > >> > HDDS-12327. HDDS-12668. Fix HSync upgrade test failure in non-HA
> > > > upgrade
> > > > >> > test (#8171)
> > > > >> > HDDS-12684. Update NOTICE and LICENSE file (#8160)
> > > > >> > HDDS-12327. Restore non-HA (to HA) upgrade test (#7880)
> > > > >> > HDDS-12662. Rename upgrade callback directory 1.5.0 to 2.0.0
> > (#8131)
> > > > >> > HDDS-12668. HSync upgrade test failure (#8137)
> > > > >> > HDDS-12671. Include .editorconfig and .run in source tarball
> > (#8139)
> > > > >> > HDDS-12666. Remove -SNAPSHOT from OZONE_CURRENT_VERSION in
> upgrade
> > > > test
> > > > >> > (#8136)
> > > > >> >
> > > > >> > Please also take a look at the release page draft:
> > > > >> > https://jojochuang.github.io/release/2.0.0/
> > > > >> > Full CHANGELOGS
> > > > >> > https://jojochuang.github.io/release/2.0.0/changelog.2.0.0/
> > > > >> > Full ReleaseNotes:
> > > > >> > https://jojochuang.github.io/release/2.0.0/releasenotes.2.0.0/
> > > > >> >
> > > > >> > changelogs and releasenotes are generated by Apache Yetus
> > > > >> releasedocmaker:
> > > > >> > ./releasedocmaker --project HDDS --version 2.0.0 --projecttitle
> > > > "Apache
> > > > >> > Ozone" --fileversions --dirversions --usetoday
> > > > >> >
> > > > >> > On Fri, Mar 21, 2025 at 3:42 PM Wei-Chiu Chuang <
> > weic...@apache.org
> > > >
> > > > >> > wrote:
> > > > >> >
> > > > >> >> Hi Ozone community,
> > > > >> >>
> > > > >> >> Please try out and cast your vote for the Ozone 2.0.0 release
> > > > >> candidate 0.
> > > > >> >>
> > > > >> >> This is a huge release, containing 1691 resolved jiras,
> numerous
> > > > >> features
> > > > >> >> and stability improvements.
> > > > >> >>
> > > > >> >> Release process:
> > > > >> >>
> > > > >>
> > > >
> > >
> >
> https://ozone-site-v2.staged.apache.org/docs/developer-guide/project/release-guide/
> > > > >> >> Git tag:
> > > > https://github.com/apache/ozone/releases/tag/ozone-2.0.0-RC0
> > > > >> >> All resolved jiras:
> > > > >> >>
> > > > >>
> > > >
> > >
> >
> https://issues.apache.org/jira/issues/?jql=project%20%3D%20HDDS%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%202.0.0
> > > > >> >> Source code and binary tarball:
> > > > >> >> https://dist.apache.org/repos/dist/release/ozone/2.0.0-rc0/
> > > > >> >> The Maven artifacts are staged at:
> > > > >> >>
> > > > >>
> > >
> https://repository.apache.org/content/repositories/orgapacheozone-1029/
> > > > >> >> PGP key: https://dist.apache.org/repos/dist/dev/ozone/KEYS
> > > > >> >> Fingerprint: 3ED23305D7631918
> > > > >> >>
> > > > >> >> Per Apache policy, this release candidate vote will open for 7
> > days
> > > > >> until
> > > > >> >> the end of March 28th 2025. PMC members can cast binding votes
> > > while
> > > > >> >> committers and community contributors are welcomed to cast
> > > > non-binding
> > > > >> >> votes.
> > > > >> >>
> > > > >> >> Best regards,
> > > > >> >> Weichiu
> > > > >> >>
> > > > >> >
> > > > >>
> > > > >
> > > >
> > >
> >
>

Reply via email to