Project

General

Profile

Actions

Bug #40153

closed

multisite: bucket index log can omit multipart entries

Added by Casey Bodley almost 5 years ago. Updated 5 months ago.

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

0%

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

Description

data sync does not replicate parts, so the bucket index log doesn't need to store a {write prepare, write complete, and delete complete} entry for every part and .meta.

the (abbreviated) bilog list for a 4-part multipart upload looks like this:

[
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.meta",
        "state": "pending",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.meta",
        "state": "complete",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.1",
        "state": "pending",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.1",
        "state": "complete",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.2",
        "state": "pending",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.2",
        "state": "complete",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.3",
        "state": "pending",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.3",
        "state": "complete",
    },
    {
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.4",
        "state": "pending",
    },
    {   
        "op": "write",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.4",
        "state": "complete",
    },
    {   
        "op": "write",
        "object": "128m.iso",
        "state": "pending",
    },
    {   
        "op": "write",
        "object": "128m.iso",
        "state": "complete",
    },
    {   
        "op": "del",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.1",
        "state": "complete",
    },
    {   
        "op": "del",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.2",
        "state": "complete",
    },
    {   
        "op": "del",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.3",
        "state": "complete",
    },
    {   
        "op": "del",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.4",
        "state": "complete",
    },
    {   
        "op": "del",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.meta",
        "state": "pending",
    },
    {   
        "op": "del",
        "object": "_multipart_128m.iso.2~Asko0xU3EFWlRdRJwTpgr0tD9AuWrHl.meta",
        "state": "complete",
    },
]

but the only entry required to sync the object is:

[
    {
        "op": "write",
        "object": "128m.iso",
        "state": "complete",
    },
]

Actions

Also available in: Atom PDF