Feature #1895
osd: detect duplicate requests by tracking per-client last_acked_tid instead of using pg log
0%
Description
Currently duplicate request detection uses the PG log, which may be trimmed too much to contain actual duplicates. This can cause out of order acks, since a later operation might be detected as a dup, and immmediately acked, while an earlier one may have been trimmed from the log already. Stale client information can be removed after a timeout period.
History
#1 Updated by Greg Farnum about 12 years ago
Naively this data can just go in the OSD::Session struct. However, it might be a bit of a hassle dealing with thrashing scenarios where we maintain the session but get retransmitted requests?
#2 Updated by Sage Weil about 12 years ago
my first thought would be something like:
- set<osd_reqid_t> in the Session
- on session open, load above set from an object on disk
- within session, when client sends trim info, rewrite session object. at least sometimes.
- when a request is written to disk, include an append to the client session object in the local transaction
hmm, but that doesn't help when the pg migrates elsewhere.. we need to build up session state about recent history there as well.. and presumably then it would come from the pg log.
unless the per-client session state is an object in the pg, and the trimming of session state (or purging of stale sessions) is also reflected by a pg log entry, just like everything else.
blah..
#3 Updated by Sage Weil about 12 years ago
- translation missing: en.field_position set to 4
#4 Updated by Sage Weil about 12 years ago
- Target version deleted (
v0.41) - translation missing: en.field_position deleted (
4) - translation missing: en.field_position set to 1
#5 Updated by Sage Weil about 12 years ago
- translation missing: en.field_position deleted (
10) - translation missing: en.field_position set to 80
#6 Updated by Sage Weil about 12 years ago
- translation missing: en.field_position deleted (
90) - translation missing: en.field_position set to 103
#7 Updated by Sage Weil about 12 years ago
- Status changed from New to Rejected