[
https://issues.apache.org/jira/browse/HDDS-17433?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chu Cheng Li updated HDDS-17433:
--------------------------------
Description:
h3. Problem
* No freon command reads one key through a shared input stream with positioned
reads.
* {{ocokr}} opens a new stream for each read and reads the whole key. Thus it
cannot measure contention between readers of the same stream, for example for
HDDS-17399.
h3. Changes
Add {{ozone freon ocpr}} (ozone-client-positioned-reader). It reads an existing
key.
* {{\-t}} threads do random, aligned {{readFully(position, buffer)}} calls of
{{\-\-read-size}} bytes.
* {{\-\-streams S}} opens S streams on the key. {{\-\-clients C}} creates C
{{OzoneClient}} instances.
* Thread i uses stream (i mod S), and stream j uses client (j mod C). The
mapping does not change during the run. Each stream gets the same number of
threads, plus or minus one.
* {{\-\-sequential-readers K}} adds K threads for each stream. Each one reads
the stream sequentially in steps of {{\-\-sequential-read-size}} bytes during
the whole test. If one of them fails, the run stops and fails.
* The report shows a timer for positioned reads and a timer for sequential
reads.
h3. Tests
* An integration test runs {{ocpr}} with one stream and with two streams, each
with one sequential reader. It checks that all positioned reads succeed and
that the sequential readers read data.
Related: HDDS-17399.
was:
h3. Problem
* No freon command reads one key through a shared input stream with positioned
reads.
* {{ocokr}} opens a new stream for each read and reads the whole key. Thus it
cannot measure contention between readers of the same stream, for example for
HDDS-17399.
h3. Changes
Add {{ozone freon ocpr}} (ozone-client-positioned-reader). It reads an existing
key.
* {{\-t}} threads do random, aligned {{readFully(position, buffer)}} calls of
{{\-\-read-size}} bytes.
* {{\-\-streams S}} opens S streams on the key. {{\-\-clients C}} creates C
{{OzoneClient}} instances.
* Thread i uses stream (i mod S), and stream j uses client (j mod C). The
mapping does not change during the run. Each stream gets the same number of
threads, plus or minus one.
* {{\-\-sequential-readers K}} adds K threads for each stream. Each one reads
the stream from start to end in steps of {{\-\-sequential-read-size}} bytes,
and then starts again.
* The report shows a timer for positioned reads and a timer for sequential
reads.
h3. Tests
* An integration test runs {{ocpr}} with one stream and with two streams, each
with one sequential reader, and checks that all reads succeed.
Related: HDDS-17399.
> Add a freon command for positioned reads on shared input streams
> ----------------------------------------------------------------
>
> Key: HDDS-17433
> URL: https://issues.apache.org/jira/browse/HDDS-17433
> Project: Apache Ozone
> Issue Type: Improvement
> Components: freon
> Reporter: Chu Cheng Li
> Assignee: Chu Cheng Li
> Priority: Major
> Labels: pull-request-available
>
> h3. Problem
> * No freon command reads one key through a shared input stream with
> positioned reads.
> * {{ocokr}} opens a new stream for each read and reads the whole key. Thus it
> cannot measure contention between readers of the same stream, for example for
> HDDS-17399.
> h3. Changes
> Add {{ozone freon ocpr}} (ozone-client-positioned-reader). It reads an
> existing key.
> * {{\-t}} threads do random, aligned {{readFully(position, buffer)}} calls of
> {{\-\-read-size}} bytes.
> * {{\-\-streams S}} opens S streams on the key. {{\-\-clients C}} creates C
> {{OzoneClient}} instances.
> * Thread i uses stream (i mod S), and stream j uses client (j mod C). The
> mapping does not change during the run. Each stream gets the same number of
> threads, plus or minus one.
> * {{\-\-sequential-readers K}} adds K threads for each stream. Each one reads
> the stream sequentially in steps of {{\-\-sequential-read-size}} bytes during
> the whole test. If one of them fails, the run stops and fails.
> * The report shows a timer for positioned reads and a timer for sequential
> reads.
> h3. Tests
> * An integration test runs {{ocpr}} with one stream and with two streams,
> each with one sequential reader. It checks that all positioned reads succeed
> and that the sequential readers read data.
> Related: HDDS-17399.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]