[
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]