mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
refactor memory map related code
This commit is contained in:
parent
fec07c829d
commit
c9a183eb69
|
@ -11,6 +11,7 @@ import (
|
||||||
"github.com/chrislusf/seaweedfs/weed/operation"
|
"github.com/chrislusf/seaweedfs/weed/operation"
|
||||||
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
|
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
|
||||||
"github.com/chrislusf/seaweedfs/weed/storage"
|
"github.com/chrislusf/seaweedfs/weed/storage"
|
||||||
|
"github.com/chrislusf/seaweedfs/weed/storage/memory_map"
|
||||||
"github.com/chrislusf/seaweedfs/weed/storage/needle"
|
"github.com/chrislusf/seaweedfs/weed/storage/needle"
|
||||||
"github.com/chrislusf/seaweedfs/weed/topology"
|
"github.com/chrislusf/seaweedfs/weed/topology"
|
||||||
"github.com/chrislusf/seaweedfs/weed/util"
|
"github.com/chrislusf/seaweedfs/weed/util"
|
||||||
|
@ -147,7 +148,7 @@ func (ms *MasterServer) getVolumeGrowOption(r *http.Request) (*topology.VolumeGr
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
memoryMapMaxSizeMb, err := needle.ReadMemoryMapMaxSizeMb(r.FormValue("memoryMapMaxSizeMb"))
|
memoryMapMaxSizeMb, err := memory_map.ReadMemoryMapMaxSizeMb(r.FormValue("memoryMapMaxSizeMb"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
// +build !windows
|
|
||||||
|
|
||||||
package memory_map
|
package memory_map
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
type MemoryBuffer struct {
|
type MemoryBuffer struct {
|
||||||
|
@ -25,18 +23,10 @@ type MemoryMap struct {
|
||||||
|
|
||||||
var FileMemoryMap = make(map[string]*MemoryMap)
|
var FileMemoryMap = make(map[string]*MemoryMap)
|
||||||
|
|
||||||
func (mMap *MemoryMap) CreateMemoryMap(file *os.File, maxLength uint64) {
|
func ReadMemoryMapMaxSizeMb(memoryMapMaxSizeMbString string) (uint32, error) {
|
||||||
}
|
if memoryMapMaxSizeMbString == "" {
|
||||||
|
return 0, nil
|
||||||
func (mMap *MemoryMap) WriteMemory(offset uint64, length uint64, data []byte) {
|
}
|
||||||
|
memoryMapMaxSize64, err := strconv.ParseUint(memoryMapMaxSizeMbString, 10, 32)
|
||||||
}
|
return uint32(memoryMapMaxSize64), err
|
||||||
|
|
||||||
func (mMap *MemoryMap) ReadMemory(offset uint64, length uint64) ([]byte, error) {
|
|
||||||
dataSlice := []byte{}
|
|
||||||
return dataSlice, fmt.Errorf("Memory Map not implemented for this platform")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (mBuffer *MemoryMap) DeleteFileAndMemoryMap() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
24
weed/storage/memory_map/memory_map_other.go
Normal file
24
weed/storage/memory_map/memory_map_other.go
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
|
package memory_map
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (mMap *MemoryMap) CreateMemoryMap(file *os.File, maxLength uint64) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mMap *MemoryMap) WriteMemory(offset uint64, length uint64, data []byte) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mMap *MemoryMap) ReadMemory(offset uint64, length uint64) ([]byte, error) {
|
||||||
|
dataSlice := []byte{}
|
||||||
|
return dataSlice, fmt.Errorf("Memory Map not implemented for this platform")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mBuffer *MemoryMap) DeleteFileAndMemoryMap() {
|
||||||
|
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package needle
|
package memory_map
|
||||||
|
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
|
@ -11,24 +11,6 @@ import (
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
)
|
)
|
||||||
|
|
||||||
type MemoryBuffer struct {
|
|
||||||
aligned_length uint64
|
|
||||||
length uint64
|
|
||||||
aligned_ptr uintptr
|
|
||||||
ptr uintptr
|
|
||||||
Buffer []byte
|
|
||||||
}
|
|
||||||
|
|
||||||
type MemoryMap struct {
|
|
||||||
File *os.File
|
|
||||||
file_memory_map_handle uintptr
|
|
||||||
write_map_views []MemoryBuffer
|
|
||||||
max_length uint64
|
|
||||||
End_of_file int64
|
|
||||||
}
|
|
||||||
|
|
||||||
var FileMemoryMap = make(map[string]*MemoryMap)
|
|
||||||
|
|
||||||
type DWORDLONG = uint64
|
type DWORDLONG = uint64
|
||||||
type DWORD = uint32
|
type DWORD = uint32
|
||||||
type WORD = uint16
|
type WORD = uint16
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
package needle
|
|
||||||
|
|
||||||
import "strconv"
|
|
||||||
|
|
||||||
func ReadMemoryMapMaxSizeMb(MemoryMapMaxSizeMbString string) (uint32, error) {
|
|
||||||
if MemoryMapMaxSizeMbString == "" {
|
|
||||||
return 0, nil
|
|
||||||
}
|
|
||||||
var MemoryMapMaxSize64 uint64
|
|
||||||
var err error
|
|
||||||
MemoryMapMaxSize64, err = strconv.ParseUint(MemoryMapMaxSizeMbString, 10, 32)
|
|
||||||
MemoryMapMaxSize := uint32(MemoryMapMaxSize64)
|
|
||||||
return MemoryMapMaxSize, err
|
|
||||||
}
|
|
Loading…
Reference in a new issue