diff options
| author | chrislu <chris.lu@gmail.com> | 2025-06-10 20:39:05 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-06-11 20:13:06 -0700 |
| commit | f27e195354af65e9364261fd0918d8e7ee2db349 (patch) | |
| tree | ee33e9a63439866424e9a3a47f17ee8789e89b41 | |
| parent | fa730abec7581ea00e0ff9d78bf4bdbe3a039d84 (diff) | |
| download | seaweedfs-f27e195354af65e9364261fd0918d8e7ee2db349.tar.xz seaweedfs-f27e195354af65e9364261fd0918d8e7ee2db349.zip | |
refactoring
| -rw-r--r-- | weed/storage/needle/needle_write.go | 19 | ||||
| -rw-r--r-- | weed/storage/needle/needle_write_version.go | 23 |
2 files changed, 28 insertions, 14 deletions
diff --git a/weed/storage/needle/needle_write.go b/weed/storage/needle/needle_write.go index 0ed2d292a..dd8296b7a 100644 --- a/weed/storage/needle/needle_write.go +++ b/weed/storage/needle/needle_write.go @@ -32,23 +32,14 @@ func (n *Needle) Append(w backend.BackendStorageFile, version Version) (offset u buffer_pool.SyncPoolPutBuffer(bytesBuffer) }() - switch version { - case Version1: - size, actualSize, err = writeNeedleV1(n, offset, bytesBuffer) - case Version2: - size, actualSize, err = writeNeedleV2(n, offset, bytesBuffer) - case Version3: - size, actualSize, err = writeNeedleV3(n, offset, bytesBuffer) - default: - err = fmt.Errorf("unsupported version: %d", version) + size, actualSize, err = writeNeedleByVersion(version, n, offset, bytesBuffer) + if err != nil { return } - if err == nil { - _, err = w.WriteAt(bytesBuffer.Bytes(), int64(offset)) - if err != nil { - err = fmt.Errorf("failed to write %d bytes to %s at offset %d: %w", actualSize, w.Name(), offset, err) - } + _, err = w.WriteAt(bytesBuffer.Bytes(), int64(offset)) + if err != nil { + err = fmt.Errorf("failed to write %d bytes to %s at offset %d: %w", actualSize, w.Name(), offset, err) } return offset, size, actualSize, err diff --git a/weed/storage/needle/needle_write_version.go b/weed/storage/needle/needle_write_version.go new file mode 100644 index 000000000..1a6c0bf78 --- /dev/null +++ b/weed/storage/needle/needle_write_version.go @@ -0,0 +1,23 @@ +package needle + +import ( + "bytes" + "fmt" + + . "github.com/seaweedfs/seaweedfs/weed/storage/types" +) + +func writeNeedleByVersion(version Version, n *Needle, offset uint64, bytesBuffer *bytes.Buffer) (size Size, actualSize int64, err error) { + // Switch logic moved from needle_write.go + switch version { + case Version1: + size, actualSize, err = writeNeedleV1(n, offset, bytesBuffer) + case Version2: + size, actualSize, err = writeNeedleV2(n, offset, bytesBuffer) + case Version3: + size, actualSize, err = writeNeedleV3(n, offset, bytesBuffer) + default: + err = fmt.Errorf("unsupported version: %d", version) + } + return +} |
