Project

General

Profile

Actions

Feature #2171

closed

rgw: asynchronously calculate md5

Added by Yehuda Sadeh about 12 years ago. Updated over 6 years ago.

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

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

When doing a PUT we calculate the md5 of the content (used later for the etag) synchronously. We need to be able to calculate it asynchronously so that we can do that calculation and writing the data in parallel.

Actions #1

Updated by Yehuda Sadeh about 12 years ago

  • Category set to 22
Actions #2

Updated by Yehuda Sadeh about 12 years ago

  • Tracker changed from Bug to Feature
Actions #3

Updated by Yehuda Sadeh about 12 years ago

Actually, I think it'll be easier doing it the other way around. As we already write the object asynchronously we can have the main thread calculating the md5 while feeding the write queue (the same as now). One change would be that we'd handle the ack callbacks for the write and send new writes if there are any.

Actions #4

Updated by Yehuda Sadeh about 12 years ago

Thinking about it some more, it's probably not the best use of time and effort. We initiate the md5 calculation after sending the rados request, so basically we do:

send chunk(1)
calculate md5(1)
send chunk(2)
calculate md5(2)
...
wait (1,2,...)

Sending the chunks is non-blocking, so total time would be in the order of the slowest path: either writing the data or calculating the md5. Doing the md5 calculation async wouldn't change that.

Actions #5

Updated by Sage Weil about 12 years ago

  • Status changed from New to Rejected
  • Translation missing: en.field_position set to 1
  • Translation missing: en.field_position changed from 1 to 1188
Actions #6

Updated by John Spray over 6 years ago

  • Project changed from Ceph to rgw
  • Category deleted (22)

Bulk reassign of radosgw category to RGW project.

Actions

Also available in: Atom PDF