Skip to content

etag errors in ceph backed instance #10

@rklra

Description

@rklra

Hi,

I was trying to get the package setup using ceph object storage (theoretically s3 compatible) as the backing store but the etag system used to protect against concurrent writes (

func getInfo(dst OutputFS, fp string, out blockfmt.Uploader) (string, time.Time, error) {
) does not seem to function with cephs etag system (with the value of e.ETag() being blank) as seen here:

sync: etag "[etag here]" from Stat disagrees with etag

rebuilding sdb with the if statement here:

if e, ok := out.(etagger); ok && e.ETag() != etag {
		return "", time.Time{}, fmt.Errorf("etag %s from Stat disagrees with etag %s", etag, e.ETag())
	}

commented out, queries appear to function normally and syncing continues to work (as long as no concurrent reading/writing to the table is occuring)

full outputs here:
(unmodified version of sdb)

root@avx1 ~/sneller # go run ./cmd/sdb/ -- sync main table
sync: etag "[full etag here]" from Stat disagrees with etag
exit status 1

(modified version of sdb)

root@avx1 ~/sneller # go run ./cmd/sdb/ -- sync main table

(edited version -- worked with no errors)

note on concurrent read/write

in my (limited) testing with concurrent reads/writes occurring while the sync task is running, few to no issues occur with querying data that was synced during a write on my modified instance

(sync during write)

root@avx1 ~/sneller # go run ./cmd/sdb/ -- sync main table
root@avx1 ~/sneller # sdb query -fmt json "SELECT COUNT(*) FROM main.table"
{"count": 76}

(sync after write)

root@avx1 ~/sneller # go run ./cmd/sdb/ -- sync main table
root@avx1 ~/sneller # sdb -v  query -fmt json "SELECT COUNT(*) FROM main.table"
{"count": 87}

(full rebuild of indexes and zion files)

root@avx1 ~/sneller # go run ./cmd/sdb/ -- sync main table
root@avx1 ~/sneller # sdb -v  query -fmt json "SELECT COUNT(*) FROM main.table"
{"count": 87}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions