[ 
https://issues.apache.org/jira/browse/HDDS-16720?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gargi Jaiswal updated HDDS-16720:
---------------------------------
    Description: 
{quote}When Short-Circuit Read (SCR) is enabled and a co-located client reads a 
key via the domain-socket path, {{numLocalGetBlock}} correctly increments — but 
{{numGetBlock}} also increments, even though SCR did not use the remote/gRPC 
read path.

This makes {{numGetBlock}} unreliable for SCR validation and causes 
double-counting in datanode metrics.

*Expected behavior:*
 * SCR reads should increment only {{{}numLocalGetBlock{}}}. gRPC reads should 
increment only {{{}numGetBlock{}}}.

*Actual behavior:*
{quote} * 
{quote}SCR reads increment both numLocalGetBlock and numGetBlock is incremented 
twice for one read.

{quote}

Above behavior is not a problem,

Short-circuit reads use a domain socket, but the datanode still handles 
GetBlock through the same dispatcher as gRPC. So *{{numGetBlock}}* counts every 
GetBlock (gRPC and short-circuit), not gRPC only.

*Similarly,* 
On short-circuit, only {{l{*}ocalBytesGetBlock{*}}} is updated; 
*{{bytesGetBlock}}* should also increase (same idea as the counters).

  was:
When Short-Circuit Read (SCR) is enabled and a co-located client reads a key 
via the domain-socket path, {{numLocalGetBlock}} correctly increments — but 
{{numGetBlock}} also increments, even though SCR did not use the remote/gRPC 
read path.

This makes {{numGetBlock}} unreliable for SCR validation and causes 
double-counting in datanode metrics.

*Expected behavior:*
 * SCR reads should increment only {{{}numLocalGetBlock{}}}. gRPC reads should 
increment only {{{}numGetBlock{}}}.

*Actual behavior:*
 * SCR reads increment both numLocalGetBlock and numGetBlock is incremented 
twice for one read.


> Count SCR GetBlock bytes in both bytesGetBlock and localBytesGetBlock
> ---------------------------------------------------------------------
>
>                 Key: HDDS-16720
>                 URL: https://issues.apache.org/jira/browse/HDDS-16720
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: Ozone Datanode
>            Reporter: Elavarasan Kathirvel
>            Assignee: Gargi Jaiswal
>            Priority: Minor
>              Labels: short-circuit-read
>
> {quote}When Short-Circuit Read (SCR) is enabled and a co-located client reads 
> a key via the domain-socket path, {{numLocalGetBlock}} correctly increments — 
> but {{numGetBlock}} also increments, even though SCR did not use the 
> remote/gRPC read path.
> This makes {{numGetBlock}} unreliable for SCR validation and causes 
> double-counting in datanode metrics.
> *Expected behavior:*
>  * SCR reads should increment only {{{}numLocalGetBlock{}}}. gRPC reads 
> should increment only {{{}numGetBlock{}}}.
> *Actual behavior:*
> {quote} * 
> {quote}SCR reads increment both numLocalGetBlock and numGetBlock is 
> incremented twice for one read.
> {quote}
> Above behavior is not a problem,
> Short-circuit reads use a domain socket, but the datanode still handles 
> GetBlock through the same dispatcher as gRPC. So *{{numGetBlock}}* counts 
> every GetBlock (gRPC and short-circuit), not gRPC only.
> *Similarly,* 
> On short-circuit, only {{l{*}ocalBytesGetBlock{*}}} is updated; 
> *{{bytesGetBlock}}* should also increase (same idea as the counters).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to