mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-08-25 09:02:07 +08:00
Rename End_of_file variable, implement platform indepenent memory_map.go
This commit is contained in:
parent
9aa0859697
commit
cc756ddd79
@ -2,7 +2,10 @@
|
|||||||
|
|
||||||
package memory_map
|
package memory_map
|
||||||
|
|
||||||
import "os"
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
type MemoryBuffer struct {
|
type MemoryBuffer struct {
|
||||||
aligned_length uint64
|
aligned_length uint64
|
||||||
@ -17,7 +20,23 @@ type MemoryMap struct {
|
|||||||
file_memory_map_handle uintptr
|
file_memory_map_handle uintptr
|
||||||
write_map_views []MemoryBuffer
|
write_map_views []MemoryBuffer
|
||||||
max_length uint64
|
max_length uint64
|
||||||
End_Of_File int64
|
End_of_file int64
|
||||||
}
|
}
|
||||||
|
|
||||||
var FileMemoryMap = make(map[string]MemoryMap)
|
var FileMemoryMap = make(map[string]*MemoryMap)
|
||||||
|
|
||||||
|
func (mMap *MemoryMap) WriteMemory(offset uint64, length uint64, data []byte) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mMap *MemoryMap) ReadMemory(offset uint64, length uint64) (MemoryBuffer, error) {
|
||||||
|
return MemoryBuffer{}, fmt.Errorf("Memory Map not implemented for this platform")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mem_buffer *MemoryBuffer) ReleaseMemory() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mMap *MemoryMap) DeleteFileAndMemoryMap() {
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -24,7 +24,7 @@ type MemoryMap struct {
|
|||||||
file_memory_map_handle uintptr
|
file_memory_map_handle uintptr
|
||||||
write_map_views []MemoryBuffer
|
write_map_views []MemoryBuffer
|
||||||
max_length uint64
|
max_length uint64
|
||||||
End_Of_File int64
|
End_of_file int64
|
||||||
}
|
}
|
||||||
|
|
||||||
var FileMemoryMap = make(map[string]*MemoryMap)
|
var FileMemoryMap = make(map[string]*MemoryMap)
|
||||||
@ -51,7 +51,7 @@ func (mMap *MemoryMap) CreateMemoryMap(file *os.File, maxlength uint64) {
|
|||||||
mMap.file_memory_map_handle = uintptr(file_memory_map_handle)
|
mMap.file_memory_map_handle = uintptr(file_memory_map_handle)
|
||||||
mMap.write_map_views = make([]MemoryBuffer, 0, maxlength/chunk_size)
|
mMap.write_map_views = make([]MemoryBuffer, 0, maxlength/chunk_size)
|
||||||
mMap.max_length = maxlength
|
mMap.max_length = maxlength
|
||||||
mMap.End_Of_File = -1
|
mMap.End_of_file = -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,8 +103,8 @@ func (mMap *MemoryMap) WriteMemory(offset uint64, length uint64, data []byte) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if mMap.End_Of_File < int64(offset+length-1) {
|
if mMap.End_of_file < int64(offset+length-1) {
|
||||||
mMap.End_Of_File = int64(offset + length - 1)
|
mMap.End_of_file = int64(offset + length - 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ func (n *Needle) Append(w *os.File, version Version) (offset uint64, size uint32
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
offset = uint64(mMap.End_Of_File + 1)
|
offset = uint64(mMap.End_of_file + 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
bytesToWrite, size, actualSize, err := n.prepareWriteBuffer(version)
|
bytesToWrite, size, actualSize, err := n.prepareWriteBuffer(version)
|
||||||
|
@ -75,7 +75,7 @@ func (v *Volume) maybeWriteSuperBlock() error {
|
|||||||
|
|
||||||
mMap, exists := memory_map.FileMemoryMap[v.dataFile.Name()]
|
mMap, exists := memory_map.FileMemoryMap[v.dataFile.Name()]
|
||||||
if exists {
|
if exists {
|
||||||
if mMap.End_Of_File == -1 {
|
if mMap.End_of_file == -1 {
|
||||||
v.SuperBlock.version = needle.CurrentVersion
|
v.SuperBlock.version = needle.CurrentVersion
|
||||||
mMap.WriteMemory(0, uint64(len(v.SuperBlock.Bytes())), v.SuperBlock.Bytes())
|
mMap.WriteMemory(0, uint64(len(v.SuperBlock.Bytes())), v.SuperBlock.Bytes())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user