-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Reads amount to ~ 70 MBs, so do writes (symmetric because we write what we read). We are only doing CRC32 (IEEE) during replication:
varasto/pkg/stoserver/stodiskaccess/diskaccess.go
Lines 93 to 110 in 278ac87
| expectedCrc32, err := d.metadataStore.QueryBlobCrc32(ref) | |
| if err != nil { | |
| return fmt.Errorf("Replicate() QueryBlobCrc32: %v", err) | |
| } | |
| rawContent, err := fromDriver.RawFetch(ctx, ref) | |
| if err != nil { | |
| return err | |
| } | |
| defer rawContent.Close() | |
| crc32VerifiedReader := hashverifyreader.New(rawContent, crc32.NewIEEE(), expectedCrc32) | |
| if err := toDriver.RawStore(ctx, ref, crc32VerifiedReader); err != nil { | |
| return err | |
| } | |
| return d.metadataStore.WriteBlobReplicated(ref, toVolumeID) |
CPU usage averages to 55 % across all cores. We should be expected to get 1,000 to 5,000+ MB/s per core on an AMD Ryzen 5 2400G (claimed by ChatGPT), so CPU usage really shouldn't be much above base load during replication.
There's something funky going on, my hunch is that it's the DB doing a write transaction per every blob replicated. 70 MB/s should equal to 18 blobs a second, therefore 18 write txns a second - assuming 4 MB blobs on average for my data set. This should be peanuts for any DB.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working