Project

General

Profile

Actions

Bug #48289

closed

prefetch in rgw_file is done 3 times per read

Added by Kajetan Janiak over 3 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
librgw
Backport:
octopus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Each call to rgw_read (rgw_file.cc) invokes three calls to RGWRados::get_obj_state with RGWObjState::prefetch_data = true. It results in great read amplification. If length argument in rgw_read call is smaller than rgw_max_chunk_size, then the amplification is threefold.

It can be seen in logs when a file is downloaded via NFS-Ganesha

2020-11-13 10:34:43.411 7f01d81f8700 20 get_obj_state: rctx=0x7f01d81f4470 obj=test:A state=0x7f01a93d7208 s->prefetch_data=1
2020-11-13 10:34:43.415 7f01d71f0700 20 get_obj_state: rctx=0x7f01d71ec470 obj=test:A state=0x7f01c8997208 s->prefetch_data=1
2020-11-13 10:34:43.419 7f01d81f8700 20 get_obj_state: rctx=0x7f01d81f4470 obj=test:A state=0x7f01a93d7208 s->prefetch_data=1

Related issues 1 (0 open1 closed)

Copied to rgw - Backport #53133: octopus: prefetch in rgw_file is done 3 times per readResolvedCory SnyderActions
Actions

Also available in: Atom PDF