This is an automated email from the ASF dual-hosted git repository.

jojochuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 022712a656 HDDS-15566. Move feature branch merge checklist to the 
website (#463)
022712a656 is described below

commit 022712a6568c444e756549409cad4f7e8a7f3fb2
Author: Ethan Rose <[email protected]>
AuthorDate: Mon Jul 20 16:35:57 2026 -0400

    HDDS-15566. Move feature branch merge checklist to the website (#463)
    
    Co-authored-by: Siyao Meng <[email protected]>
---
 cspell.yaml                                        |   3 +
 .../04-project/01-branches-and-tags.md             |  74 -------
 .../04-project/01-git/01-overview.md               |  28 +++
 .../04-project/01-git/02-release-branches.md       |  30 +++
 .../01-git/03-feature-branches/01-overview.md      |  51 +++++
 .../03-feature-branches/02-merge-checklist.md      |  97 +++++++++
 .../01-hdds-2939-filesystem-optimizations.md       | 109 ++++++++++
 .../02-hdds-3630-rocksdb-datanode.md               |  78 +++++++
 .../03-hdds-3698-non-rolling-upgrade.md            | 227 +++++++++++++++++++++
 .../04-hdds-3816-erasure-coding.md                 |  91 +++++++++
 .../05-hdds-4440-s3g-grpc-connections.md           | 107 ++++++++++
 .../06-hdds-4454-streaming-write-pipeline.md       |  80 ++++++++
 .../07-hdds-4944-s3-multi-tenancy.md               | 121 +++++++++++
 .../03-merged-branches/08-hdds-4948-scm-ha.md      | 116 +++++++++++
 .../03-merged-branches/09-hdds-5447-httpfs.md      |  74 +++++++
 .../10-hdds-5713-disk-balancer.md                  |  80 ++++++++
 .../03-merged-branches/11-hdds-6517-snapshots.md   |  59 ++++++
 .../12-hdds-7593-hsync-lease-recovery.md           |  68 ++++++
 .../13-hdds-7733-symmetric-key-tokens.md           |  58 ++++++
 .../14-hdds-10239-container-reconciliation.md      |  84 ++++++++
 .../15-hdds-10656-atomic-key-overwrite.md          |  54 +++++
 .../03-merged-branches/README.mdx                  |  15 ++
 .../01-git/03-feature-branches/README.mdx          |   7 +
 .../04-project/01-git/README.mdx                   |  11 +
 24 files changed, 1648 insertions(+), 74 deletions(-)

diff --git a/cspell.yaml b/cspell.yaml
index a2c778ba94..4222cf8d36 100644
--- a/cspell.yaml
+++ b/cspell.yaml
@@ -270,6 +270,9 @@ words:
 - minimising
 - tarballed
 - Namenodes
+- WIP
+- smoketest
+- microbenchmark
 - Jacoco
 - txn
 - Xfer
diff --git a/docs/08-developer-guide/04-project/01-branches-and-tags.md 
b/docs/08-developer-guide/04-project/01-branches-and-tags.md
deleted file mode 100644
index 24421b8b2b..0000000000
--- a/docs/08-developer-guide/04-project/01-branches-and-tags.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-sidebar_label: Branches and Tags
----
-
-# Git Branches and Tags
-
-The [Apache Ozone](https://github.com/apache/ozone) codebase on GitHub uses a 
small number of **long-lived branch patterns**, many **short-lived Jira-named 
branches**, and **signed tags** for releases. This page summarizes how they fit 
together for contributors and release managers.
-
-:::info Product repo versus this website
-
-Branch and tag names below refer to 
**[`apache/ozone`](https://github.com/apache/ozone)**. The documentation site 
you are reading is 
**[`apache/ozone-site`](https://github.com/apache/ozone-site)** and follows its 
own branching (for example `master` and `asf-site` for publishing).
-
-:::
-
-## The `master` branch
-
-Day-to-day development targets **`master`** in 
[`apache/ozone`](https://github.com/apache/ozone). Pull requests from forks are 
usually opened against `master`, and GitHub Actions CI 
([`build-branch`](https://github.com/apache/ozone/blob/master/.github/workflows/post-commit.yml))
 validates proposed changes.
-
-The community tries to keep **`master` in a releasable state**: it should 
build, tests should be in good shape, and risky work should not land without 
review and appropriate checks. That expectation is why large or disruptive 
efforts are often done on **feature branches** (see below) and merged only 
after broader validation.
-
-For routine contribution steps (fork, branch, PR, Jira), see [Ozone 
`CONTRIBUTING.md`](https://github.com/apache/ozone/blob/master/CONTRIBUTING.md).
-
-## Release branches
-
-When the project prepares a **minor** (or major) release, maintainers cut a 
**release branch** from an agreed point on `master`. The naming pattern is:
-
-`ozone-<major>.<minor>`
-
-Examples: `ozone-2.0`, `ozone-2.1`. **Patch** releases for that line (for 
example 2.0.1) are typically produced from the same branch. 
Details—`proto.lock` updates, bumping the SNAPSHOT on `master`, tagging—are in 
the [Apache release manager guide](./release-guide).
-
-Release branches are **not** where general feature development happens; fixes 
that belong in the release are cherry-picked or landed on the release branch as 
described in that guide.
-
-## Tags
-
-Ozone uses **annotated Git tags** on 
[`apache/ozone`](https://github.com/apache/ozone) to mark release candidates 
and final releases. You will see names such as:
-
-- **`ozone-2.1.0`**, **`ozone-2.0.0`** — final release tags  
-- **`ozone-2.1.0-RC0`**, **`ozone-2.1.0-RC1`**, … — release candidate tags  
-
-Tags appear on the [Tags](https://github.com/apache/ozone/tags) page and drive 
[GitHub Releases](https://github.com/apache/ozone/releases). Creating and 
pushing the final tag is part of the release process in the [release manager 
guide](./release-guide).
-
-## Feature branches
-
-### When to use a feature branch
-
-Feature branches are used for **larger or longer-running work** that would be 
hard to land incrementally on `master` without destabilizing it—subsystems that 
need many coordinated changes, long QA cycles, or broad community testing 
before merge.
-
-Smaller changes should continue to use **topic branches on a fork** and normal 
pull requests to `master` (see 
[`CONTRIBUTING.md`](https://github.com/apache/ozone/blob/master/CONTRIBUTING.md)).
-
-In the upstream repo, feature lines often show up as branches named after the 
Jira, for example `HDDS-3816-ec` or `HDDS-10611-mpu` (see 
[Branches](https://github.com/apache/ozone/branches)).
-
-### Merge process and community vote
-
-Merging a shared feature branch into `master` is a **formal step**: the 
community typically discusses and **votes on the dev mailing list** so people 
can test the line and agree it is ready. Expectations are described on the wiki 
page **[Merging 
branches](https://cwiki.apache.org/confluence/display/OZONE/Merging+branches)**.
-
-Important points from that process (see the wiki for the full text):
-
-- **Do not use GitHub “Squash and merge” or rebase** to land the feature 
branch onto `master`. Use a **regular `git merge`** so history, Jira links, and 
PR discussions stay aligned with the original commit IDs.
-- Maintainers run **full CI multiple times** on the revision proposed for 
merge and investigate failures.
-- **Documentation** and **design** updates should live in the versioned tree 
under `hadoop-hdds/docs` (not only on the wiki), where applicable.
-- The wiki also calls out areas such as S3 behavior, Docker Compose / 
acceptance tests, Kubernetes examples, SonarCloud, upgrade compatibility, 
licensing, and performance—so reviewers know what to validate.
-
-### Checklist (wiki and PR, not duplicated here)
-
-The **[Merging 
branches](https://cwiki.apache.org/confluence/display/OZONE/Merging+branches)** 
page includes a detailed **checklist** and a **copy-paste template**. That list 
is maintained on Confluence so it can evolve with the project.
-
-**You do not need to mirror the full checklist on this website.** For a given 
merge, attach or link the completed checklist in the **GitHub merge pull 
request** and in the **mailing-list thread** (for example 
`[email protected]`) so reviewers and voters have one place to read it.
-
-## See also
-
-- [Apache release manager guide](./release-guide) — release branches, RC tags, 
and publishing
-- [Merging 
branches](https://cwiki.apache.org/confluence/display/OZONE/Merging+branches) — 
feature-branch merge expectations and checklist
-- [Ozone 
`CONTRIBUTING.md`](https://github.com/apache/ozone/blob/master/CONTRIBUTING.md) 
— everyday PR workflow to `master`
-- [`.github/ci.md`](https://github.com/apache/ozone/blob/master/.github/ci.md) 
— what CI runs on branches and PRs
diff --git a/docs/08-developer-guide/04-project/01-git/01-overview.md 
b/docs/08-developer-guide/04-project/01-git/01-overview.md
new file mode 100644
index 0000000000..a0b7570db5
--- /dev/null
+++ b/docs/08-developer-guide/04-project/01-git/01-overview.md
@@ -0,0 +1,28 @@
+---
+sidebar_label: Overview
+---
+
+# Git Branches and Tags
+
+The [Apache Ozone](https://github.com/apache/ozone) codebase on GitHub uses a 
small number of **long-lived branch patterns**, many **short-lived Jira-named 
branches**, and **signed tags** for releases. This section covers how they fit 
together for contributors and release managers.
+
+:::info Product repo versus this website
+
+Branch and tag names below refer to 
**[`apache/ozone`](https://github.com/apache/ozone)**. The documentation site 
you are reading is 
**[`apache/ozone-site`](https://github.com/apache/ozone-site)** and follows its 
own branching (for example `master` and `asf-site` for publishing).
+
+:::
+
+## The `master` branch
+
+Day-to-day development targets **`master`** in 
[`apache/ozone`](https://github.com/apache/ozone). Pull requests from forks are 
usually opened against `master`, and GitHub Actions CI 
([`build-branch`](https://github.com/apache/ozone/blob/master/.github/workflows/post-commit.yml))
 validates proposed changes.
+
+The community tries to keep **`master` in a releasable state**: it should 
build, tests should be in good shape, and risky work should not land without 
review and appropriate checks. That expectation is why large or disruptive 
efforts are often done on **feature branches** and merged only after broader 
validation.
+
+For routine contribution steps (fork, branch, PR, Jira), see [Ozone 
`CONTRIBUTING.md`](https://github.com/apache/ozone/blob/master/CONTRIBUTING.md).
+
+## See also
+
+- [Ozone 
`CONTRIBUTING.md`](https://github.com/apache/ozone/blob/master/CONTRIBUTING.md) 
— everyday PR workflow to `master`
+- [`.github/ci.md`](https://github.com/apache/ozone/blob/master/.github/ci.md) 
— what CI runs on branches and PRs
+- [Release Manager Guide](../release-guide) — step-by-step release process
+
diff --git a/docs/08-developer-guide/04-project/01-git/02-release-branches.md 
b/docs/08-developer-guide/04-project/01-git/02-release-branches.md
new file mode 100644
index 0000000000..36d20e7ade
--- /dev/null
+++ b/docs/08-developer-guide/04-project/01-git/02-release-branches.md
@@ -0,0 +1,30 @@
+---
+sidebar_label: Release Branches
+---
+
+# Release Branches and Tags
+
+## Release branches
+
+When the project prepares a **minor** (or major) release, maintainers cut a 
**release branch** from an agreed point on `master`. The naming pattern is:
+
+`ozone-<major>.<minor>`
+
+Examples: `ozone-2.0`, `ozone-2.1`. **Patch** releases for that line (for 
example 2.0.1) are typically produced from the same branch. Details — 
`proto.lock` updates, bumping the SNAPSHOT on `master`, tagging — are in the 
[release manager guide](../release-guide).
+
+Release branches are **not** where general feature development happens; fixes 
that belong in the release are cherry-picked or landed on the release branch as 
described in that guide.
+
+## Tags
+
+Ozone uses **annotated Git tags** on 
[`apache/ozone`](https://github.com/apache/ozone) to mark release candidates 
and final releases. You will see names such as:
+
+- **`ozone-2.1.0`**, **`ozone-2.0.0`** — final release tags
+- **`ozone-2.1.0-RC0`**, **`ozone-2.1.0-RC1`**, … — release candidate tags
+
+Tags appear on the [Tags](https://github.com/apache/ozone/tags) page and drive 
[GitHub Releases](https://github.com/apache/ozone/releases). Creating and 
pushing the final tag is part of the release process in the [release manager 
guide](../release-guide).
+
+## See also
+
+- [Release Manager Guide](../release-guide) — step-by-step release process, RC 
tags, and publishing
+- [Feature branches](./feature-branches) — feature branch lifecycle and merge 
process
+- [Ozone 
`CONTRIBUTING.md`](https://github.com/apache/ozone/blob/master/CONTRIBUTING.md) 
— everyday PR workflow to `master`
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/01-overview.md 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/01-overview.md
new file mode 100644
index 0000000000..13ceba8dbb
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/01-overview.md
@@ -0,0 +1,51 @@
+---
+sidebar_label: Overview
+---
+
+# Feature Branches
+
+Feature branches are used for larger or longer-running work that would be hard 
to land incrementally on `master` without destabilizing it. Feature branches 
are often named after the Jira epic tracking the work and an abbreviated 
feature name, for example `HDDS-3816-ec` or `HDDS-10611-mpu`. You can see all 
the Ozone repo's branches [here](https://github.com/apache/ozone/branches). 
Most incremental changes do not require feature branches and can go directly to 
`master` as a pull request as [...]
+
+## When to use a feature branch
+
+Use a feature branch for changes that:
+
+- Make iterative changes to core code paths.
+- Require broader community testing.
+- Cannot be easily gated with a feature flag.
+  - The covers changes that migrate existing code paths instead of adding 
completely new ones.
+- Would have issues if a release was cut in the middle of their development.
+  - A release branch can be cut from `master` at any time and feature 
development should not block this.
+  - If a feature has upgrade compatibility concerns that will not be addressed 
right away, it should be developed on a feature branch.
+  - Note that protobuf messages and wire protocols become locked into 
compatibility guarantees once they are released.
+    - If a feature is making changes in this area and it wants to keep the 
structure flexible while it is being finalized, it should be done on a feature 
branch.
+
+## Keeping the feature branch up to date
+
+While development continues on `master`, periodically bring those changes into 
your feature branch (roughly every two weeks) so it does not drift too far and 
the eventual merge stays manageable. You can use either `git merge` or `git 
rebase` for this. Any merge commits created with this process will be removed 
before the branch is incorporated into `master` (see below), so both approaches 
lead to the same clean result.
+
+## Merge Process
+
+Merging a feature branch directly to master would carry the back-and-forth 
merge commits accumulated during development into `master`, where the layered 
merge commits become difficult to follow. Instead, the community votes on a 
frozen merge candidate branch that has been rebased onto `master`, similar to 
how a release candidate is voted on. Complete the following steps when a 
feature branch is ready to be merged into `master`:
+
+1. Create a merge candidate (`mc`) branch from your feature branch and rebase 
it onto `master`, for example `HDDS-3816-ec-mc0`. This accomplishes a few 
things:
+    - The rebase of the candidate branch will create new copies of the commits 
while leaving the original feature branch intact. It is non-destructive.
+    - The rebase erases any incremental merge commits in the candidate branch 
so `master` ends up with a clean history when the final candidate branch is 
merged.
+    - Voting happens on a frozen candidate. If development continues in the 
background on the feature branch it is clearly separated from what is being 
voted on.
+
+2. Complete the [branch merge checklist](./merge-checklist) for the merge 
candidate and raise it as a pull request to the 
[ozone-site](https://github.com/apache/ozone-site) repo's `master` branch.
+    - Feature branch merge checklists will be committed once the branch merge 
is approved.
+
+3. Start a mail thread on the `[email protected]` mailing list for 
committers and PMC members to vote on the merge candidate branch. Include a 
link to the branch merge checklist PR. The subject of the mail thread should 
contain the merge candidate number, and a new thread should be started for each 
merge candidate.
+
+4. If more changes are needed (for example, addressing review feedback), 
continue development on the original feature branch. Cut a new candidate 
(`mc1`, and so on) and re-vote as needed.
+
+5. If the vote passes, merge the candidate branch into `master` with a regular 
`git merge`, then development can continue on the `master` branch.
+    - The merge will need to be done locally by a committer and then pushed 
directly to the master branch, since Github is configured to only allow "Squash 
and merge" to incorporate changes from pull requests.
+    - The merge commit creates a single clear point in history where the whole 
feature was added, which helps with later tasks such as flaky test triage.
+
+## See also
+
+- [Release branches](../release-branches) — release branch lifecycle and tags
+- [Release Manager Guide](../../release-guide) — RC tags and publishing
+- [Ozone 
`CONTRIBUTING.md`](https://github.com/apache/ozone/blob/master/CONTRIBUTING.md) 
— everyday PR workflow to `master`
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/02-merge-checklist.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/02-merge-checklist.md
new file mode 100644
index 0000000000..389410544f
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/02-merge-checklist.md
@@ -0,0 +1,97 @@
+# Feature Branch Merge Checklist
+
+This section collects generic questions which can be checked for each feature 
branch. Some of them are obvious for some branches (for example: the 
decommissioning feature didn't change the s3 interface) but it's good to go 
through them for each of the merges. Answering these questions will also help 
the community to test the branch. If you have any new idea about what should be 
checked, submit a pull request to the 
[ozone-site](https://github.com/apache/ozone-site) repo to update this page.
+
+## Summary
+
+Include a brief summary of the feature, and fill in the following information:
+
+- Branch name: `<feature branch to be merged>`
+- Jira: `<Jira epic tracking all subtasks of the feature>`
+- Commit: `<Git hash of the commit at the tip of the branch that will be 
merged>`
+
+## Stable Builds
+
+To keep the master branch stable, it's recommended to run the full CI build 
3-5 times on the latest commit proposed to be merged. Any failure should be 
analyzed and checked against previous failures on master to see if it is 
related to the branch.
+
+All CI runs for the feature branch can be checked at 
`github.com/apache/ozone/actions?query=<BRANCH_NAME>`.
+
+## User Documentation
+
+Adding user documentation before the merge will help the community test and 
evaluate the feature. User documentation should be added to this website with a 
pull request to the [ozone-site](https://github.com/apache/ozone-site) repo. 
Note that the documentation will be listed under the `next` version section 
until it is included in a release.
+
+## Developer Documentation
+
+If the feature required a design document, ensure its PR is approved and it 
has been committed under the main Ozone repo's 
`hadoop-hdds/docs/content/design/` directory so it is preserved in the source 
history.
+
+## S3 Compatibility
+
+Explain how any S3 API behavior changes with the addition of this feature.
+
+## Docker Compose and Acceptance Tests
+
+Verify that Docker-compose clusters still start correctly. Add or update Robot 
Framework acceptance tests in `hadoop-ozone/dist/src/main/compose` to cover the 
new feature's behavior and allow other developers to test it in a local 
environment.
+
+## Containers and Kubernetes
+
+If the feature affects cluster topology, configuration, or runtime behavior, 
update the Kubernetes example manifests under `hadoop-ozone/dist/src/main/k8s`.
+
+## Code Coverage and Quality
+
+Review the 
[SonarCloud](https://sonarcloud.io/project/overview?id=apache_ozone) metrics 
for the branch and compare them against `master`. Regressions in coverage, 
duplications, or code smells should be addressed before merge.
+
+## Build Time
+
+The ASF uses a shared pool of Github Actions CI minutes for all projects, so 
we should avoid significant increase of the build time unless it's fully 
necessary. Compare the end-to-end CI build duration of the feature branch 
against `master`. Flag significant regressions so the community can decide 
whether they are acceptable.
+
+All Github actions runs for a branch can be found at 
`github.com/apache/ozone/actions?query=<BRANCH_NAME>`.
+
+## Incompatible Changes
+
+Ozone currently supports non-rolling upgrades and downgrades even when 
backwards incompatible features are present. Backwards incompatible features 
should be added to the versioning framework so that they are not used until the 
Ozone upgrade is finalized, after which downgrading is not possible.
+
+Client cross compatibility should also be maintained as much as possible, with 
sensible error messages provided when this is not possible. An old client 
should be able to talk to the new Ozone instance, and a new client should be 
able to talk to the old Ozone instance.
+
+## Third Party Dependencies or License Changes
+
+Diff the distribution tar files to identify any new or updated third-party 
libraries. For each new library, update `LICENSE` and `NOTICE` in the 
appropriate module so the release artifacts remain license-compliant.
+
+The easiest way to check this is by building Ozone from the feature branch and 
from master, then comparing the files between them:
+
+```shell
+git checkout origin/master
+mvn clean install -DskipTests
+cd hadoop-ozone/dist/target/ozone-*/
+find -type f | sort > /tmp/master
+
+git checkout origin/$BRANCH_NAME
+mvn clean install -DskipTests
+cd hadoop-ozone/dist/target/ozone-*/
+find -type f | sort > /tmp/$BRANCH_NAME
+
+git diff /tmp/$BRANCH_NAME /tmp/master
+```
+
+## Performance
+
+Share `ozone freon` benchmark results that demonstrate the performance impact 
of the feature. Include baseline numbers from `master` so the community can 
evaluate the delta. Feature branches should not introduce performance 
regressions, but in some cases they may improve performance.
+
+## Security Considerations
+
+Document any new attack surfaces, privilege changes, or cryptography 
decisions. Pay particular attention to input validation for features that add 
network-accessible endpoints or handle user-supplied data.
+
+## Configuration Changes
+
+Document any new configuration keys added or existing configurations whose 
defaults were changed by this feature and what their impact will be.
+
+## Dangling TODO Comments
+
+`TODO` comments are often left in the code when working on a feature branch 
for ideas that need to be worked out later or were split into smaller PRs. If 
there are new `TODO` comments introduced by the branch, ensure that the comment 
also contains the ID of an open Jira which will resolve it and document this 
existing gap. For example:
+
+```java
+// TODO HDDS-1234: Finalize the return type of this method.
+```
+
+There should be no new `TODO`s that do not contain references to open Jiras.
+
+To see all TODOs unique to your branch from `master`, check out your feature 
branch and run `git diff master... | grep -i todo`.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/01-hdds-2939-filesystem-optimizations.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/01-hdds-2939-filesystem-optimizations.md
new file mode 100644
index 0000000000..c7f9754177
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/01-hdds-2939-filesystem-optimizations.md
@@ -0,0 +1,109 @@
+# HDDS-2939: FileSystem Optimizations
+
+Presently, a rename/delete operation can become prohibitively expensive for 
such directories which have large sub-trees/sub-paths. Ozone does rename/delete 
each and every sub-file & sub-dir under the given directory via multiple RPC 
calls to OM thus makes it very expensive. Also, rename and delete doesn't 
guarantee the atomicity.
+
+The prefix based FileSystem optimization idea allows performing rename, delete 
of any directory in a deterministic/constant time atomically. Now, Ozone 
performs rename/delete operations in a single RPC call by sending only the 
given directory to OM. It will finish rename, delete operations with O(1) 
complexity. Also, makes it possible to support atomic rename/delete of any 
directory at any level in the namespace.
+
+## Git Branch
+
+Implementing this in a separate feature 
[HDDS-2939](https://github.com/apache/ozone/tree/HDDS-2939) branch. Thanks to 
all contributors/reviewers.
+
+## How to enable prefix based optimization feature
+
+Following are the set of configurations to be configured in 
`ozone-default.xml` to enable this feature. By default, the feature will be 
turned OFF.
+
+An example of `ozone-site.xml`
+
+```xml
+<configuration>
+  <property>
+    <name>ozone.om.enable.filesystem.paths</name>
+    <value>true</value>
+  </property>
+  
+  <property>
+    <name>ozone.om.metadata.layout</name>
+    <value>prefix</value>
+  </property>
+</configuration>
+```
+
+## Related documents
+
+- [Performance Test 
Report](https://issues.apache.org/jira/secure/attachment/13023395/Performance%20Comparison%20Between%20%20Master%20and%20HDDS-2939%20branch-Report-001.pdf)
+
+## 1. builds/intermittent test failures
+
+There are no intermittent failures specific to the HDDS-2939 branch as of now. 
During the development , it was ensured all the CI checks are clean prior to 
every commit merge .The plan is to run repeated CI checks on the merge commit 
to master.
+
+## 2. documentation
+
+Described feature in Apache Ozone page via HDDS-5067.
+
+- 
[Hadoop-HDDs/docs/content/feature/PrefixFSO.md](https://github.com/apache/ozone/blob/HDDS-2939/hadoop-hdds/docs/content/feature/PrefixFSO.md)
 has the feature details and related configurations.
+
+## 3. design, attached the docs
+
+Following design docs are linked from the documentation present in HDDS-2939 
Jira
+
+- [Design 
Document](https://issues.apache.org/jira/secure/attachment/12991926/Ozone%20FS%20Namespace%20Proposal%20v1.0.docx)
+- [Internal design - metadata 
format](https://issues.apache.org/jira/secure/attachment/13023399/OzoneFS%20Optimizations_DesignOverview_%20HDDS-2939.pdf)
+- 
[Hadoop-HDDs/docs/content/feature/PrefixFSO.md](https://github.com/apache/ozone/blob/HDDS-2939/hadoop-hdds/docs/content/feature/PrefixFSO.md)
 has the feature details and related configurations.
+
+## 4. S3 compatibility
+
+There are no incompatibilities with respect to S3. This feature can be enabled 
only together with `ozone.OM.enable.filesystem.paths`. When file system-style 
path handling is enabled, 100 % S3 compatibility could not be guaranteed. FS 
compatible S3 key names supposed to be working well, but non-fs compatible, 
extra key names (like `a/../b1` or real file with the name `key1/` might be 
normalized or rejected by the implementation of 
`ozone.OM.enable.filesystem.paths`)
+
+Note: Added S3 acceptance test with feature is turned on - PREFIX layout.
+
+## 5. Docker-compose / acceptance tests
+
+The `compose/ozone` cluster is modified with testing `ozonefs/ozonefs.robot` 
with or without turning on the new feature. (both ofs and o3fs and linked and 
unlinked bucket are tested...)
+
+## 6. support of containers / Kubernetes
+
+NA. Deployment model for OzoneManager remains as earlier.
+
+Example files are committed with HDDS-5018
+
+## 7. coverage/code quality
+
+[Sonar master 
branch](https://sonarcloud.io/dashboard?branch=master&id=hadoop-ozone)
+[Sonar HDDS-2939 
branch](https://sonarcloud.io/dashboard?branch=HDDS-2939&id=hadoop-ozone)
+
+The branch has better coverage than master (73.5% vs 742.2%) but two new Sonar 
bugs are introduced (169 vs 171)
+
+## 8. build time
+
+There is no significant difference between local build time.
+
+[Recent master build](https://github.com/apache/ozone/pull/2132/checks)
+
+---
+
+[Recent HDDS-2939 branch 
build](https://github.com/apache/ozone/pull/2151/checks)
+
+---
+
+- **test time of acceptance unsecure is increased with ~3 minutes**
+- **integration test is increased with ~4 mins**
+
+## 9. possible incompatible changes/used feature flag
+
+For using this feature, "ozone.OM.metadata.layout" config needs to be set to 
be true in `ozone-site.xml`
+
+The new metadata layout is supported only in a fresh cluster and the layout 
detail is stored in per-bucket. Presently, both old and new metadata layout 
buckets can't co-exists in the same cluster. User can't start OM in new 
layout(prefix) if there are existing old layout buckets(simple) and vice-versa. 
Work is in progress to support the existing old buckets to be available in new 
layout, this will be supported in the next development phase.
+
+## 10. third party dependencies/license changes
+
+No new dependencies are added.
+
+## 11. performance
+
+Done testing to evaluate the performance of delete, rename operations in 
feature branch vs master code base. Following charts capturing the directory 
delete and rename operations execution time shows that, feature branch has a 
very significant performance gain compared to the master.
+
+Ran `freon dtsg` dfs tree generator benchmark test in a single node cluster. 
V0 represents master code(simple) and V1 represents feature branch(prefix). 
Please refer to the [Jira 
document](https://issues.apache.org/jira/secure/attachment/13023395/Performance+Comparison+Between++Master+and+HDDS-2939+branch-Report-001.pdf)
 for more details.
+
+## 12. security considerations
+
+Everything works as earlier and there is no security implications because of 
the feature.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/02-hdds-3630-rocksdb-datanode.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/02-hdds-3630-rocksdb-datanode.md
new file mode 100644
index 0000000000..599445d821
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/02-hdds-3630-rocksdb-datanode.md
@@ -0,0 +1,78 @@
+# HDDS-3630: RocksDB in Datanode
+
+Git branch:  https://github.com/apache/ozone/tree/HDDS-3630
+
+Currently there will be one RocksDB for each Container on Datanode, which 
leads to hundreds of thousands of RocksDB instances on one Datanode. It's very 
challenging to manage this amount of RocksDB instances in one JVM. Please refer 
to the "problem statement" section of the design document[1] for challenge 
details. Unlike the current approach, Datanode RocksDB merge feature will use 
only one RocksDB for each data volume. With far fewer RocksDB instances to 
manage, the write path performa [...]
+
+To enable the feature, the following configs need to be added to Ozone 
Manager's `ozone-site.xml`.
+
+```xml
+<property>
+   <name>hdds.datanode.container.schema.v3.enabled</name>
+   <value>false</value>
+</property>
+<property>
+    <name>Hdds.datanode.container.db.dir</name>
+    <description>Determines where the per-disk rocksdb instances will be
+      stored. This setting is optional. If unspecified, then rocksdb instances 
are stored on the same disk as HDDS data.
+      The directories should be tagged with corresponding storage types 
([SSD]/[DISK]/[ARCHIVE]/[RAM_DISK]) for storage policies.
+      The default storage type will be DISK if the directory does not have a 
storage typetagged explicitly.
+      Ideally, this should be mapped to a fast disk like an SSD.</description>
+</property>
+<property>
+    <name>Hdds.datanode.failed.db.volumes.tolerated</name>
+    <value>-1</value>
+    <description>The number of db volumes that are allowed to fail before a 
datanode stops offering service.
+        Default -1 means unlimited, but we should have at least one good 
volume left.</description>
+</property>
+```
+
+## 1. Builds/intermittent test failures
+
+No additional flaky tests have been introduced by the feature branch.
+
+## 2. Documentation
+
+Documentation is being added by 
[HDDS-6790](https://issues.apache.org/jira/browse/HDDS-6790)
+
+## 3. Design, attached the docs
+
+The design docs can be found under the Attachments section in the umbrella 
Jira: [HDDS-3630](https://issues.apache.org/jira/browse/HDDS-3630)
+
+## 4. Compatibility
+
+Merge RocksDB in Datanode feature does not change any existing Datanode API. 
All container data with the existing Ozone cluster will remain their current 
format and can always be accessible after the Datanode upgrade.
+
+## 5. Docker-compose / acceptance tests
+
+New acceptance test is being added by Jira: 
[HDDS-6791](https://issues.apache.org/jira/browse/HDDS-6791)
+
+## 6. Support of containers / Kubernetes
+
+No addition.
+
+## 7. Coverage/code quality
+
+[Current feature branch 
coverage](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-3630)
 is **85.0%** (vs [82.3 % of master 
branch](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=master))
+
+## 8. Build time
+
+No significant build time difference has been observed.
+
+master branch succeeded 3 days ago in 9m 9s:
+
+Feature branch succeeded 7 days ago in 8m 42s:
+
+## 9. Possible incompatible changes/used feature flag
+
+There should not be any incompatible changes introduced with this feature.
+
+A global enable/disable switch for the this feature is added in 
[HDDS-6541](https://issues.apache.org/jira/browse/HDDS-6541) .
+
+## 10. Third party dependencies/license changes
+
+There is no third party dependencies introduced by this feature.
+
+## 11. Performance
+
+We have tested major Datanode activities which require RocksDB operation, 
include container create & close & delete, and block put & get.  Except that 
container delete performance drops because container metadata KV need to be 
deleted from RocksDB, other four major activities all have performance improved.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/03-hdds-3698-non-rolling-upgrade.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/03-hdds-3698-non-rolling-upgrade.md
new file mode 100644
index 0000000000..4b522d86e7
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/03-hdds-3698-non-rolling-upgrade.md
@@ -0,0 +1,227 @@
+# HDDS-3698: Non-Rolling Upgrade
+
+## 1. stable builds/intermittent test failures
+
+- The `HDDS-3698-nonrolling-upgrade` branch has no intermittent test failures.
+- Most intermittent failures specific to the `HDDS-3698-nonrolling-upgrade` 
branch were tracked and resolved in 
[HDDS-4833](https://issues.apache.org/jira/browse/HDDS-4833).
+- Other intermittent failures have been resolved in 
[HDDS-5109](https://issues.apache.org/jira/browse/HDDS-5109) and 
[HDDS-5336](https://issues.apache.org/jira/browse/HDDS-5336).
+
+## 2. documentation
+
+- `hadoop-hdds/docs/feature/design/how-to-do-a-nonrolling-upgrade.md` contains 
instructions for users to upgrade a cluster using the framework.
+
+- Documentation will be refined in coming weeks, before it is needed in the 
1.2.0 release.
+
+## 3. design, attached the docs
+
+- `Hadoop-hdds/docs/content/design/upgrade-dev-primer.md` contains 
instructions for developers who need to add a feature using the upgrade 
framework.
+- `hadoop-hdds/docs/content/design/nonrolling-upgrade.md` contains links to 
the main design document and presentation.
+- `hadoop-hdds/docs/content/design/omprepare.md` contains links and summary 
for OM preparation design document.
+
+## 4. S3 compatibility
+
+- There are no S3 incompatibilities. This code was not changed.
+
+## 5. Docker-compose / acceptance tests
+
+- Upgrades can be done in Docker-compose to/from any Ozone version which has a 
Docker image, or to the current code.
+- See `Hadoop-ozone/dist/src/main/compose/upgrade/README.md` for more 
information.
+
+## 6. support of containers / Kubernetes
+
+- The upgrade framework will not effect Kubernetes deployments, since it does 
not require additional configuration for startup.
+
+## 7. coverage/code quality
+
+- [Sonar for master](https://sonarcloud.io/dashboard?id=hadoop-ozone)
+
+  - Code coverage: 74.8%
+
+- [Sonar for 
upgrades](https://sonarcloud.io/dashboard?branch=HDDS-3698-nonrolling-upgrade&id=hadoop-ozone)
+
+  - Code coverage: 73.3%
+
+- OM Prepare and general upgrade flow are tested through new acceptance tests 
which are not reflected in the code coverage.
+
+## 8. build time
+
+- Recent passing runs from master:
+  - https://github.com/apache/ozone/actions/runs/927339353 (2:09)
+  - https://github.com/apache/ozone/actions/runs/923891108 (1:49)
+  - https://github.com/apache/ozone/actions/runs/923951010 (2:02)
+
+- Recent passing runs from upgrade branch:
+  - https://github.com/apache/ozone/actions/runs/923010777 (2:02)
+  - https://github.com/apache/ozone/actions/runs/941546330 (1:58)
+
+- Although lots of upgrade specific tests were added, the following are the 
most time consuming:
+
+1. New upgrade acceptance tests, which walk through a cluster upgrade from the 
last release's Docker image to the current build, in order to catch backwards 
incompatible changes.
+
+```text
+
+- Although we previously had upgrade tests on master, the added tests use the 
upgrade framework which uses more commands and tests, and therefore takes 
longer to run.
+
+```
+
+- New upgrade integration tests in TestHDDSUpgrade, which test various failure 
combinations that could occur during the upgrade.
+
+```text
+
+- Only a subset of these tests are currently being run to save time.
+
+```
+
+- New integration tests in TestOzoneManagerPrepare, which tests OM 
preparations under various failure and request combinations.
+
+## 9. possible incompatible changes/used feature flag
+
+There are no incompatible changes and no feature flags. The upgrade framework 
will only be used during an upgrade.
+
+## 10. third party dependencies/license changes
+
+- The following dependencies have been added:
+
+  - `aspectjrt-1.8.9.jar`
+  - `aspectjweaver-1.8.9.jar`
+  - reflections-0.9.12.jar
+
+- All new libraries have compatible licenses. (License file update: HDDS-5137)
+
+## 11. performance
+
+- The majority of the upgrade framework is not used when an upgrade is not 
being performed, so it is not expected to have a performance impact.
+
+- `LayoutVersionInstanceFactory` was added to potentially handle client 
requests within `OzoneManagerRatisUtils`, although this is not being used yet 
to accommodate HDDS-2939 (filesystem optimizations).
+
+- Changes do not seem to affect performance based on simple freon testing (3 
runs per branch):
+
+`ozone freon rk --num-of-keys=100 --num-of-buckets=10 --num-of-volumes=1 
--replication-type=RATIS --factor=THREE`
+
+`HDDS-3698-nonrolling-upgrade`:
+
+```text
+
+***************************************************
+Status: Success
+Git Base Revision: 7a3bc90b05f257c8ace2f76d74264906f0f7a932
+Number of Volumes created: 1
+Number of Buckets created: 10
+Number of Keys added: 1000
+Ratis replication factor: THREE
+Ratis replication type: RATIS
+Average Time spent in volume creation: 00:00:00,013
+Average Time spent in bucket creation: 00:00:00,050
+Average Time spent in key creation: 00:00:02,493
+Average Time spent in key write: 00:00:01,163
+Total bytes written: 10240000
+Total Execution time: 00:00:20,679
+***************************************************
+
+```
+
+```text
+
+***************************************************
+Status: Success
+Git Base Revision: 7a3bc90b05f257c8ace2f76d74264906f0f7a932
+Number of Volumes created: 1
+Number of Buckets created: 10
+Number of Keys added: 1000
+Ratis replication factor: THREE
+Ratis replication type: RATIS
+Average Time spent in volume creation: 00:00:00,007
+Average Time spent in bucket creation: 00:00:00,065
+Average Time spent in key creation: 00:00:02,014
+Average Time spent in key write: 00:00:01,144
+Total bytes written: 10240000
+Total Execution time: 00:00:23,661
+***************************************************
+
+```
+
+```text
+
+***************************************************
+Status: Success
+Git Base Revision: 7a3bc90b05f257c8ace2f76d74264906f0f7a932
+Number of Volumes created: 1
+Number of Buckets created: 10
+Number of Keys added: 1000
+Ratis replication factor: THREE
+Ratis replication type: RATIS
+Average Time spent in volume creation: 00:00:00,006
+Average Time spent in bucket creation: 00:00:00,089
+Average Time spent in key creation: 00:00:02,442
+Average Time spent in key write: 00:00:01,076
+Total bytes written: 10240000
+Total Execution time: 00:00:23,655
+***************************************************
+
+```
+
+master:
+
+```text
+
+***************************************************
+Status: Success
+Git Base Revision: 7a3bc90b05f257c8ace2f76d74264906f0f7a932
+Number of Volumes created: 1
+Number of Buckets created: 10
+Number of Keys added: 1000
+Ratis replication factor: THREE
+Ratis replication type: RATIS
+Average Time spent in volume creation: 00:00:00,007
+Average Time spent in bucket creation: 00:00:00,046
+Average Time spent in key creation: 00:00:02,422
+Average Time spent in key write: 00:00:01,411
+Total bytes written: 10240000
+Total Execution time: 00:00:25,699
+***************************************************
+
+```
+
+```text
+
+***************************************************
+Status: Success
+Git Base Revision: 7a3bc90b05f257c8ace2f76d74264906f0f7a932
+Number of Volumes created: 1
+Number of Buckets created: 10
+Number of Keys added: 1000
+Ratis replication factor: THREE
+Ratis replication type: RATIS
+Average Time spent in volume creation: 00:00:00,006
+Average Time spent in bucket creation: 00:00:00,039
+Average Time spent in key creation: 00:00:02,762
+Average Time spent in key write: 00:00:01,466
+Total bytes written: 10240000
+Total Execution time: 00:00:23,617
+***************************************************
+
+```
+
+```text
+
+***************************************************
+Status: Success
+Git Base Revision: 7a3bc90b05f257c8ace2f76d74264906f0f7a932
+Number of Volumes created: 1
+Number of Buckets created: 10
+Number of Keys added: 1000
+Ratis replication factor: THREE
+Ratis replication type: RATIS
+Average Time spent in volume creation: 00:00:00,006
+Average Time spent in bucket creation: 00:00:00,029
+Average Time spent in key creation: 00:00:01,975
+Average Time spent in key write: 00:00:01,040
+Total bytes written: 10240000
+Total Execution time: 00:00:23,677
+***************************************************
+
+```
+
+## 12. security considerations
+
+The branch introduced the RPC methods in the `ScmAdminProtocol.proto` to 
initialize (and finalize) the upgrade process. They are available only to the 
admins (HDDS-5138).
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/04-hdds-3816-erasure-coding.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/04-hdds-3816-erasure-coding.md
new file mode 100644
index 0000000000..055f80ea8e
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/04-hdds-3816-erasure-coding.md
@@ -0,0 +1,91 @@
+# HDDS-3816: Erasure Coding Phase 1
+
+Distributed systems basic expectation is to provide the data durability.
+To provide the higher data durability, many popular storage systems use 
replication
+approach which is expensive. The Apache Ozone supports `RATIS/THREE` 
replication scheme.
+The Ozone default replication scheme `RATIS/THREE` has 200% overhead in storage
+space and other resources (e.g., network bandwidth).
+However, for warm and cold datasets with relatively low I/O activities, 
additional
+block replicas rarely accessed during normal operations, but still consume the 
same
+amount of resources as the first replica.
+
+Therefore, a natural improvement is to use Erasure Coding (EC) in place of 
replication,
+which provides the same level of fault-tolerance with much less storage space.
+In typical EC setups, the storage overhead is no more than 50%. The 
replication factor of an EC file is meaningless.
+Instead of replication factor, we introduced ReplicationConfig interface to 
specify the required type of replication,
+either `RATIS/THREE` or `EC`.
+
+Integrating EC with Ozone can improve storage efficiency while still providing 
similar
+data durability as traditional replication-based Ozone deployments.
+As an example, a 3x replicated file with 6 blocks will consume 6*3 = `18` 
blocks of disk space.
+But with EC (6 data, 3 parity) deployment, it will only consume `9` blocks of 
disk space.
+
+## Git Branch
+
+## 1. builds/intermittent test failures
+
+There are no intermittent failures specific to the HDDS-3861-EC branch as of 
now. During the development , it was ensured
+
+all the CI checks are clean prior to every commit merge .The plan is to run 
repeated CI checks on the merge commit to master.
+
+## 2. documentation
+
+Described feature in Apache Ozone page via 
[HDDS-6172](https://issues.apache.org/jira/browse/HDDS-6172) .
+
+- 
[Hadoop-HDDs/docs/content/feature/ErasureCoding.md](https://github.com/apache/ozone/blob/HDDS-3816-ec/hadoop-hdds/docs/content/feature/ErasureCoding.md)
 has the feature details and related configurations.
+
+## 3. design, attached the docs
+
+Following design docs are linked from the documentation present in 
[HDDS-6172](https://issues.apache.org/jira/browse/HDDS-6172)  Jira
+
+- [Design 
Document](https://issues.apache.org/jira/secure/attachment/13021096/Ozone%20EC%20v3.pdf)
+- 
[Hadoop-HDDs/docs/content/feature/Hadoop-HDDs/docs/content/feature/ErasureCoding.md](https://github.com/apache/ozone/blob/HDDS-3816-ec/hadoop-hdds/docs/content/feature/ErasureCoding.md)
 has the feature details and related configurations.
+
+## 4. S3 compatibility
+
+EC feature does not beak any existing S3 compatibility. Please note S3 support 
is not ready yet for EC though. But this should not be a blocker for merge.
+
+## 5. Docker-compose / acceptance tests
+
+Acceptance tests added 
[HDDS-6231](https://issues.apache.org/jira/browse/HDDS-6231)
+
+## 6. support of containers / Kubernetes
+
+NA. Deployment model for OzoneManager remains as earlier.
+
+## 7. coverage/code quality
+
+[Sonar master 
branch](https://sonarcloud.io/dashboard?branch=master&id=hadoop-ozone)
+[Sonar HDDS-3816-EC 
branch](https://sonarcloud.io/dashboard?branch=HDDS-3816-ec&id=hadoop-ozone)
+
+The branch has better coverage than master (68% vs 72%)
+
+## 8. build time
+
+There is no significant difference between local build time.
+
+[Recent master build](https://github.com/apache/ozone/actions/runs/1807694482)
+
+[Recent HDDS-3816-EC branch 
build](https://github.com/apache/ozone/actions/runs/1826490688)
+
+## 9. possible incompatible changes/used feature flag
+
+For using this feature, users create bucket with EC replication config, so 
that the keys created in that bucket will be written in EC mode.
+
+Upgrade: Before finalization, we would like to reject EC related requests. 
Even though EC feature not introduced any new APIs, but parameters carry 
different values to indicate EC options. So, We needed some special handling to 
check the parameters level and validate the requests. Related upgrade JIRAs 
being worked on are: 
[HDDS-6213](https://issues.apache.org/jira/browse/HDDS-6213) and 
[HDDS-5909](https://issues.apache.org/jira/browse/HDDS-5909)
+
+Compatibility Changes: Currently forward compatibility broken due to the 
introduction if server side defaults and removal of client side default 
configurations. This is also being work on 
[HDDS-6209](https://issues.apache.org/jira/browse/HDDS-6209)
+
+We are tracking down the above issues before the merge.
+
+## 10. third party dependencies/license changes
+
+No new dependencies are added.
+
+## 11. performance
+
+There should not be any performance impact for Non-EC flows. For EC files 
there is basic benchmark performed 
[HDDS-6194](https://issues.apache.org/jira/browse/HDDS-6194) .
+
+## 12. security considerations
+
+Everything works as earlier and there is no security implications because of 
the feature.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/05-hdds-4440-s3g-grpc-connections.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/05-hdds-4440-s3g-grpc-connections.md
new file mode 100644
index 0000000000..b41a744c22
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/05-hdds-4440-s3g-grpc-connections.md
@@ -0,0 +1,107 @@
+# HDDS-4440: S3G gRPC Connections
+
+## Checklist
+
+### 1. stable builds/intermittent test failures
+
+There are no intermittent test failures specific to the 
**HDDS-4440-S3-performance** feature branch.  On each commit during 
development, it was ensured that all CI workflow tests passed prior to the 
commit merge.  To keep the master branch stable, full CI workflow runs are run 
multiple times on the latest commit prior to the final merge.
+
+### 2. documentation
+
+Documented in Apache Ozone Design docs as HDDS-4440 Proposed persistent OM 
connection for S3 Gateway.
+
+- 
[Hadoop-HDDs/docs/content/design/S3-performance.md](https://ci-hadoop.apache.org/view/Hadoop%20Ozone/job/ozone-doc-master/lastSuccessfulBuild/artifact/hadoop-hdds/docs/public/design/s3-performance.html)
+
+### 3. design, attached the docs
+
+Design found in Jira HDDS-4440 and supporting related Jiras HDDS-5881, 
HDDS-5630.  ASF feature branch slack channel is, #ozone-s3g-gRPC.
+
+### 4. S3 compatibility
+
+This feature tries to provide 100% S3 compatibility when 
Ozone.OM.enable.filesystem.paths=false.  This feature branch provides an 
enhancement to S3 Gateway behavior for handling and relaying S3 errors to the 
client.
+
+Whereas the existing gateway implementation returns an ambiguous 500 HTTP 
response code with INTERNAL_ERROR in the event of client connection failures, 
this feature returns standard S3 errors for most errors.
+
+This holds true except in the event the initial persistent connection cannot 
be established between the S3 Gateway and the Ozone Manager.  In this case the 
500 HTTP response is returned to the caller.
+
+### 5. Docker-compose / acceptance tests
+
+Added enabling Ozone Manager gRPC server service to each Docker-config for the 
development clusters: `ozone`, `ozonesecure`, `ozone-ha` and `ozonesecure-ha`.
+
+To test the S3 Gateway performance persistent connection gRPC feature with 
Docker-compose / acceptance tests.   Add the following configuration key 
settings to the `docker-compose.yaml` : OM container - 
`OZONE-SITE.XML_ozone.om.s3.grpc.server_enabled: "true"` & s3g container - 
`OZONE-SITE.XML_ozone.om.transport.class: 
"org.apache.hadoop.ozone.om.protocolPB.GrpcOmTransportFactory"`.
+
+Then run acceptance tests, `test.sh`, for development cluster configured 
including `ozone`, `ozonesecure`, `ozone-ha` and `ozonesecure-ha`.
+
+Also, with development cluster configured for s3g gRPC can load test the S3 
Gateway using the endpoint, localhost:9878.  Load testers used include freon 
and warp.
+
+### 6. support of containers / Kubernetes
+
+NA. Deployment model for OzoneManager remains as earlier.
+
+### 7. coverage/code quality
+
+[Sonar master branch code 
coverage.](https://sonarcloud.io/component_measures?metric=coverage&view=list&id=hadoop-ozone)
+
+[Sonar HDDS-4440-S3-performance feature branch code 
coverage.](https://sonarcloud.io/component_measures?metric=coverage&view=list&branch=HDDS-4440-s3-performance&id=hadoop-ozone)
+
+Code coverage is nearly unchanged from master to feature branch, from 76.5% to 
75.7%.  In addition the feature branch has no Duplications nor Security 
vulnerabilities.  Further, the feature branch has a better Maintainability 
number than the master, 26 vs 207 (lower better).
+
+### 8. build time
+
+**Recent Master branch build time:**
+
+**Current HDDS-4440-S3-performance feature branch build time:** .
+
+Building on a local machine with ubuntu linux six-core i5 Coffee Lake and 64Gb 
Ram (`mvn clean install -DskipTests`):
+
+|                                                          |               |
+|----------------------------------------------------------|---------------|
+| **Master branch build time:**                            | 06:22 min     |
+| **Feature branch HDDS-4440-S3-performance build time:** | **06:16 min** |
+
+### 9. possible incompatible changes
+
+The S3g gRPC Persistent Connections feature is enabled through two s3g gRPC 
specific configuration keys.  One configuration key is to enable the gRPC 
server service on the Ozone Manager, OM, and the other is to enable the gRPC 
client on the S3 Gateway, s3g.  By default the S3 Gateway gRPC client is off 
and communication between the s3g and OM is though the existing Hadoop RPC.
+
+To enable this feature set,
+
+1. `ozone.om.s3.grpc.server_enabled` set to true in `ozone-site.xml`. (enable 
service on OM)
+2. `ozone.om.transport.class` set to 
`org.apache.hadoop.ozone.om.protocolPB.GrpcOmTransportFactory` in 
`ozone-site.xml`. (enable gRPC on s3g client)
+
+With these two configuration keys disabled, the S3 Gateway / Ozone Manager 
channel operates in legacy mode with the existing Hadoop RPC.  This can used in 
the upgrade period to turn off the feature when the feature is unstable and 
operate in legacy mode (Hadoop RPC communication).
+
+### 10. third party dependencies/license changes
+
+For the S3-performance gRPC feature, network transport related jars are added 
to support native encryption on the wire, TLS:
+
+|                                               |
+|-----------------------------------------------|
+| Added to `LICENSE.txt`                        |
+| `io.netty:netty-tcnative-boringssl-static` |
+| `io.netty:netty-tcnative` |
+
+### 11. performance
+
+We compare the performance of the S3 Gateway using the gRPC persistent 
connection with TLS to the existing Hadoop RPC, hRPC connections with 
encryption on the wire for metadata requests.  We find that in load testing the 
S3 performance feature branch with gRPC and encryption on the wire outperforms 
the existing hRPC connection ***both*** encrypted and in plaintext.  This is 
particularly evident in the comparison of gRPC with TLS to encrypted wire 
Hadoop RPC where the increase is greater  [...]
+
+| # | s3g Transport Type | Description | Load Test Performance for Metadata 
throughput, Objects / sec (objects/sec) |
+|---|---|---|---|
+| 1 | gRPC TLS (feature branch) | s3g ↔︎ Ozone Manager connection over gRPC 
with encryption on the wire, TLS. Persistent connection. | 9026.12 |
+| 2 | hRPC plaintext (current) | s3g ↔︎ Ozone Manager connection over Hadoop 
RPC plaintext. Persistent connection (HDDS-5881). | 6508.85 |
+| 3 | hRPC encrypted wire (current) | s3g ↔︎ Ozone Manager connection over 
Hadoop RPC with encryption on the wire (privacy configuration). Persistent 
connection (HDDS-5881). | 3989.35 |
+
+Load test used: minio Warp S3 benchmarking tool.  
+
+```bash
+./warp stat --host= --duration=1m –bucket bucket1 --concurrent=64 --noclear 
--obj.size=1KiB --access-key=$AWS_ACCESS_KEY --secret-key=$AWS_SECRET_ACCESS_KEY
+```
+
+Test cluster consists of native Ozone deployment, bare-metal.  OM-SCM on one 
node, S3 Gateway on separate node.
+
+### 12. security considerations
+
+This feature branch supports gRPC encryption channel communication between the 
S3 Gateway and Ozone Manager through TLS.  Encryption on the wire for the gRPC 
channel is configured by the `ozone-site.xml` key,
+
+1. `hdds.grpc.tls.enabled` set to `true`
+
+  A new security model is introduced for S3 Gateway persistent connections and 
was implemented in supporting Jira master branch patch, HDDS-5881.  This branch 
uses the same security model for S3 user authentication on a per request basis.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/06-hdds-4454-streaming-write-pipeline.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/06-hdds-4454-streaming-write-pipeline.md
new file mode 100644
index 0000000000..ffb2a56b96
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/06-hdds-4454-streaming-write-pipeline.md
@@ -0,0 +1,80 @@
+<!-- cspell:ignore bursty -->
+# HDDS-4454: Streaming Write Pipeline
+
+Git branch:
+
+Currently, Ozone write pattern is bursty and involves multiple buffers copies 
as well multiple Ratis log syncs in a block write. The idea of the Jira is to 
use a zero buffer copy based Ratis streaming 
([RATIS-979](https://issues.apache.org/jira/browse/RATIS-979)) in Ozone write 
path for better performance and resource utilization.
+
+To enable the feature, the following configuration properties need to be added 
to Ozone Manager's `ozone-site.xml`.
+
+```xml
+<property>
+  <name>dfs.container.ratis.datastream.enable</name>
+  <value>true</value>
+  <tag>OZONE, CONTAINER, RATIS, DATASTREAM</tag>
+  <description>If enable datastream ipc of container.</description>
+</property>
+ 
+<property>
+  <name>ozone.fs.datastream.enabled</name>
+  <value>true</value>
+  <tag>OZONE, DATANODE</tag>
+  <description>
+    To enable/disable filesystem write via ratis streaming.
+  </description>
+</property>
+```
+
+## 1. Builds/intermittent test failures
+
+No additional flaky tests have been introduced by the feature branch.
+
+## 2. Documentation
+
+Documentation was added by  
[HDDS-7425](https://issues.apache.org/jira/browse/HDDS-7425) .
+
+## 3. Design, attached the docs
+
+The design docs can be found under the Attachments section in the umbrella 
Jira:  [HDDS-4454](https://issues.apache.org/jira/browse/HDDS-4454)
+
+## 4. Compatibility
+
+Ozone Streaming Write Pipeline feature does not change any existing APIs.
+
+## 5. Docker-compose / acceptance tests
+
+New acceptance test was added by Jira: 
[HDDS-7426](https://issues.apache.org/jira/browse/HDDS-7426)
+
+## 6. Support of containers / Kubernetes
+
+No addition.
+
+## 7. Coverage/code quality
+
+[HDDS-4454 feature branch 
coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=HDDS-4454)
 (65.4%) vs [master branch 
coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=master) 
(65.9%)
+
+## 8. Build time
+
+No significant build time difference has been observed.
+
+master branch succeeded (1h 28m 9s):
+
+HDDS-4454 branch succeeded (1h 22m 11s):
+
+## 9. Possible incompatible changes/used feature flag
+
+There should not be any incompatible changes introduced with this feature.
+
+A global enable/disable switch for the this feature is added in 
[HDDS-5480](https://issues.apache.org/jira/browse/HDDS-5480) .
+
+## 10. Third party dependencies/license changes
+
+There is no third party dependencies introduced by this feature.
+
+## 11. Performance
+
+The throughput of the new Streaming Pipeline is roughly 2x and 3x of the 
throughput of the existing Write Pipeline for the single client case and the 
3-client case, respectively.
+
+Single client case: [20220702_Single Client - Benchmarks for Ozone 
Streaming.pdf](https://issues.apache.org/jira/secure/attachment/13046179/20220702_Single%20Client%20-%20Benchmarks%20for%20Ozone%20Streaming.pdf)
+
+3-client case: [20220702_3 Clients - Benchmarks for Ozone 
Streaming.pdf](https://issues.apache.org/jira/secure/attachment/13046180/20220702_3%20Clients%20-%20Benchmarks%20for%20Ozone%20Streaming.pdf)
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/07-hdds-4944-s3-multi-tenancy.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/07-hdds-4944-s3-multi-tenancy.md
new file mode 100644
index 0000000000..e3f456872f
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/07-hdds-4944-s3-multi-tenancy.md
@@ -0,0 +1,121 @@
+# HDDS-4944: S3 Multi-Tenancy
+
+Feature branch HDDS-4944 has been merged to master on May 29.
+
+Git branch: https://github.com/apache/ozone/tree/HDDS-4944
+
+Compare: https://github.com/apache/ozone/compare/master...HDDS-4944
+
+For a quick intro to the S3 multi-tenancy feature, here is an excerpt from the 
documentation:
+
+> Before Ozone multi-tenancy, all S3 access to Ozone (via S3 Gateway) are
+> confined to a single designated S3 volume (that is volume `s3v`, by default).
+>
+> Ozone multi-tenancy allows multiple S3-accessible volumes to be created.
+> Each volume can be managed separately by their own tenant admins via CLI for 
user operations, and via Apache Ranger for access control.
+
+For more, please check out the [full 
documentation](https://github.com/apache/ozone/blob/HDDS-4944/hadoop-hdds/docs/content/feature/S3-Multi-Tenancy.md?plain=1#L26).
 The doc has [feature 
overview](https://github.com/apache/ozone/blob/HDDS-4944/hadoop-hdds/docs/content/feature/S3-Multi-Tenancy.md),
 [setup 
guide](https://github.com/apache/ozone/blob/HDDS-4944/hadoop-hdds/docs/content/feature/S3-Multi-Tenancy-Setup.md),
 [CLI guide](https://github.com/apache/ozone/blob/HDDS-4944/hadoop-hdds/ [...]
+
+Requirements to enable S3 multi-tenancy:
+
+1. [Use Apache 
Ranger](https://ozone.apache.org/docs/1.2.1/security/securitywithranger.html)
+2. [Enable Ozone security and use 
Kerberos](https://ozone.apache.org/docs/1.2.1/security/secureozone.html) 
authentication
+
+To enable multi-tenancy (with Ranger Basic HTTP authentication), in addition 
to the requirements above, the following configs need to be added to Ozone 
Manager's `ozone-site.xml`, as documented 
[here](https://github.com/apache/ozone/blob/HDDS-4944/hadoop-hdds/docs/content/feature/S3-Multi-Tenancy-Setup.md?plain=1#L40)
 in the doc as well:
+
+```xml
+
+<property>
+   <name>ozone.om.multitenancy.enabled</name>
+   <value>true</value>
+</property>
+<property>
+    <name>ozone.om.ranger.https-address</name>
+    <value>https://RANGER_HOST:6182</value>
+</property>
+<property>
+    <name>ozone.om.ranger.https.admin.api.user</name>
+    <value>RANGER_ADMIN_USERNAME</value>
+</property>
+<property>
+    <name>ozone.om.ranger.https.admin.api.passwd</name>
+    <value>RANGER_ADMIN_PASSWORD</value>
+</property>
+```
+
+To enable multi-tenancy with Ranger Java client ( 
[HDDS-5836](https://issues.apache.org/jira/browse/HDDS-5836) ), clear text 
Ranger admin user name and password will no longer be necessary. Rather the 
Ranger Java client (re)uses the existing OM Kerberos principal and keytab 
config when enabling Ozone security with Kerberos auth. Therefore, only two 
extra config keys are necessary to enable the feature:
+
+```xml
+<property>
+   <name>ozone.om.multitenancy.enabled</name>
+   <value>true</value>
+</property>
+<property>
+    <name>ozone.om.ranger.https-address</name>
+    <value>https://RANGER_HOST:6182</value>
+</property>
+```
+
+`ozone.OM.kerberos.principal` and `ozone.OM.kerberos.keytab.file` should have 
been 
[configured](https://ozone.apache.org/docs/1.2.1/security/secureozone.html#:~:text=ozone.om.kerberos.principal)
 already.
+
+NOTE: Ranger Java client patch is merged. BUT the authorizer implementation 
switch hasn't happened. Partially due to Ranger 2.3.0 hasn't been released yet. 
Therefore, as of now it can only use the Ranger Basic HTTP authentication 
approach. Further patch will be done to complete the switch.
+
+## 1. builds/intermittent test failures
+
+No additional flaky tests have been introduced by the feature branch.
+
+But there is one flaky upgrade/SCM acceptance test worth mentioning here that 
comes from the master branch: 
[HDDS-6546](https://issues.apache.org/jira/browse/HDDS-6546) This is frequently 
observed while running CIs on the S3 multi-tenancy branch. Spent quite a few 
hours on it but haven't found the root cause yet (see Jira comments). Note: the 
S3 multi-tenancy feature branch does not change SCM code at all.
+
+## 2. documentation
+
+Documentation has been added since 
[HDDS-6275](https://issues.apache.org/jira/browse/HDDS-6275) and is under 
constant revision.
+
+The doc (`S3-Multi-Tenancy.md`, `S3-Tenant-Commands.md` and so on) can be 
found under
+
+## 3. design, attached the docs
+
+The design docs can be found under the Attachments section in the umbrella 
Jira: [HDDS-4944](https://issues.apache.org/jira/browse/HDDS-4944)
+
+## 4. S3 compatibility
+
+S3 multi-tenancy feature does not break any existing S3 API compatibility. And 
all S3 secret key pairs generated with the existing `ozone s3 getsecret`  
command can still be used the same way (still confined to default s3v volume) 
after the OM upgrade.
+
+## 5. Docker-compose / acceptance tests
+
+Acceptance test cases can be found in:
+
+## 6. support of containers / Kubernetes
+
+No addition. There is plan to bring Apache Ranger to a new set of cluster 
config in order to better test the multi-tenancy functionality, but is not done 
yet. Though this would not be a merge blocker.
+
+## 7. coverage/code quality
+
+[Current feature branch 
coverage](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-4944)
 is **82.0%** (vs [62.8% of master 
branch](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=master))
+
+## 8. build time
+
+No significant build time difference has been observed.
+
+master branch succeeded 20 days ago in 9m 45s:
+
+Feature branch succeeded 19 days ago in 9m 28s:
+
+## 9. possible incompatible changes/used feature flag
+
+There should not be any incompatible changes introduced with this feature.
+
+A global enable/disable switch for the S3 multi-tenancy feature is to be added 
in [HDDS-6612](https://issues.apache.org/jira/browse/HDDS-6612) .
+
+## 10. third party dependencies/license changes
+
+[HDDS-5836](https://issues.apache.org/jira/browse/HDDS-5836) Ranger Java 
client would include new dependency `org.apache.ranger.ranger-intg`
+
+## 11. performance
+
+S3 Gateway performance to be tested. Performance has been considered during 
development. For example, in order to for the client (S3 Gateway) to select the 
correct decryption key based on the actual user principal (S3 Gateway) and 
without introducing extra round trip, the user principal is piggy-backed in 
`RpcClient#getS3Volume` .
+
+Ozone Java RPC client performance should not be affected.
+
+## 12. security considerations
+
+For the tenant user assign CLI, there were a discussion on whether to allow 
admins to specify the access ID (rather than in the auto-generated form of 
`tenantName$userName` ) to be assigned to the user. But out of security concern 
(possible key pair leak), it has been disabled on the server side. Additional 
input validation will need to be added in the future to allow it to be safely 
enabled again.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/08-hdds-4948-scm-ha.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/08-hdds-4948-scm-ha.md
new file mode 100644
index 0000000000..0f21e59a63
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/08-hdds-4948-scm-ha.md
@@ -0,0 +1,116 @@
+# HDDS-4948: SCM HA
+
+## 1. stable builds/intermittent test failures
+
+There are no intermittent failures specific to the HDDS-2823 branch as of now. 
During the development , it was ensured all the CI checks are clean prior to 
every commit merge .The plan is to run repeated CI checks on the merge commit 
to master.
+
+## 2. documentation
+
+Initial doc has been added by HDDS-4948.
+
+## 3. design, attached the docs
+
+All the design docs are linked from the documentation as part of HDDS-4948.
+
+## 4. S3 compatibility
+
+There are no incompatibilities with respect to S3. S3 is not changed at all 
(except that the OmUtils rename affected it)
+
+## 5. support of containers / kubernetes
+
+Tested in Kubernetes and everything worked well.
+
+Example files are committed with HDDS-4950.
+
+## 6. coverage/code quality
+
+[Sonar master 
branch](https://sonarcloud.io/dashboard?branch=master&id=hadoop-ozone).
+[Sonar SCM-HA 
branch](https://sonarcloud.io/dashboard?branch=HDDS-2823&id=hadoop-ozone)
+SCM-HA has  20 more issues but 2.3 better code coverage.
+
+## 7. build time
+
+Recent master builder:
+
+Recent SCM-HA build:
+
+SCM-HA branch didn't introduce any significant slowness (2-3 minutes plus to 
the existing integrations test and acceptance tests which are already close to 
1h runtime).
+There is no significant difference between local build time. In a linux with 
the below configuration,
+
+```text
+hadoop@9 ~/glengeng$ lscpu
+Architecture: x86_64
+CPU op-mode(s): 32-bit, 64-bit
+Byte Order: Little Endian
+CPU(s): 16
+On-line CPU(s) list: 0-15
+Thread(s) per core: 1
+Core(s) per socket: 16
+Socket(s): 1
+NUMA node(s): 1
+Vendor ID: GenuineIntel
+CPU family: 6
+Model: 94
+Model name: Intel(R) Xeon(R) Gold 61xx CPU
+Stepping: 3
+CPU MHz: 2494.138
+BogoMIPS: 4988.27
+Hypervisor vendor: KVM
+Virtualization type: full
+L1d cache: 32K
+L1i cache: 32K
+L2 cache: 4096K
+NUMA node0 CPU(s): 0-15
+Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc 
rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic 
movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm 
abm 3dnowprefetch fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed 
adx smap xsaveopt xsavec xgetbv1 arat
+hadoop@9 ~/glengeng$ free -g
+total used free shared buff/cache available
+Mem: 125 4 98 0 22 120
+Swap: 0 0 0
+
+#data for master
+INFO BUILD SUCCESS
+INFO ---------------------------------------------
+INFO Total time: 08:10 min
+INFO Finished at: 2021-03-10T16:54:42+08:00
+INFO ---------------------------------------------
+
+#data for HDDS-2823
+INFO BUILD SUCCESS
+INFO --------------------------------------------
+INFO Total time: 07:09 min
+INFO Finished at: 2021-03-10T17:06:42+08:00
+```
+
+## 8. possible incompatible changes/used feature flag
+
+For using the SCM HA feature, "ozone.SCM.ratis.enable" config needs to be set 
to be true in `ozone-site.xml`.
+
+## 9. third party dependencies/licence changes
+
+Checking the content of the two branches (`find -type f | sort > ...`  + diff) 
the only jar differences are due to a latest version bump:
+
+```text
+ ./share/ozone/lib/jackson-annotations-2.12.1.jar
+> ./share/ozone/lib/jackson-core-2.12.1.jar
+> ./share/ozone/lib/jackson-databind-2.12.1.jar
+> ./share/ozone/lib/jackson-dataformat-cbor-2.12.1.jar
+> ./share/ozone/lib/jackson-dataformat-xml-2.12.1.jar
+> ./share/ozone/lib/jackson-datatype-jsr310-2.12.1.jar
+> ./share/ozone/lib/jackson-module-jaxb-annotations-2.12.1.jar
+```
+
+No new dependencies are added.
+
+## a10. performance
+
+Performance between master and SCM-HA branch (without turning on Ratis) is 
shared 
[here](https://docs.google.com/document/d/1XYgwM3zOKeZUWsrkxaWO_12zpokTFOSoA4X7Eu-Ed50/edit)
+
+> We use the default configuration for master and 2823.
+>
+> The write throughput seems to be constrained by hardware, e.g. DC network, 
which we haven’t dug further.
+>
+> According to the slight differences between 2823 and master, the performance 
of the SCM HA bypass Ratis is close to that of pure in-mem SCM
+
+## 11. security considerations
+
+Security is not ready on the branch yet, therefor this feature is not 
production-ready. SCM-HA is disabled for secure clusters to avoid any security 
issues. (See HDDS-4978.)
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/09-hdds-5447-httpfs.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/09-hdds-5447-httpfs.md
new file mode 100644
index 0000000000..63bd744aa5
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/09-hdds-5447-httpfs.md
@@ -0,0 +1,74 @@
+# HDDS-5447: HttpFS
+
+Ozone HttpFS is a WebHDFS compatible interface implementation, as a separate 
role it provides an easy integration with Ozone.
+
+HttpFS support in Ozone epic Jira: 
[HDDS-5447](https://issues.apache.org/jira/browse/HDDS-5447)  
+
+## 1. builds/intermittent test failures
+
+no additional flaky tests have been introduced by the feature branch.
+
+## 2. documentation
+
+the documentation for HttpFS was added by 
[HDDS-5966](https://issues.apache.org/jira/browse/HDDS-5966) , it can be found 
at 
[Hadoop-HDDs/docs/content/interface/HttpFS.md](https://github.com/apache/ozone/blob/HDDS-5447-httpfs/hadoop-hdds/docs/content/interface/HttpFS.md)
+
+## 3. design, attached the docs
+
+- [design 
document](https://issues.apache.org/jira/secure/attachment/13031822/HTTPFS%20interface%20for%20Ozone.pdf)
 (can be found under the epic Jira)
+- attached docs can be found at 
[Hadoop-HDDs/docs/content/interface/HttpFS.md](https://github.com/apache/ozone/blob/HDDS-5447-httpfs/hadoop-hdds/docs/content/interface/HttpFS.md)
+
+## 4. S3 compatibility
+
+the HttpFS gateway doesn't break anything related S3.
+
+## 5. Docker-compose / acceptance tests
+
+acceptance tests were added in the following tasks:
+
+- [HDDS-5615](https://issues.apache.org/jira/browse/HDDS-5615)
+- [HDDS-5698](https://issues.apache.org/jira/browse/HDDS-5698)
+- [HDDS-7719](https://issues.apache.org/jira/browse/HDDS-7719)
+
+it can be found at 
[/Hadoop-ozone/dist/src/main/smoketest/HttpFS](https://github.com/apache/ozone/tree/HDDS-5447-httpfs/hadoop-ozone/dist/src/main/smoketest/httpfs).
+
+## 6. support of containers / Kubernetes
+
+no addition yet.
+
+## 7. coverage/code quality
+
+[current](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=master) 
and 
[HDDS-5447-HttpFS](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-5447-httpfs)
+
+## 8. build time
+
+no significant change
+
+- current master: [1h 41m 
17s](https://github.com/apache/ozone/actions/runs/4103741189)
+- last merged commit on branch: [1h 33m 
58s](https://github.com/apache/ozone/actions/runs/4005079797) (will update with 
a green build-branch from the HDDS-5447-HttpFS branch)
+
+## 9. possible incompatible changes/used feature flag
+
+there should not be any incompatible changes introduced with this feature.
+
+## 10. third party dependencies/license changes
+
+these dependencies were added:
+
+- curator-client
+
+- curator-framework
+
+- JSON-simple
+
+- zookeeper
+
+the Zookeeper and Curator dependencies are added because the delegation tokens 
and token details are stored in Zookeeper, this can be relevant if there is a 
load balancer and more than one HttpFS gateways are serving the requests.
+JSON-simple is used in the module, with objects like JSONObject, JSONArray, 
JSONParser, etc.
+
+## 11. performance
+
+this feature won't affect the performance of Ozone.
+
+## 12. security considerations
+
+there is no security implications because of this feature.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/10-hdds-5713-disk-balancer.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/10-hdds-5713-disk-balancer.md
new file mode 100644
index 0000000000..863ea79d10
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/10-hdds-5713-disk-balancer.md
@@ -0,0 +1,80 @@
+# HDDS-5713: Disk Balancer
+
+DiskBalancer for Datanode Epic : HDDS-5713. DiskBalancer for Datanode
+Git Branch : https://github.com/apache/ozone/tree/HDDS-5713
+
+## 1. Builds/intermittent test failures
+
+There are no intermittent failures specific to the HDDS-5713 branch as of now. 
During the development , it was ensured all the CI checks were clean prior to 
every commit merge .
+
+The plan is to run repeated CI checks on the merge commit to master.
+
+## 2. Documentation
+
+[User 
Documentation](https://github.com/apache/ozone/blob/HDDS-5713/hadoop-hdds/docs/content/feature/DiskBalancer.md)
 for DiskBalancer has been added.
+
+## 3. Design, attached the docs
+
+Markdown design document for Ozone-site can be found here : [DiskBalancer 
Design 
Doc](https://github.com/apache/ozone/blob/HDDS-5713/hadoop-hdds/docs/content/design/diskbalancer.md).
+
+Google design doc : [Design 
Doc](https://docs.google.com/document/d/1G3fcXqmyiB7MNs7eq0nc4zGmGuLsY_IaFOMpTT5eiq4/edit?pli=1&tab=t.0)
 .
+
+## 4. S3 compatibility
+
+N/A, S3 compatibility remains the same. DiskBalancer only affects the Data 
Volumes within a Datanode.
+
+## 5. Docker-compose / Acceptance tests
+
+New robot test 
[`testdiskbalancer.robot`](https://github.com/apache/ozone/blob/HDDS-5713/hadoop-ozone/dist/src/main/smoketest/diskbalancer/testdiskbalancer.robot)
 is being added.
+
+New acceptance test are added, mainly tests the CLI for DiskBalancer. It does 
not test fault injection.
+
+More comprehensive tests with fault injection were added as part of unit tests.
+
+## 6. Support of containers / Kubernetes
+
+No addition. No change in existing support.
+
+## 7. Coverage / Code quality
+
+[New Code 
Coverage](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-5713)
 for DiskBalancer (HDDS-5713) is 83.83 and [Overall Code 
Coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=HDDS-5713)
 is 78.4 .
+[Overall Code 
Coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=master) 
for master is 75.6.
+
+## 8. Build time
+
+[Build time for the latest 
commit](https://github.com/apache/ozone/actions/runs/16464370250) from 
DiskBalancer Branch is 1hr 11m 54s.
+[Build time for the latest 
commit](https://github.com/apache/ozone/actions/runs/16580591540) from the 
master branch is 1hr 13m 36s.
+
+## 9. Possible incompatible changes/used feature flag
+
+There should not be any incompatible changes introduced with this feature.
+
+A global enable/disable switch for the DiskBalancer feature is to be added in 
[HDDS-13497. [DiskBalancer] Add new property 
"HDDs.Datanode.disk.balancer.enabled"](https://issues.apache.org/jira/browse/HDDS-13497)
+
+To enable the feature, the following configs need to be added to DN 
`ozone-site.xml`, and set the value to "true"
+
+| Property | Default | Tags | Description |
+|---|---|---|---|
+| `hdds.datanode.disk.balancer.enabled` | `false` | `OZONE, Datanode, 
DISKBALANCER` | If this property is set to true, then the Disk Balancer  
service is enabled on Datanodes, and users can use this service. By default, 
this is disabled.  |
+
+## 10. Third-party dependencies/License changes
+
+There are no third party dependencies introduced by this feature.
+
+## 11. Performance
+
+The major work flow of DiskBalancer on Datanode, is first select a pair of 
data volumes, one is over-utilized as source volume, the other is 
lower-utilized as destination volume, then select one container from the source 
volume, then move the container from source volume to destination volume. The 
overall end-to-end performance is mainly dominated by the time spent on moving 
container from source volume to destination volume, which in turn is mainly 
decided by volume physical medium.
+
+Except the move container part,  we did the microbenchmark performance testing 
for volume pair choosing(VolumeChoosingPolicy), and container 
choosing(ContainerChoosingPolicy) . VolumeChoosingPolicy, it chooses a pair of 
volumes which will act as source volume(most used) and destination volume(least 
used). ContainerChoosingPolicy, it decides which container to move from an 
over-utilized disk to least-utilized to help balance storage across volumes.
+
+Performance test for ContainerChoosingPolicy is done by [HDDS-13055. Optimize 
ContainerChoosingPolicy 
Performance](https://issues.apache.org/jira/browse/HDDS-13055) . The test shows 
it takes approx 0.02ms to pick one container.
+
+Performance test for VolumeChoosingPolicy is done by [HDDS-13291. Add 
Performance test for 
VolumeChoosingPolicy](https://issues.apache.org/jira/browse/HDDS-13291) . It 
shows it takes approx 0.12ms to pick one pair of volume.
+
+The container move process will consume Datanode resource, especially disk IO 
resource, so Disk balancer is by default stopped in Datanode. User can start 
the disk balancer only when needed, with IO bandwidth throttling supported.
+
+## 12. Security considerations
+
+The CLI to start/stop/update DiskBalancer, is only accessible to the admins. 
[There is a specific robot test to verify 
this](https://github.com/apache/ozone/blob/HDDS-5713/hadoop-ozone/dist/src/main/smoketest/diskbalancer/testdiskbalancer.robot).
+
+Besides this, there are no other security implications of this feature.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/11-hdds-6517-snapshots.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/11-hdds-6517-snapshots.md
new file mode 100644
index 0000000000..5004f764bc
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/11-hdds-6517-snapshots.md
@@ -0,0 +1,59 @@
+# HDDS-6517: Snapshots
+
+01 Feb 2023 Snapshot feature branch `HDDS-6517-Snapshot` has been merged to 
master. All future snapshot development work should continue on the master 
branch.
+
+Snapshot feature umbrella Jira: 
[HDDS-6517](https://issues.apache.org/jira/browse/HDDS-6517)
+
+## 1. builds/intermittent test failures
+
+No additional flaky tests have been introduced by the feature branch.
+
+## 2. documentation
+
+Documentation for this feature is tracked through 
[HDDS-7745](https://issues.apache.org/jira/browse/HDDS-7745) .
+
+## 3. design, attached the docs
+
+The design docs can be found under the Attachments section in the umbrella 
Jira: [HDDS-6517](https://issues.apache.org/jira/browse/HDDS-6517)
+
+## 4. Compatibility
+
+The feature doesn't break compatibility for any of the existing features.
+
+## 5. Docker-compose / acceptance tests
+
+We have some basic Snapshot acceptance tests. This will remain an ongoing 
activity throughout Snapshot development and is tracked through 
[HDDS-7768](https://issues.apache.org/jira/browse/HDDS-7768) .
+
+## 6. support of containers / Kubernetes
+
+No addition so far. This should not be a merge blocker.
+
+## 7. coverage/code quality
+
+[Current feature branch 
coverage](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-6517-Snapshot)
+
+## 8. build time
+
+No significant build time difference has been observed.
+
+master branch succeeded yesterday in 13m 30s: 
https://github.com/apache/ozone/actions/runs/3877624995/jobs/6612858610
+
+Feature branch succeeded in 15m 31s: 
https://github.com/apache/ozone/actions/runs/3876977121/jobs/6611455939
+
+## 9. possible incompatible changes/used feature flag
+
+There should not be any incompatible changes introduced with this feature.
+
+Snapshot feature will be a layout upgrade in new releases and can be used 
after upgrade finalization. This will be tracked through Jira 
[HDDS-7772](https://issues.apache.org/jira/browse/HDDS-7772)
+
+## 10. third party dependencies/license changes
+
+NA
+
+## 11. performance
+
+The feature won't affect performance if the Snapshot feature is not in use. 
When snapshots are used, the performance can get impacted proportionate to the 
number of snapshots that are actively read from and the number of concurrent 
`snapdiff` operations,
+
+## 12. security considerations
+
+Security consideration associated with Snapshot feature are tracked through  
[HDDS-6851](https://issues.apache.org/jira/browse/HDDS-6851) . Authorization 
model for Snapshots is attached to this Jira ticket.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/12-hdds-7593-hsync-lease-recovery.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/12-hdds-7593-hsync-lease-recovery.md
new file mode 100644
index 0000000000..bcee2145f4
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/12-hdds-7593-hsync-lease-recovery.md
@@ -0,0 +1,68 @@
+# HDDS-7593: HSync and Lease Recovery
+
+Epic: HDDS-7593
+Feature branch: https://github.com/apache/ozone/tree/HDDS-7593
+
+## 1. builds/intermittent test failures
+
+Ran full CI for the [latest 
commit](https://github.com/apache/ozone/actions/runs/10081026756) for the 
feature branch two times. In both the runs all the tests has passed.
+
+## 2. documentation
+
+The new API is for developers to build upon. Not intended for end-users or 
administrators.
+
+## 3. design, attached the docs
+
+The design and architecture spans across multiple design docs
+
+[Design doc: Supporting `Hflush` and lease 
recovery](https://docs.google.com/document/d/1KcB9qjIe6vEg7iRu4rFsHE5kTj6A1JCaJ-Q2PKWLpGw/edit?usp=sharing)
+
+[Ozone File Lease Recovery Protocol Detail 
Design](https://docs.google.com/document/d/1wS0dVL3huManP8OrKl-sBjxE5vFVyeW4XEFdHHIctO4/edit?usp=sharing)
+
+[Support Incremental ChunkList in PutBlock 
requests](https://docs.google.com/document/d/1Q7skR1xndQ1W3qzkz5rdwjN_2ZFA1zD63bZtKHciY28/edit?usp=sharing)
+
+## 4. S3 compatibility
+
+S3 behavior was not changed.
+
+The new APIs (hsync, recoverLease, ...) are Hadoop file system APIs and are 
not supported by S3.
+
+## 5. Docker-compose / acceptance tests
+
+Use cases are covered by integration tests.
+
+## 6. support of containers / Kubernetes
+
+N/A, the new request does not affect support of containers.
+
+## 7. coverage/code quality
+
+Current coverage is ~46.8% for both 
[master](https://sonarcloud.io/project/activity?custom_metrics=coverage&graph=custom&id=hadoop-ozone)
 and ~44.4% for the [feature 
branch](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-7593).
+
+## 8. build time
+
+Build time in CI of the latest commit on the [feature branch 
(https://github.com/apache/ozone/commit/f7610c0012cd5e83769ff22eebeba092d3893d14)](https://github.com/apache/ozone/actions/runs/9847179268)
 is similar to that of [master 
(https://github.com/apache/ozone/actions/runs/9847590592)](https://github.com/apache/ozone/actions/runs/9847590592):
 1hr15m vs. 1hr15m.
+
+## 9. possible incompatible changes/used feature flag
+
+A number of feature flags were introduced:
+
+```text
+ozone.client.incremental.chunk.list
+ozone.client.stream.putblock.piggybacking
+ozone.incremental.chunk.list
+```
+
+Additionally, new Datanode layout version "HBASE_SUPPORT" was added. A 
Datanode wire protocol version `COMBINED_PUTBLOCK_WRITECHUNK_RPC` was added too.
+
+## 10. third party dependencies/license changes
+
+N/A, no new dependencies were introduced.
+
+## 11. performance
+
+The changes do not impact performance. If the new API is used, an additional 
parameter is passed and check on the server side. If the feature is not used, 
the code path is unchanged. No new locks or expensive checks have been added to 
facilitate the new feature.
+
+## 12. security considerations
+
+N/A.  New method was added to the existing OM client API.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/13-hdds-7733-symmetric-key-tokens.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/13-hdds-7733-symmetric-key-tokens.md
new file mode 100644
index 0000000000..4710eaf290
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/13-hdds-7733-symmetric-key-tokens.md
@@ -0,0 +1,58 @@
+# HDDS-7733: Symmetric Key Tokens
+
+In secure mode, Ozone issues tokens to authorize each block (and container) 
access. Each token is signed by Ozone (OM or SCM) using its RSA private keys 
and verified by Datanodes using a public key and certificate. With the RSA 
private key size of 2048, the sign operation is very costly and contributes 
more than 80% to the latency of read/write operations in Ozone Manager.
+
+This feature branch contains the implementation to replace RSA token signing 
with symmetric keys and thus greatly boosts OM performance.
+
+Epic Jira:  [HDDS-7733](https://issues.apache.org/jira/browse/HDDS-7733)
+
+## 1. builds/intermittent test failures
+
+The feature branch has introduced no additional flaky tests.
+
+## 2. documentation
+
+The documentation for this change is added by  
[HDDS-8631](https://issues.apache.org/jira/browse/HDDS-8631) .
+
+## 3. design, attached the docs
+
+Design document can be found 
[here](https://issues.apache.org/jira/secure/attachment/13055974/Symmetric%20Key%20For%20Ozone%20Token%20Signatures-1.pdf)
 (can be found in the epic Jira).
+
+## 4. S3 compatibility
+
+This feature branch doesn't break any S3 feature.
+
+## 5. Docker-compose / acceptance tests
+
+Block/container tokens are already tested well by the existing acceptance 
tests.
+
+## 6. support of containers / Kubernetes
+
+No addition yet.
+
+## 7. coverage/code quality
+
+[Master](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=master) 
and 
[HDDS-7733-Symmetric-Tokens](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-7733-Symmetric-Tokens)
+
+## 8. build time
+
+No significant change
+
+- current master: [1h 43m 
9s](https://github.com/apache/ozone/actions/runs/4996624349)
+- last merged commit on branch: [1h 40m 
17s](https://github.com/apache/ozone/actions/runs/4963516058)
+
+## 9. possible incompatible changes/used feature flag
+
+There is no incompatible change introduced with this feature.
+
+## 10. third party dependencies/license changes
+
+No new dependency is added.
+
+## 11. performance
+
+Performance improvements are documented by  
[HDDS-8574](https://issues.apache.org/jira/browse/HDDS-8574)
+
+## 12. security considerations
+
+- This feature branch adds a couple of new APIs to allow OM and Datanode to 
access secret keys in OM. Those APIs are protected over Hadoop RPC secure line, 
with Privacy enabled. Also, the APIs are authorized to only allow Datanode and 
OM to access, ref: [HDDS-8164](https://issues.apache.org/jira/browse/HDDS-8164) 
.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/14-hdds-10239-container-reconciliation.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/14-hdds-10239-container-reconciliation.md
new file mode 100644
index 0000000000..1c9088d605
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/14-hdds-10239-container-reconciliation.md
@@ -0,0 +1,84 @@
+# HDDS-10239: Container Reconciliation
+
+Storage Container Reconciliation Epic:  
[HDDS-10239](https://issues.apache.org/jira/browse/HDDS-10239)
+Git Branch: 
https://github.com/apache/ozone/tree/HDDS-10239-container-reconciliation
+
+## 1. Builds/intermittent test failures
+
+All the CI checks need to pass before merging any commit. No additional flaky 
tests have been introduced by the feature branch.
+
+## 2. Documentation
+
+Documentation is a WIP, which is tracked here: 
[HDDS-13039](https://issues.apache.org/jira/browse/HDDS-13039)
+
+## 3. Design, attached the docs
+
+The design document is added to the [master via pull 
request](https://github.com/apache/ozone/pull/6121)
+
+Design Document: 
[Hadoop-HDDs/docs/content/design/container-reconciliation.md](https://github.com/apache/ozone/blob/HDDS-10239-container-reconciliation/hadoop-hdds/docs/content/design/container-reconciliation.md)
+
+## 4. S3 compatibility
+
+N/A, S3 compatibility remains the same. Container Reconciliation only affects 
the block storage layer.
+
+## 5. Docker-compose / Acceptance tests
+
+New acceptance tests were added to test the container reconciliation process 
[HDDS-10372](https://issues.apache.org/jira/browse/HDDS-10372)
+
+The acceptance test mainly tests the SCM CLI for container reconciliation. It 
does not test fault injection.
+
+More comprehensive tests with fault injection were added as part of unit tests 
and integration tests.
+
+## 6. Support of containers / Kubernetes
+
+No addition. No change in existing support.
+
+## 7. Coverage / Code quality
+
+[New code 
coverage](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-10239-container-reconciliation)
 for Storage Container Reconciliation (HDDS-10239) is 89.2, and [Overall code 
coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=HDDS-10239-container-reconciliation)
 is 78.5
+
+[Overall code 
coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=master) 
for master is 77.9
+
+## 8. Build time
+
+[Build time of the latest 
commit](https://github.com/apache/ozone/actions/runs/15448452385/job/43484284706)
 from the reconciliation branch is 11m 51s
+
+[Build time of the latest 
commit](https://github.com/apache/ozone/actions/runs/15461566472/job/43523882533)
 from the master branch is 11m 37s
+
+The build time is similar to that of master.
+
+## 9. Possible incompatible changes/used feature flag
+
+There is no feature flag for reconciliation. There are no modifications to 
existing container data or metadata unless an admin manually runs the `ozone 
admin container reconcile`  command. Container checksums and merkle trees will 
be generated and persisted by the container scanner and reported to SCM, but 
without an admin command the system will not act on this information.
+
+There is a possibility that some orphan blocks may appear when containers 
created before this feature are reconciled. Reconciliation tracks the blocks 
that were deleted from each container so that the data checksum of the 
container does not change after it is closed. Containers that deleted blocks 
before the reconciliation changes were present did not register these deletions 
in the persisted merkle tree. The following order of events is possible, where 
software v1 does not have the reco [...]
+
+1. Block 1 is deleted from container replica 1 in v1.
+2. Cluster is upgraded to v2.
+3. Container replicas 1 and 2 will report different data checksums until 
replica 2 also deletes block 1
+4. Container replicas 1 and 2 are reconciled, and replica 2 has still not yet 
deleted block 1.
+    - During reconciliation replica 1 will see that it does not have block 1 
that replica 2 has, and this block is not tracked in either replica's deleted 
block list.
+    - Replica 1 will re-ingest block 1 from replica 2, since it has no record 
of the block being deleted.
+5. Replica 1 now contains block 1 again and deletion will not be retried from 
SCM.
+6. Replica 2 then deletes block 1 as part of the normal block deletion flow 
and persists the result to the merkle tree. Only replica 1 has the orphan block.
+
+In the above example, if replicas 1 and 2 are reconciled again replica 2 will 
ignore block 1 from replica 1 since it knows the block was deleted. Currently 
replica 1 will not take action to remove block 1 once it learns replica 2 
deleted it. This will be handled by HDDS-11765, such that a subsequent 
reconciliation cleans up the orphan block.
+
+Integrity of existing data is a bigger problem than presence of orphan data. 
Therefore we feel that the reconciliation branch should still be merged with 
this case outstanding so admins have the option to repair containers even with 
this caveat. Orphan data arising from this issue at any time can be fixed by 
HDDS-11765.
+
+If the `ozone admin container reconcile`  command is never used then this 
issue will not happen.
+
+## 10. Third-party dependencies/License changes
+
+No new dependencies are added.
+
+## 11. Performance
+
+This feature might impact the startup time of the Datanode, as we are reading 
a Merkle tree file for each container during the startup. This will be resolved 
by  [HDDS-12824](https://issues.apache.org/jira/browse/HDDS-12824) . All other 
reconciliation operations are asynchronous and designed to run at the same time 
as other container operations. If parallel operations cause containers to 
diverge (replication of a replica while it is being reconciled, for example), 
another round of reconc [...]
+
+## 12. Security considerations
+
+- The SCM CLI, which is used to trigger reconciliation, is only accessible to 
the admins. [There is a specific robot test to verify 
this](https://github.com/apache/ozone/blob/47c1eaa1eb903175c1729186da48b7bffda85bd8/hadoop-ozone/dist/src/main/smoketest/admincli/container.robot#L172).
+- An API on the Datanode was added to read the merkle tree from peer 
Datanodes. It uses a container token for authorization. [There are specific 
integration tests for container token 
verification](https://github.com/apache/ozone/blob/47c1eaa1eb903175c1729186da48b7bffda85bd8/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainerWithTLS.java#L233).
+- All the other APIs used in this feature are existing secure APIs.
+- All the RPC calls within the cluster in this feature are secure and use 
secure container/block tokens for each call.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/15-hdds-10656-atomic-key-overwrite.md
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/15-hdds-10656-atomic-key-overwrite.md
new file mode 100644
index 0000000000..2656a4df6a
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/15-hdds-10656-atomic-key-overwrite.md
@@ -0,0 +1,54 @@
+# HDDS-10656: Atomic Key Overwrite
+
+Epic: [HDDS-10656](https://issues.apache.org/jira/browse/HDDS-10656)
+Feature branch:  
https://github.com/apache/ozone/tree/HDDS-10656-atomic-key-overwrite
+
+## 1. builds/intermittent test failures
+
+Intermittent test failures observed on the branch are the same as on master.  
Currently most of these are due to 
[HDDS-10750](https://issues.apache.org/jira/browse/HDDS-10750), which will be 
fixed by Ratis 3.1.0.
+
+Ran full [CI for the latest 
commit](https://github.com/apache/ozone/actions/runs/9624466946) on the feature 
branch 4 times.  The first run had an unrelated failure, all tests passed in 
the following 3 runs.
+
+## 2. documentation
+
+The new API is for developers to build upon.  Not intended for end-users or 
administrators.
+
+## 3. design, attached the docs
+
+Design doc added on the master branch 
([HDDS-10657](https://issues.apache.org/jira/browse/HDDS-10657), [pull 
request](https://github.com/apache/ozone/pull/6482)).
+
+## 4. S3 compatibility
+
+N/A, S3 behavior was not changed.
+
+## 5. Docker-compose / acceptance tests
+
+Robot test was added in 
[HDDS-10947](https://issues.apache.org/jira/browse/HDDS-10947) to cover rewrite 
of key created via multipart upload.  Other use cases are covered by 
integration tests.
+
+## 6. support of containers / Kubernetes
+
+N/A, the new request does not affect support of containers.
+
+## 7. coverage/code quality
+
+Current coverage is ~58% for both 
[master](https://sonarcloud.io/project/activity?custom_metrics=coverage&graph=custom&id=hadoop-ozone)
 and the [feature 
branch](https://sonarcloud.io/project/activity?id=hadoop-ozone&graph=custom&custom_metrics=coverage&branch=HDDS-10656-atomic-key-overwrite).
+
+## 8. build time
+
+Build time in CI of the latest commit on the [feature branch 
(54f151946cc349087bf73de04aa85a5d128f4584)](https://github.com/apache/ozone/actions/runs/9624466946/job/26551824083)
 is similar to that of [master 
(9f1f7ed23801f219a41d9dd9283cc6fdf57381c8)](https://github.com/apache/ozone/actions/runs/9608208083/job/26500618875):
 19:02 vs. 18:36.
+
+## 9. possible incompatible changes/used feature flag
+
+A new OM version number was introduced to prevent new client sending atomic 
key overwrite request to old OM which does not support this feature.
+
+## 10. third party dependencies/license changes
+
+N/A, no new dependencies were introduced.
+
+## 11. performance
+
+The changes do not impact performance. If the new API is used, an additional 
parameter is passed and check on the server side. If the feature is not used, 
the code path is unchanged. No new locks or expensive checks have been added to 
facilitate the new feature.
+
+## 12. security considerations
+
+N/A.  New method was added to the existing OM client API.
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/README.mdx
 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/README.mdx
new file mode 100644
index 0000000000..6003afba4d
--- /dev/null
+++ 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/README.mdx
@@ -0,0 +1,15 @@
+---
+sidebar_label: Merged Feature Branches
+---
+
+# Merged Feature Branches
+
+import DocCardList from '@theme/DocCardList';
+
+This section contains completed merge checklists for past Apache Ozone feature 
branches that are now merged into `master`.
+
+:::info
+These checklists are accurate only up to when each feature branch was merged. 
They are not updated retroactively as feature development may continue on the 
`master` branch.
+:::
+
+<DocCardList/>
diff --git 
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/README.mdx 
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/README.mdx
new file mode 100644
index 0000000000..2adfaa38e2
--- /dev/null
+++ b/docs/08-developer-guide/04-project/01-git/03-feature-branches/README.mdx
@@ -0,0 +1,7 @@
+# Feature Branches
+
+import DocCardList from '@theme/DocCardList';
+
+This section documents Ozone's usage of git feature branches for development 
off of the `master` branch.
+
+<DocCardList/>
diff --git a/docs/08-developer-guide/04-project/01-git/README.mdx 
b/docs/08-developer-guide/04-project/01-git/README.mdx
new file mode 100644
index 0000000000..ac7feb2963
--- /dev/null
+++ b/docs/08-developer-guide/04-project/01-git/README.mdx
@@ -0,0 +1,11 @@
+---
+sidebar_label: Git
+---
+
+# Git Usage
+
+import DocCardList from '@theme/DocCardList';
+
+This section documents usage of git branches and tags within the Apache Ozone 
repo.
+
+<DocCardList/>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to