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

weichiu pushed a commit to branch HDDS-9225-website-v2
in repository https://gitbox.apache.org/repos/asf/ozone-site.git


The following commit(s) were added to refs/heads/HDDS-9225-website-v2 by this 
push:
     new 1794bd5bb HDDS-14500. [Website v2] [Docs] [Administrator Guide] 
Improve 'FairCallQueue' page (#292)
1794bd5bb is described below

commit 1794bd5bb25a323328be52e3fbdb8b74ef10a6c2
Author: Gargi Jaiswal <[email protected]>
AuthorDate: Tue Jan 27 11:15:31 2026 +0530

    HDDS-14500. [Website v2] [Docs] [Administrator Guide] Improve 
'FairCallQueue' page (#292)
---
 cspell.yaml                                        |  2 +
 .../04-performance/08-fair-call-queue.md           | 60 ++++++++++++++++++----
 2 files changed, 53 insertions(+), 9 deletions(-)

diff --git a/cspell.yaml b/cspell.yaml
index 77ad7f9dd..efb4a35e9 100644
--- a/cspell.yaml
+++ b/cspell.yaml
@@ -95,6 +95,8 @@ words:
 - HCFS
 - libo3fs
 - AOS
+- FCQ
+- QoS
 # Other systems' words
 - KDC
 - classpath
diff --git 
a/docs/05-administrator-guide/02-configuration/04-performance/08-fair-call-queue.md
 
b/docs/05-administrator-guide/02-configuration/04-performance/08-fair-call-queue.md
index e0de624f3..2a2cc5873 100644
--- 
a/docs/05-administrator-guide/02-configuration/04-performance/08-fair-call-queue.md
+++ 
b/docs/05-administrator-guide/02-configuration/04-performance/08-fair-call-queue.md
@@ -1,17 +1,37 @@
 ---
-sidebar_label: FairCallQueue
+sidebar_label: Fairness
 ---
 
-# FairCallQueue
+# Fairness
 
-This document contains information for setting up the `FairCallQueue` feature 
with Ozone.
-In order for `FairCallQueue` to be enabled and used,
-Hadoop RPC must be used as transport protocol for OM - S3G communication.
-There is no implementation for gRPC yet.
+## What is FairCallQueue?
 
-There is a custom `IdentityProvider` implementation for Ozone that must be 
specified in the configuration, otherwise
-there is no S3G impersonation which makes the `FairCallQueue` ineffective 
since it's only reading one user,
-the S3G special user instead of the S3G client user.
+Fair Call Queue (FCQ) is a multi-level priority queue that schedules RPC 
requests based on user identity. It works with a scheduler (typically 
`DecayRpcScheduler`) to track each user's call volume over time, assign 
priority levels based on usage patterns, and distribute processing capacity 
fairly across all users using a weighted round-robin multiplexer.
+
+This document contains information for setting up the `FairCallQueue` feature 
with Ozone. In order for FairCallQueue to be enabled and used, Hadoop RPC must 
be used as transport protocol for `OM - S3G communication`. There is no 
implementation for gRPC yet.
+
+There is a custom `IdentityProvider` implementation for Ozone that must be 
specified in the configuration, otherwise there is no S3G impersonation which 
makes the FairCallQueue ineffective since it’s only reading one user, the S3G 
special user instead of the S3G client user.
+
+## Why is Fairness Important?
+
+Fairness is crucial in multi-tenant environments where multiple users or 
applications access Ozone through the S3 Gateway. Without fair scheduling:
+
+- A single high-volume user or application can flood the request queue, 
causing other users' requests to wait indefinitely or timeout
+- Users with legitimate but lower-volume workloads may experience unacceptable 
latency as their requests are delayed behind a backlog of requests from a 
single dominant user.
+- System resources could be monopolized by aggressive clients
+- Quality of service (QoS) guarantees cannot be maintained
+
+By implementing fair call queuing, Ozone ensures that all users receive 
equitable access to OM resources, leading to more predictable performance and 
better multi-tenancy support.
+
+## Where FCQ should be applied?
+
+FCQ should be applied at the **Ozone Manager (OM)** level for the **S3 Gateway 
(S3G) → Ozone Manager** communication path.
+When S3 Gateway forwards requests from multiple S3 clients to the Ozone 
Manager, FCQ uses each request's S3 access ID to
+identify users and prioritize requests based on their recent call volume, 
ensuring fair resource distribution across all users.
+
+## Hadoop FCQ Framework
+
+Ozone leverages Hadoop's `FairCallQueue` framework for implementing fairness. 
For detailed information about how `FairCallQueue` works, its architecture, and 
advanced configuration options, refer to the [Hadoop FairCallQueue 
documentation](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FairCallQueue.html).
 
 ## Configuration
 
@@ -72,3 +92,25 @@ Port used for below examples : 9862
     <value>50</value>
 </property>
 ```
+
+### Validation Steps
+
+1. **Check Logs**: After starting OM, verify in the logs that FCQ is 
initialized:
+
+   ```text
+   FairCallQueue is in use with <N> queues with total capacity of <capacity>
+   ```
+
+2. **Verify Metrics**: Check that FCQ metrics are being collected (via JMX or 
metrics endpoint):
+    - `FairCallQueueSize_p<N>` for each priority level
+    - `FairCallQueueOverflowedCalls_p<N>` for overflow statistics
+
+## Troubleshooting
+
+1. **FCQ not working**: Verify `OzoneIdentityProvider` is configured, gRPC is 
disabled (`ozone.om.s3.grpc.server_enabled=false`), and port numbers match 
across all `ipc.<port>.*` properties.
+
+2. **High latency**: Increase queue capacity 
(`ipc.server.max.callqueue.length`) or adjust scheduler thresholds 
(`ipc.<port>.decay-scheduler.thresholds`).
+
+3. **Configuration errors**: Ensure port consistency between 
`ozone.om.address` and `ipc.<port>.*` properties, and verify all class names 
are correct.
+
+4. **Monitor metrics**: Check `FairCallQueueSize_p<N>` and 
`FairCallQueueOverflowedCalls_p<N>` via JMX to diagnose queue behavior.


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

Reply via email to