refactoring
This commit is contained in:
@@ -32,23 +32,14 @@ func (n *Needle) Append(w backend.BackendStorageFile, version Version) (offset u
|
|||||||
buffer_pool.SyncPoolPutBuffer(bytesBuffer)
|
buffer_pool.SyncPoolPutBuffer(bytesBuffer)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
switch version {
|
size, actualSize, err = writeNeedleByVersion(version, n, offset, bytesBuffer)
|
||||||
case Version1:
|
if err != nil {
|
||||||
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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err == nil {
|
_, err = w.WriteAt(bytesBuffer.Bytes(), int64(offset))
|
||||||
_, err = w.WriteAt(bytesBuffer.Bytes(), int64(offset))
|
if err != nil {
|
||||||
if err != nil {
|
err = fmt.Errorf("failed to write %d bytes to %s at offset %d: %w", actualSize, w.Name(), offset, err)
|
||||||
err = fmt.Errorf("failed to write %d bytes to %s at offset %d: %w", actualSize, w.Name(), offset, err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return offset, size, actualSize, err
|
return offset, size, actualSize, err
|
||||||
|
|||||||
23
weed/storage/needle/needle_write_version.go
Normal file
23
weed/storage/needle/needle_write_version.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user