refactor memory map related code

This commit is contained in:
Chris Lu 2019-10-22 00:49:42 -07:00
parent fec07c829d
commit c9a183eb69
6 changed files with 34 additions and 51 deletions

View file

@ -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
} }

View file

@ -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() {
} }

View 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() {
}

View file

@ -1,4 +1,4 @@
package needle package memory_map
import "testing" import "testing"

View file

@ -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

View file

@ -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
}