diff options
Diffstat (limited to 'weed')
244 files changed, 1537 insertions, 889 deletions
diff --git a/weed/command/backup.go b/weed/command/backup.go index cd5843dd3..65d2a745b 100644 --- a/weed/command/backup.go +++ b/weed/command/backup.go @@ -3,13 +3,13 @@ package command import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/util" "github.com/spf13/viper" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/storage" ) var ( @@ -112,7 +112,7 @@ func runBackup(cmd *Command, args []string) bool { return true } } - v, err := storage.NewVolume(*s.dir, *s.collection, vid, storage.NeedleMapInMemory, replication, ttl, 0) + v, err := storage.NewVolume(*s.dir, *s.collection, vid, storage.NeedleMapInMemory, replication, ttl, 0, false) if err != nil { fmt.Printf("Error creating or reading from volume %d: %v\n", vid, err) return true @@ -137,7 +137,7 @@ func runBackup(cmd *Command, args []string) bool { // remove the old data v.Destroy() // recreate an empty volume - v, err = storage.NewVolume(*s.dir, *s.collection, vid, storage.NeedleMapInMemory, replication, ttl, 0) + v, err = storage.NewVolume(*s.dir, *s.collection, vid, storage.NeedleMapInMemory, replication, ttl, 0, false) if err != nil { fmt.Printf("Error creating or reading from volume %d: %v\n", vid, err) return true diff --git a/weed/command/benchmark.go b/weed/command/benchmark.go index dd0fdb88e..bf655caa0 100644 --- a/weed/command/benchmark.go +++ b/weed/command/benchmark.go @@ -18,11 +18,11 @@ import ( "github.com/spf13/viper" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/util" - "github.com/chrislusf/seaweedfs/weed/wdclient" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/wdclient" ) type BenchmarkOptions struct { diff --git a/weed/command/compact.go b/weed/command/compact.go index 79d50c095..f10b0b2bc 100644 --- a/weed/command/compact.go +++ b/weed/command/compact.go @@ -1,9 +1,9 @@ package command import ( - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func init() { @@ -38,7 +38,7 @@ func runCompact(cmd *Command, args []string) bool { vid := needle.VolumeId(*compactVolumeId) v, err := storage.NewVolume(*compactVolumePath, *compactVolumeCollection, vid, - storage.NeedleMapInMemory, nil, nil, preallocate) + storage.NeedleMapInMemory, nil, nil, preallocate, false) if err != nil { glog.Fatalf("Load Volume [ERROR] %s\n", err) } diff --git a/weed/command/download.go b/weed/command/download.go index b3e33defd..c57517d00 100644 --- a/weed/command/download.go +++ b/weed/command/download.go @@ -8,8 +8,8 @@ import ( "path" "strings" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/util" ) var ( diff --git a/weed/command/export.go b/weed/command/export.go index 7e94ec11c..43aa38872 100644 --- a/weed/command/export.go +++ b/weed/command/export.go @@ -14,10 +14,10 @@ import ( "io" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" ) const ( diff --git a/weed/command/filer.go b/weed/command/filer.go index b1ceb46f5..ddd60d375 100644 --- a/weed/command/filer.go +++ b/weed/command/filer.go @@ -6,13 +6,13 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/security" "github.com/spf13/viper" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/server" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/server" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc/reflection" ) diff --git a/weed/command/filer_copy.go b/weed/command/filer_copy.go index 19aceb211..3aa845eba 100644 --- a/weed/command/filer_copy.go +++ b/weed/command/filer_copy.go @@ -14,11 +14,11 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/util" - "github.com/chrislusf/seaweedfs/weed/wdclient" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/wdclient" "github.com/spf13/viper" "google.golang.org/grpc" ) diff --git a/weed/command/filer_replication.go b/weed/command/filer_replication.go index c6e7f5dba..1040e2174 100644 --- a/weed/command/filer_replication.go +++ b/weed/command/filer_replication.go @@ -4,16 +4,16 @@ import ( "context" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/replication" - "github.com/chrislusf/seaweedfs/weed/replication/sink" - _ "github.com/chrislusf/seaweedfs/weed/replication/sink/azuresink" - _ "github.com/chrislusf/seaweedfs/weed/replication/sink/b2sink" - _ "github.com/chrislusf/seaweedfs/weed/replication/sink/filersink" - _ "github.com/chrislusf/seaweedfs/weed/replication/sink/gcssink" - _ "github.com/chrislusf/seaweedfs/weed/replication/sink/s3sink" - "github.com/chrislusf/seaweedfs/weed/replication/sub" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/replication" + "github.com/joeslay/seaweedfs/weed/replication/sink" + _ "github.com/joeslay/seaweedfs/weed/replication/sink/azuresink" + _ "github.com/joeslay/seaweedfs/weed/replication/sink/b2sink" + _ "github.com/joeslay/seaweedfs/weed/replication/sink/filersink" + _ "github.com/joeslay/seaweedfs/weed/replication/sink/gcssink" + _ "github.com/joeslay/seaweedfs/weed/replication/sink/s3sink" + "github.com/joeslay/seaweedfs/weed/replication/sub" + "github.com/joeslay/seaweedfs/weed/util" "github.com/spf13/viper" ) diff --git a/weed/command/fix.go b/weed/command/fix.go index bf33490cc..c6d017d07 100644 --- a/weed/command/fix.go +++ b/weed/command/fix.go @@ -5,10 +5,10 @@ import ( "path" "strconv" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" ) func init() { diff --git a/weed/command/master.go b/weed/command/master.go index 3d33f4f7a..3e4fc15e8 100644 --- a/weed/command/master.go +++ b/weed/command/master.go @@ -8,11 +8,11 @@ import ( "strings" "github.com/chrislusf/raft/protobuf" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/server" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/server" + "github.com/joeslay/seaweedfs/weed/util" "github.com/gorilla/mux" "github.com/spf13/viper" "google.golang.org/grpc/reflection" diff --git a/weed/command/mount_std.go b/weed/command/mount_std.go index 0519ae7b8..4dc21d334 100644 --- a/weed/command/mount_std.go +++ b/weed/command/mount_std.go @@ -12,13 +12,13 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/security" "github.com/jacobsa/daemonize" "github.com/spf13/viper" - "github.com/chrislusf/seaweedfs/weed/filesys" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filesys" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/util" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" ) diff --git a/weed/command/s3.go b/weed/command/s3.go index e004bb066..c3f2d61d4 100644 --- a/weed/command/s3.go +++ b/weed/command/s3.go @@ -4,14 +4,14 @@ import ( "net/http" "time" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/security" "github.com/spf13/viper" "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/s3api" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/s3api" + "github.com/joeslay/seaweedfs/weed/util" "github.com/gorilla/mux" ) diff --git a/weed/command/server.go b/weed/command/server.go index 87f404ed3..dea5c49c4 100644 --- a/weed/command/server.go +++ b/weed/command/server.go @@ -8,8 +8,8 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/util" ) type ServerOptions struct { diff --git a/weed/command/shell.go b/weed/command/shell.go index 79f8b8bf9..2adac4d0e 100644 --- a/weed/command/shell.go +++ b/weed/command/shell.go @@ -1,9 +1,9 @@ package command import ( - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/shell" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/shell" + "github.com/joeslay/seaweedfs/weed/util" "github.com/spf13/viper" ) diff --git a/weed/command/upload.go b/weed/command/upload.go index 25e938d9b..861f6261d 100644 --- a/weed/command/upload.go +++ b/weed/command/upload.go @@ -6,11 +6,11 @@ import ( "os" "path/filepath" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/util" "github.com/spf13/viper" - "github.com/chrislusf/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/operation" ) var ( diff --git a/weed/command/version.go b/weed/command/version.go index 8fdd68ec8..e8b417d1c 100644 --- a/weed/command/version.go +++ b/weed/command/version.go @@ -4,7 +4,7 @@ import ( "fmt" "runtime" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/util" ) var cmdVersion = &Command{ diff --git a/weed/command/volume.go b/weed/command/volume.go index 3c1aa2b50..0a0e16ac4 100644 --- a/weed/command/volume.go +++ b/weed/command/volume.go @@ -9,14 +9,14 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/security" "github.com/spf13/viper" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/server" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/server" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc/reflection" ) diff --git a/weed/command/volume_test.go b/weed/command/volume_test.go index 7399f1248..65b96a7c2 100644 --- a/weed/command/volume_test.go +++ b/weed/command/volume_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) func TestXYZ(t *testing.T) { diff --git a/weed/command/webdav.go b/weed/command/webdav.go index 371c4a9ad..313aa1382 100644 --- a/weed/command/webdav.go +++ b/weed/command/webdav.go @@ -7,10 +7,10 @@ import ( "strconv" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/server" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/server" + "github.com/joeslay/seaweedfs/weed/util" "github.com/spf13/viper" ) diff --git a/weed/filer2/abstract_sql/abstract_sql_store.go b/weed/filer2/abstract_sql/abstract_sql_store.go index 3e8554957..9519d4cd8 100644 --- a/weed/filer2/abstract_sql/abstract_sql_store.go +++ b/weed/filer2/abstract_sql/abstract_sql_store.go @@ -5,8 +5,8 @@ import ( "database/sql" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" ) type AbstractSqlStore struct { diff --git a/weed/filer2/cassandra/cassandra_store.go b/weed/filer2/cassandra/cassandra_store.go index 466be5bf3..9a31d8030 100644 --- a/weed/filer2/cassandra/cassandra_store.go +++ b/weed/filer2/cassandra/cassandra_store.go @@ -3,9 +3,9 @@ package cassandra import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/util" "github.com/gocql/gocql" ) diff --git a/weed/filer2/configuration.go b/weed/filer2/configuration.go index 7b05b53dc..c4712a48a 100644 --- a/weed/filer2/configuration.go +++ b/weed/filer2/configuration.go @@ -3,7 +3,7 @@ package filer2 import ( "os" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" "github.com/spf13/viper" ) diff --git a/weed/filer2/entry.go b/weed/filer2/entry.go index 3f8a19114..480ad631e 100644 --- a/weed/filer2/entry.go +++ b/weed/filer2/entry.go @@ -4,7 +4,7 @@ import ( "os" "time" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) type Attr struct { diff --git a/weed/filer2/entry_codec.go b/weed/filer2/entry_codec.go index cf4627b74..1b0f4f64b 100644 --- a/weed/filer2/entry_codec.go +++ b/weed/filer2/entry_codec.go @@ -5,7 +5,7 @@ import ( "time" "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/golang/protobuf/proto" ) diff --git a/weed/filer2/etcd/etcd_store.go b/weed/filer2/etcd/etcd_store.go index 1b0f928d0..42987c130 100644 --- a/weed/filer2/etcd/etcd_store.go +++ b/weed/filer2/etcd/etcd_store.go @@ -6,9 +6,9 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - weed_util "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + weed_util "github.com/joeslay/seaweedfs/weed/util" "go.etcd.io/etcd/clientv3" ) diff --git a/weed/filer2/filechunks.go b/weed/filer2/filechunks.go index b5876df82..130d4ead5 100644 --- a/weed/filer2/filechunks.go +++ b/weed/filer2/filechunks.go @@ -6,7 +6,7 @@ import ( "sort" "sync" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) func TotalSize(chunks []*filer_pb.FileChunk) (size uint64) { diff --git a/weed/filer2/filechunks_test.go b/weed/filer2/filechunks_test.go index e75e60753..c0c20fbf1 100644 --- a/weed/filer2/filechunks_test.go +++ b/weed/filer2/filechunks_test.go @@ -5,7 +5,7 @@ import ( "testing" "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) func TestCompactFileChunks(t *testing.T) { diff --git a/weed/filer2/filer.go b/weed/filer2/filer.go index cf236b74d..d86090e62 100644 --- a/weed/filer2/filer.go +++ b/weed/filer2/filer.go @@ -10,8 +10,8 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/wdclient" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/wdclient" "github.com/karlseguin/ccache" ) diff --git a/weed/filer2/filer_client_util.go b/weed/filer2/filer_client_util.go index 7e093eea2..49bf39e51 100644 --- a/weed/filer2/filer_client_util.go +++ b/weed/filer2/filer_client_util.go @@ -6,9 +6,9 @@ import ( "strings" "sync" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" ) func VolumeId(fileId string) string { diff --git a/weed/filer2/filer_deletion.go b/weed/filer2/filer_deletion.go index 25e27e504..bb1cbcefe 100644 --- a/weed/filer2/filer_deletion.go +++ b/weed/filer2/filer_deletion.go @@ -3,9 +3,9 @@ package filer2 import ( "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) func (f *Filer) loopProcessingDeletion() { diff --git a/weed/filer2/filer_notify.go b/weed/filer2/filer_notify.go index c37381116..82aae9da3 100644 --- a/weed/filer2/filer_notify.go +++ b/weed/filer2/filer_notify.go @@ -1,9 +1,9 @@ package filer2 import ( - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/notification" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/notification" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) func (f *Filer) NotifyUpdateEvent(oldEntry, newEntry *Entry, deleteChunks bool) { diff --git a/weed/filer2/filer_notify_test.go b/weed/filer2/filer_notify_test.go index b74e2ad35..d8319463f 100644 --- a/weed/filer2/filer_notify_test.go +++ b/weed/filer2/filer_notify_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/golang/protobuf/proto" ) diff --git a/weed/filer2/filerstore.go b/weed/filer2/filerstore.go index 8caa44ee2..dd61f25bd 100644 --- a/weed/filer2/filerstore.go +++ b/weed/filer2/filerstore.go @@ -5,9 +5,9 @@ import ( "errors" "time" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" ) type FilerStore interface { diff --git a/weed/filer2/leveldb/leveldb_store.go b/weed/filer2/leveldb/leveldb_store.go index d00eba859..3607f0d06 100644 --- a/weed/filer2/leveldb/leveldb_store.go +++ b/weed/filer2/leveldb/leveldb_store.go @@ -5,9 +5,9 @@ import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - weed_util "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + weed_util "github.com/joeslay/seaweedfs/weed/util" "github.com/syndtr/goleveldb/leveldb" "github.com/syndtr/goleveldb/leveldb/opt" leveldb_util "github.com/syndtr/goleveldb/leveldb/util" diff --git a/weed/filer2/leveldb/leveldb_store_test.go b/weed/filer2/leveldb/leveldb_store_test.go index 904de8c97..7ac9c888f 100644 --- a/weed/filer2/leveldb/leveldb_store_test.go +++ b/weed/filer2/leveldb/leveldb_store_test.go @@ -2,7 +2,7 @@ package leveldb import ( "context" - "github.com/chrislusf/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/filer2" "io/ioutil" "os" "testing" diff --git a/weed/filer2/leveldb2/leveldb2_store.go b/weed/filer2/leveldb2/leveldb2_store.go index 4b47d2eb3..e70a9e223 100644 --- a/weed/filer2/leveldb2/leveldb2_store.go +++ b/weed/filer2/leveldb2/leveldb2_store.go @@ -8,9 +8,9 @@ import ( "io" "os" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - weed_util "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + weed_util "github.com/joeslay/seaweedfs/weed/util" "github.com/syndtr/goleveldb/leveldb" "github.com/syndtr/goleveldb/leveldb/opt" leveldb_util "github.com/syndtr/goleveldb/leveldb/util" diff --git a/weed/filer2/leveldb2/leveldb2_store_test.go b/weed/filer2/leveldb2/leveldb2_store_test.go index e28ef7dac..39886c7ce 100644 --- a/weed/filer2/leveldb2/leveldb2_store_test.go +++ b/weed/filer2/leveldb2/leveldb2_store_test.go @@ -2,7 +2,7 @@ package leveldb import ( "context" - "github.com/chrislusf/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/filer2" "io/ioutil" "os" "testing" diff --git a/weed/filer2/memdb/memdb_store.go b/weed/filer2/memdb/memdb_store.go index 9c10a5472..673599a6b 100644 --- a/weed/filer2/memdb/memdb_store.go +++ b/weed/filer2/memdb/memdb_store.go @@ -3,8 +3,8 @@ package memdb import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/util" "github.com/google/btree" "strings" "sync" diff --git a/weed/filer2/memdb/memdb_store_test.go b/weed/filer2/memdb/memdb_store_test.go index d823c5177..e6f507102 100644 --- a/weed/filer2/memdb/memdb_store_test.go +++ b/weed/filer2/memdb/memdb_store_test.go @@ -2,7 +2,7 @@ package memdb import ( "context" - "github.com/chrislusf/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/filer2" "testing" ) diff --git a/weed/filer2/mysql/mysql_store.go b/weed/filer2/mysql/mysql_store.go index e18299bd2..985ea64bf 100644 --- a/weed/filer2/mysql/mysql_store.go +++ b/weed/filer2/mysql/mysql_store.go @@ -4,9 +4,9 @@ import ( "database/sql" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/filer2/abstract_sql" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/filer2/abstract_sql" + "github.com/joeslay/seaweedfs/weed/util" _ "github.com/go-sql-driver/mysql" ) diff --git a/weed/filer2/postgres/postgres_store.go b/weed/filer2/postgres/postgres_store.go index ffd3d1e01..63d4f0cb2 100644 --- a/weed/filer2/postgres/postgres_store.go +++ b/weed/filer2/postgres/postgres_store.go @@ -4,9 +4,9 @@ import ( "database/sql" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/filer2/abstract_sql" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/filer2/abstract_sql" + "github.com/joeslay/seaweedfs/weed/util" _ "github.com/lib/pq" ) diff --git a/weed/filer2/redis/redis_cluster_store.go b/weed/filer2/redis/redis_cluster_store.go index 11c315391..a8bbf3a32 100644 --- a/weed/filer2/redis/redis_cluster_store.go +++ b/weed/filer2/redis/redis_cluster_store.go @@ -1,8 +1,8 @@ package redis import ( - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/util" "github.com/go-redis/redis" ) diff --git a/weed/filer2/redis/redis_store.go b/weed/filer2/redis/redis_store.go index c56fa014c..3614f3226 100644 --- a/weed/filer2/redis/redis_store.go +++ b/weed/filer2/redis/redis_store.go @@ -1,8 +1,8 @@ package redis import ( - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/util" "github.com/go-redis/redis" ) diff --git a/weed/filer2/redis/universal_redis_store.go b/weed/filer2/redis/universal_redis_store.go index ce41d4d70..bd7a42da1 100644 --- a/weed/filer2/redis/universal_redis_store.go +++ b/weed/filer2/redis/universal_redis_store.go @@ -3,8 +3,8 @@ package redis import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" "github.com/go-redis/redis" "sort" "strings" diff --git a/weed/filer2/stream.go b/weed/filer2/stream.go index 01b87cad1..fc04c9a0e 100644 --- a/weed/filer2/stream.go +++ b/weed/filer2/stream.go @@ -3,10 +3,10 @@ package filer2 import ( "io" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" - "github.com/chrislusf/seaweedfs/weed/wdclient" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/wdclient" ) func StreamContent(masterClient *wdclient.MasterClient, w io.Writer, chunks []*filer_pb.FileChunk, offset int64, size int) error { diff --git a/weed/filesys/dir.go b/weed/filesys/dir.go index 79cf45385..48c75d809 100644 --- a/weed/filesys/dir.go +++ b/weed/filesys/dir.go @@ -6,9 +6,9 @@ import ( "path" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" ) diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 94e443649..ded6138c4 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -6,8 +6,8 @@ import ( "syscall" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" ) diff --git a/weed/filesys/dir_rename.go b/weed/filesys/dir_rename.go index e72a15758..24bff770b 100644 --- a/weed/filesys/dir_rename.go +++ b/weed/filesys/dir_rename.go @@ -3,7 +3,7 @@ package filesys import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" ) diff --git a/weed/filesys/dirty_page.go b/weed/filesys/dirty_page.go index baee412b2..f9718c93f 100644 --- a/weed/filesys/dirty_page.go +++ b/weed/filesys/dirty_page.go @@ -8,10 +8,10 @@ import ( "sync/atomic" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/security" ) type ContinuousDirtyPages struct { diff --git a/weed/filesys/file.go b/weed/filesys/file.go index 1b359ebbe..a0dac36dd 100644 --- a/weed/filesys/file.go +++ b/weed/filesys/file.go @@ -7,9 +7,9 @@ import ( "sort" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" ) diff --git a/weed/filesys/filehandle.go b/weed/filesys/filehandle.go index 1f4754dd1..59e1705ae 100644 --- a/weed/filesys/filehandle.go +++ b/weed/filesys/filehandle.go @@ -7,9 +7,9 @@ import ( "path" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/gabriel-vasile/mimetype" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" diff --git a/weed/filesys/wfs.go b/weed/filesys/wfs.go index 1bd9b5cc9..215201040 100644 --- a/weed/filesys/wfs.go +++ b/weed/filesys/wfs.go @@ -8,9 +8,9 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/karlseguin/ccache" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" diff --git a/weed/filesys/wfs_deletion.go b/weed/filesys/wfs_deletion.go index 6e586b7df..b1bd53e7b 100644 --- a/weed/filesys/wfs_deletion.go +++ b/weed/filesys/wfs_deletion.go @@ -3,10 +3,10 @@ package filesys import ( "context" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "google.golang.org/grpc" ) diff --git a/weed/images/resizing.go b/weed/images/resizing.go index ff0eff5e1..81d9e20c8 100644 --- a/weed/images/resizing.go +++ b/weed/images/resizing.go @@ -7,7 +7,7 @@ import ( "image/jpeg" "image/png" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" "github.com/disintegration/imaging" "io" ) diff --git a/weed/notification/aws_sqs/aws_sqs_pub.go b/weed/notification/aws_sqs/aws_sqs_pub.go index c1af7f27a..1ddd51af5 100644 --- a/weed/notification/aws_sqs/aws_sqs_pub.go +++ b/weed/notification/aws_sqs/aws_sqs_pub.go @@ -8,9 +8,9 @@ import ( "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/sqs" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/notification" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/notification" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" ) diff --git a/weed/notification/configuration.go b/weed/notification/configuration.go index 7f8765cc3..a8f992660 100644 --- a/weed/notification/configuration.go +++ b/weed/notification/configuration.go @@ -1,8 +1,8 @@ package notification import ( - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" "github.com/spf13/viper" ) diff --git a/weed/notification/gocdk_pub_sub/gocdk_pub_sub.go b/weed/notification/gocdk_pub_sub/gocdk_pub_sub.go index ebf44ea6f..5a8fac51f 100644 --- a/weed/notification/gocdk_pub_sub/gocdk_pub_sub.go +++ b/weed/notification/gocdk_pub_sub/gocdk_pub_sub.go @@ -18,9 +18,9 @@ import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/notification" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/notification" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" "gocloud.dev/pubsub" _ "gocloud.dev/pubsub/awssnssqs" diff --git a/weed/notification/google_pub_sub/google_pub_sub.go b/weed/notification/google_pub_sub/google_pub_sub.go index 7b26bfe38..fe4399120 100644 --- a/weed/notification/google_pub_sub/google_pub_sub.go +++ b/weed/notification/google_pub_sub/google_pub_sub.go @@ -6,9 +6,9 @@ import ( "os" "cloud.google.com/go/pubsub" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/notification" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/notification" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" "google.golang.org/api/option" ) diff --git a/weed/notification/kafka/kafka_queue.go b/weed/notification/kafka/kafka_queue.go index 830709a51..eba5260c9 100644 --- a/weed/notification/kafka/kafka_queue.go +++ b/weed/notification/kafka/kafka_queue.go @@ -2,9 +2,9 @@ package kafka import ( "github.com/Shopify/sarama" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/notification" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/notification" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" ) diff --git a/weed/notification/log/log_queue.go b/weed/notification/log/log_queue.go index dcc038dfc..ca15fa4af 100644 --- a/weed/notification/log/log_queue.go +++ b/weed/notification/log/log_queue.go @@ -1,9 +1,9 @@ package kafka import ( - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/notification" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/notification" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" ) diff --git a/weed/operation/assign_file_id.go b/weed/operation/assign_file_id.go index 4c50eaa26..dbc2b3986 100644 --- a/weed/operation/assign_file_id.go +++ b/weed/operation/assign_file_id.go @@ -3,9 +3,9 @@ package operation import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc" "strings" ) diff --git a/weed/operation/chunked_file.go b/weed/operation/chunked_file.go index 295204dd8..6c0442693 100644 --- a/weed/operation/chunked_file.go +++ b/weed/operation/chunked_file.go @@ -13,8 +13,8 @@ import ( "sync" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/util" ) var ( diff --git a/weed/operation/delete_content.go b/weed/operation/delete_content.go index 6d84be76f..fbacdac4d 100644 --- a/weed/operation/delete_content.go +++ b/weed/operation/delete_content.go @@ -4,8 +4,8 @@ import ( "context" "errors" "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" "google.golang.org/grpc" "net/http" "strings" diff --git a/weed/operation/grpc_client.go b/weed/operation/grpc_client.go index f6b2b69e9..1eb493115 100644 --- a/weed/operation/grpc_client.go +++ b/weed/operation/grpc_client.go @@ -3,10 +3,10 @@ package operation import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc" "strconv" "strings" diff --git a/weed/operation/lookup.go b/weed/operation/lookup.go index d0773e7fd..7a876d543 100644 --- a/weed/operation/lookup.go +++ b/weed/operation/lookup.go @@ -11,8 +11,8 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/util" ) type Location struct { diff --git a/weed/operation/lookup_vid_cache.go b/weed/operation/lookup_vid_cache.go index ccc1f2beb..181d2d1bf 100644 --- a/weed/operation/lookup_vid_cache.go +++ b/weed/operation/lookup_vid_cache.go @@ -6,7 +6,7 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) var ErrorNotFound = errors.New("not found") diff --git a/weed/operation/stats.go b/weed/operation/stats.go index b69a33750..432c95376 100644 --- a/weed/operation/stats.go +++ b/weed/operation/stats.go @@ -4,7 +4,7 @@ import ( "context" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" ) func Statistics(server string, grpcDialOption grpc.DialOption, req *master_pb.StatisticsRequest) (resp *master_pb.StatisticsResponse, err error) { diff --git a/weed/operation/submit.go b/weed/operation/submit.go index bdf59d966..12be0262d 100644 --- a/weed/operation/submit.go +++ b/weed/operation/submit.go @@ -11,8 +11,8 @@ import ( "strconv" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/security" ) type FilePart struct { diff --git a/weed/operation/sync_volume.go b/weed/operation/sync_volume.go index 5562f12ab..79436440c 100644 --- a/weed/operation/sync_volume.go +++ b/weed/operation/sync_volume.go @@ -2,7 +2,7 @@ package operation import ( "context" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" "google.golang.org/grpc" ) diff --git a/weed/operation/tail_volume.go b/weed/operation/tail_volume.go index b53f18ce1..5298233bc 100644 --- a/weed/operation/tail_volume.go +++ b/weed/operation/tail_volume.go @@ -5,8 +5,8 @@ import ( "fmt" "io" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" ) diff --git a/weed/operation/upload_content.go b/weed/operation/upload_content.go index c387d0230..68d6d7a75 100644 --- a/weed/operation/upload_content.go +++ b/weed/operation/upload_content.go @@ -16,9 +16,9 @@ import ( "path/filepath" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/util" ) type UploadResult struct { diff --git a/weed/os_overloads/file_windows.go b/weed/os_overloads/file_windows.go new file mode 100644 index 000000000..05aa384e2 --- /dev/null +++ b/weed/os_overloads/file_windows.go @@ -0,0 +1,168 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package os_overloads + +import ( + "os" + "syscall" + + "golang.org/x/sys/windows" +) + +func isAbs(path string) (b bool) { + v := volumeName(path) + if v == "" { + return false + } + path = path[len(v):] + if path == "" { + return false + } + return os.IsPathSeparator(path[0]) +} + +func volumeName(path string) (v string) { + if len(path) < 2 { + return "" + } + // with drive letter + c := path[0] + if path[1] == ':' && + ('0' <= c && c <= '9' || 'a' <= c && c <= 'z' || + 'A' <= c && c <= 'Z') { + return path[:2] + } + // is it UNC + if l := len(path); l >= 5 && os.IsPathSeparator(path[0]) && os.IsPathSeparator(path[1]) && + !os.IsPathSeparator(path[2]) && path[2] != '.' { + // first, leading `\\` and next shouldn't be `\`. its server name. + for n := 3; n < l-1; n++ { + // second, next '\' shouldn't be repeated. + if os.IsPathSeparator(path[n]) { + n++ + // third, following something characters. its share name. + if !os.IsPathSeparator(path[n]) { + if path[n] == '.' { + break + } + for ; n < l; n++ { + if os.IsPathSeparator(path[n]) { + break + } + } + return path[:n] + } + break + } + } + } + return "" +} + +// fixLongPath returns the extended-length (\\?\-prefixed) form of +// path when needed, in order to avoid the default 260 character file +// path limit imposed by Windows. If path is not easily converted to +// the extended-length form (for example, if path is a relative path +// or contains .. elements), or is short enough, fixLongPath returns +// path unmodified. +// +// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath +func fixLongPath(path string) string { + // Do nothing (and don't allocate) if the path is "short". + // Empirically (at least on the Windows Server 2013 builder), + // the kernel is arbitrarily okay with < 248 bytes. That + // matches what the docs above say: + // "When using an API to create a directory, the specified + // path cannot be so long that you cannot append an 8.3 file + // name (that is, the directory name cannot exceed MAX_PATH + // minus 12)." Since MAX_PATH is 260, 260 - 12 = 248. + // + // The MSDN docs appear to say that a normal path that is 248 bytes long + // will work; empirically the path must be less then 248 bytes long. + if len(path) < 248 { + // Don't fix. (This is how Go 1.7 and earlier worked, + // not automatically generating the \\?\ form) + return path + } + + // The extended form begins with \\?\, as in + // \\?\c:\windows\foo.txt or \\?\UNC\server\share\foo.txt. + // The extended form disables evaluation of . and .. path + // elements and disables the interpretation of / as equivalent + // to \. The conversion here rewrites / to \ and elides + // . elements as well as trailing or duplicate separators. For + // simplicity it avoids the conversion entirely for relative + // paths or paths containing .. elements. For now, + // \\server\share paths are not converted to + // \\?\UNC\server\share paths because the rules for doing so + // are less well-specified. + if len(path) >= 2 && path[:2] == `\\` { + // Don't canonicalize UNC paths. + return path + } + if !isAbs(path) { + // Relative path + return path + } + + const prefix = `\\?` + + pathbuf := make([]byte, len(prefix)+len(path)+len(`\`)) + copy(pathbuf, prefix) + n := len(path) + r, w := 0, len(prefix) + for r < n { + switch { + case os.IsPathSeparator(path[r]): + // empty block + r++ + case path[r] == '.' && (r+1 == n || os.IsPathSeparator(path[r+1])): + // /./ + r++ + case r+1 < n && path[r] == '.' && path[r+1] == '.' && (r+2 == n || os.IsPathSeparator(path[r+2])): + // /../ is currently unhandled + return path + default: + pathbuf[w] = '\\' + w++ + for ; r < n && !os.IsPathSeparator(path[r]); r++ { + pathbuf[w] = path[r] + w++ + } + } + } + // A drive's root directory needs a trailing \ + if w == len(`\\?\c:`) { + pathbuf[w] = '\\' + w++ + } + return string(pathbuf[:w]) +} + +// syscallMode returns the syscall-specific mode bits from Go's portable mode bits. +func syscallMode(i os.FileMode) (o uint32) { + o |= uint32(i.Perm()) + if i&os.ModeSetuid != 0 { + o |= syscall.S_ISUID + } + if i&os.ModeSetgid != 0 { + o |= syscall.S_ISGID + } + if i&os.ModeSticky != 0 { + o |= syscall.S_ISVTX + } + // No mapping for Go's ModeTemporary (plan9 only). + return +} + +//If the bool is set to true then the file is opened with the parameters FILE_ATTRIBUTE_TEMPORARY and +// FILE_FLAG_DELETE_ON_CLOSE +func OpenFile(name string, flag int, perm os.FileMode, setToTempAndDelete bool) (file *os.File, err error) { + r, e := Open(fixLongPath(name), flag|windows.O_CLOEXEC, syscallMode(perm), setToTempAndDelete) + if e != nil { + return nil, e + } + return os.NewFile(uintptr(r), name), nil +} diff --git a/weed/os_overloads/syscall_windows.go b/weed/os_overloads/syscall_windows.go new file mode 100644 index 000000000..081cba431 --- /dev/null +++ b/weed/os_overloads/syscall_windows.go @@ -0,0 +1,80 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Windows system calls. + +package os_overloads + +import ( + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +// windows api calls + +//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW + +func makeInheritSa() *syscall.SecurityAttributes { + var sa syscall.SecurityAttributes + sa.Length = uint32(unsafe.Sizeof(sa)) + sa.InheritHandle = 1 + return &sa +} + +// opens the +func Open(path string, mode int, perm uint32, setToTempAndDelete bool) (fd syscall.Handle, err error) { + if len(path) == 0 { + return syscall.InvalidHandle, windows.ERROR_FILE_NOT_FOUND + } + pathp, err := syscall.UTF16PtrFromString(path) + if err != nil { + return syscall.InvalidHandle, err + } + var access uint32 + switch mode & (windows.O_RDONLY | windows.O_WRONLY | windows.O_RDWR) { + case windows.O_RDONLY: + access = windows.GENERIC_READ + case windows.O_WRONLY: + access = windows.GENERIC_WRITE + case windows.O_RDWR: + access = windows.GENERIC_READ | windows.GENERIC_WRITE + } + if mode&windows.O_CREAT != 0 { + access |= windows.GENERIC_WRITE + } + if mode&windows.O_APPEND != 0 { + access &^= windows.GENERIC_WRITE + access |= windows.FILE_APPEND_DATA + } + sharemode := uint32(windows.FILE_SHARE_READ | windows.FILE_SHARE_WRITE) + var sa *syscall.SecurityAttributes + if mode&windows.O_CLOEXEC == 0 { + sa = makeInheritSa() + } + var createmode uint32 + switch { + case mode&(windows.O_CREAT|windows.O_EXCL) == (windows.O_CREAT | windows.O_EXCL): + createmode = windows.CREATE_NEW + case mode&(windows.O_CREAT|windows.O_TRUNC) == (windows.O_CREAT | windows.O_TRUNC): + createmode = windows.CREATE_ALWAYS + case mode&windows.O_CREAT == windows.O_CREAT: + createmode = windows.OPEN_ALWAYS + case mode&windows.O_TRUNC == windows.O_TRUNC: + createmode = windows.TRUNCATE_EXISTING + default: + createmode = windows.OPEN_EXISTING + } + + var h syscall.Handle + var e error + + if setToTempAndDelete { + h, e = syscall.CreateFile(pathp, access, sharemode, sa, createmode, (windows.FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE), 0) + } else { + h, e = syscall.CreateFile(pathp, access, sharemode, sa, createmode, windows.FILE_ATTRIBUTE_NORMAL, 0) + } + return h, e +} diff --git a/weed/os_overloads/types_windows.go b/weed/os_overloads/types_windows.go new file mode 100644 index 000000000..254ba3002 --- /dev/null +++ b/weed/os_overloads/types_windows.go @@ -0,0 +1,9 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package os_overloads + +const ( + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 +) diff --git a/weed/pb/filer_pb/filer_pb_helper.go b/weed/pb/filer_pb/filer_pb_helper.go index 5c40332e6..86e9f719e 100644 --- a/weed/pb/filer_pb/filer_pb_helper.go +++ b/weed/pb/filer_pb/filer_pb_helper.go @@ -1,7 +1,7 @@ package filer_pb import ( - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func toFileIdObject(fileIdStr string) (*FileId, error) { diff --git a/weed/pb/master.proto b/weed/pb/master.proto index 9cf46ab92..2bc05e2f0 100644 --- a/weed/pb/master.proto +++ b/weed/pb/master.proto @@ -139,6 +139,7 @@ message AssignRequest { string data_center = 5; string rack = 6; string data_node = 7; + bool in_memory = 8; } message AssignResponse { string fid = 1; diff --git a/weed/pb/master_pb/master.pb.go b/weed/pb/master_pb/master.pb.go index f2d9420f0..ed7ef8082 100644 --- a/weed/pb/master_pb/master.pb.go +++ b/weed/pb/master_pb/master.pb.go @@ -44,12 +44,15 @@ It has these top-level messages: */ package master_pb -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" - import ( + fmt "fmt" + + proto "github.com/golang/protobuf/proto" + + math "math" + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" ) @@ -655,6 +658,7 @@ type AssignRequest struct { DataCenter string `protobuf:"bytes,5,opt,name=data_center,json=dataCenter" json:"data_center,omitempty"` Rack string `protobuf:"bytes,6,opt,name=rack" json:"rack,omitempty"` DataNode string `protobuf:"bytes,7,opt,name=data_node,json=dataNode" json:"data_node,omitempty"` + InMemory bool `protobuf:"bytes,4,opt,name=inmemory" json:"inmemory,omitempty"` } func (m *AssignRequest) Reset() { *m = AssignRequest{} } @@ -711,6 +715,13 @@ func (m *AssignRequest) GetDataNode() string { return "" } +func (m *AssignRequest) GetInMemory() bool { + if m != nil { + return m.InMemory + } + return false +} + type AssignResponse struct { Fid string `protobuf:"bytes,1,opt,name=fid" json:"fid,omitempty"` Url string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` diff --git a/weed/pb/volume_server.proto b/weed/pb/volume_server.proto index 4004875ed..bee054cd5 100644 --- a/weed/pb/volume_server.proto +++ b/weed/pb/volume_server.proto @@ -127,6 +127,7 @@ message AllocateVolumeRequest { int64 preallocate = 3; string replication = 4; string ttl = 5; + bool inmemory = 6; } message AllocateVolumeResponse { } diff --git a/weed/pb/volume_server_pb/volume_server.pb.go b/weed/pb/volume_server_pb/volume_server.pb.go index 13d14b1e5..897ad7fbb 100644 --- a/weed/pb/volume_server_pb/volume_server.pb.go +++ b/weed/pb/volume_server_pb/volume_server.pb.go @@ -68,12 +68,15 @@ It has these top-level messages: */ package volume_server_pb -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" - import ( + fmt "fmt" + + proto "github.com/golang/protobuf/proto" + + math "math" + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" ) @@ -318,6 +321,7 @@ type AllocateVolumeRequest struct { Preallocate int64 `protobuf:"varint,3,opt,name=preallocate" json:"preallocate,omitempty"` Replication string `protobuf:"bytes,4,opt,name=replication" json:"replication,omitempty"` Ttl string `protobuf:"bytes,5,opt,name=ttl" json:"ttl,omitempty"` + InMemory bool `protobuf:"varint,6,opt,name=inmemory" json:"inmemory,omitempty"` } func (m *AllocateVolumeRequest) Reset() { *m = AllocateVolumeRequest{} } @@ -360,6 +364,13 @@ func (m *AllocateVolumeRequest) GetTtl() string { return "" } +func (m *AllocateVolumeRequest) GetInMemory() bool { + if m != nil { + return m.InMemory + } + return false +} + type AllocateVolumeResponse struct { } diff --git a/weed/replication/replicator.go b/weed/replication/replicator.go index 7353cdc91..1b868defc 100644 --- a/weed/replication/replicator.go +++ b/weed/replication/replicator.go @@ -6,11 +6,11 @@ import ( "path/filepath" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/replication/sink" - "github.com/chrislusf/seaweedfs/weed/replication/source" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/replication/sink" + "github.com/joeslay/seaweedfs/weed/replication/source" + "github.com/joeslay/seaweedfs/weed/util" ) type Replicator struct { diff --git a/weed/replication/sink/azuresink/azure_sink.go b/weed/replication/sink/azuresink/azure_sink.go index 6381908a1..c64d3c4f1 100644 --- a/weed/replication/sink/azuresink/azure_sink.go +++ b/weed/replication/sink/azuresink/azure_sink.go @@ -8,12 +8,12 @@ import ( "strings" "github.com/Azure/azure-storage-blob-go/azblob" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/replication/sink" - "github.com/chrislusf/seaweedfs/weed/replication/source" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/replication/sink" + "github.com/joeslay/seaweedfs/weed/replication/source" + "github.com/joeslay/seaweedfs/weed/util" ) type AzureSink struct { diff --git a/weed/replication/sink/b2sink/b2_sink.go b/weed/replication/sink/b2sink/b2_sink.go index 35c2230fa..14cc0b12f 100644 --- a/weed/replication/sink/b2sink/b2_sink.go +++ b/weed/replication/sink/b2sink/b2_sink.go @@ -4,11 +4,11 @@ import ( "context" "strings" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/replication/sink" - "github.com/chrislusf/seaweedfs/weed/replication/source" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/replication/sink" + "github.com/joeslay/seaweedfs/weed/replication/source" + "github.com/joeslay/seaweedfs/weed/util" "github.com/kurin/blazer/b2" ) diff --git a/weed/replication/sink/filersink/fetch_write.go b/weed/replication/sink/filersink/fetch_write.go index 97e9671a3..c167707c0 100644 --- a/weed/replication/sink/filersink/fetch_write.go +++ b/weed/replication/sink/filersink/fetch_write.go @@ -7,11 +7,11 @@ import ( "strings" "sync" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/util" ) func (fs *FilerSink) replicateChunks(ctx context.Context, sourceChunks []*filer_pb.FileChunk) (replicatedChunks []*filer_pb.FileChunk, err error) { diff --git a/weed/replication/sink/filersink/filer_sink.go b/weed/replication/sink/filersink/filer_sink.go index f99c7fdf6..ce88ba63a 100644 --- a/weed/replication/sink/filersink/filer_sink.go +++ b/weed/replication/sink/filersink/filer_sink.go @@ -3,16 +3,16 @@ package filersink import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/security" "github.com/spf13/viper" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/replication/sink" - "github.com/chrislusf/seaweedfs/weed/replication/source" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/replication/sink" + "github.com/joeslay/seaweedfs/weed/replication/source" + "github.com/joeslay/seaweedfs/weed/util" ) type FilerSink struct { diff --git a/weed/replication/sink/gcssink/gcs_sink.go b/weed/replication/sink/gcssink/gcs_sink.go index abd7c49b9..48bdea3a9 100644 --- a/weed/replication/sink/gcssink/gcs_sink.go +++ b/weed/replication/sink/gcssink/gcs_sink.go @@ -6,12 +6,12 @@ import ( "os" "cloud.google.com/go/storage" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/replication/sink" - "github.com/chrislusf/seaweedfs/weed/replication/source" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/replication/sink" + "github.com/joeslay/seaweedfs/weed/replication/source" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/api/option" ) diff --git a/weed/replication/sink/replication_sink.go b/weed/replication/sink/replication_sink.go index dd54f0005..fcf604c79 100644 --- a/weed/replication/sink/replication_sink.go +++ b/weed/replication/sink/replication_sink.go @@ -2,9 +2,9 @@ package sink import ( "context" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/replication/source" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/replication/source" + "github.com/joeslay/seaweedfs/weed/util" ) type ReplicationSink interface { diff --git a/weed/replication/sink/s3sink/s3_sink.go b/weed/replication/sink/s3sink/s3_sink.go index d5cad3541..80a898239 100644 --- a/weed/replication/sink/s3sink/s3_sink.go +++ b/weed/replication/sink/s3sink/s3_sink.go @@ -11,12 +11,12 @@ import ( "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3" "github.com/aws/aws-sdk-go/service/s3/s3iface" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/replication/sink" - "github.com/chrislusf/seaweedfs/weed/replication/source" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/replication/sink" + "github.com/joeslay/seaweedfs/weed/replication/source" + "github.com/joeslay/seaweedfs/weed/util" ) type S3Sink struct { diff --git a/weed/replication/sink/s3sink/s3_write.go b/weed/replication/sink/s3sink/s3_write.go index 0a190b27d..80a54d1e8 100644 --- a/weed/replication/sink/s3sink/s3_write.go +++ b/weed/replication/sink/s3sink/s3_write.go @@ -9,10 +9,10 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/s3" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" ) func (s3sink *S3Sink) deleteObject(key string) error { diff --git a/weed/replication/source/filer_source.go b/weed/replication/source/filer_source.go index d7b5ebc4d..27729acaf 100644 --- a/weed/replication/source/filer_source.go +++ b/weed/replication/source/filer_source.go @@ -3,16 +3,16 @@ package source import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/security" "github.com/spf13/viper" "google.golang.org/grpc" "io" "net/http" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" ) type ReplicationSource interface { diff --git a/weed/replication/sub/notification_aws_sqs.go b/weed/replication/sub/notification_aws_sqs.go index f0100f4de..5f5d79de9 100644 --- a/weed/replication/sub/notification_aws_sqs.go +++ b/weed/replication/sub/notification_aws_sqs.go @@ -8,9 +8,9 @@ import ( "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/sqs" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" ) diff --git a/weed/replication/sub/notification_gocdk_pub_sub.go b/weed/replication/sub/notification_gocdk_pub_sub.go index eddba9ff8..96516ea71 100644 --- a/weed/replication/sub/notification_gocdk_pub_sub.go +++ b/weed/replication/sub/notification_gocdk_pub_sub.go @@ -3,9 +3,9 @@ package sub import ( "context" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" "gocloud.dev/pubsub" _ "gocloud.dev/pubsub/awssnssqs" diff --git a/weed/replication/sub/notification_google_pub_sub.go b/weed/replication/sub/notification_google_pub_sub.go index ad6b42a2e..a3d9f43f0 100644 --- a/weed/replication/sub/notification_google_pub_sub.go +++ b/weed/replication/sub/notification_google_pub_sub.go @@ -6,9 +6,9 @@ import ( "os" "cloud.google.com/go/pubsub" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" "google.golang.org/api/option" ) diff --git a/weed/replication/sub/notification_kafka.go b/weed/replication/sub/notification_kafka.go index 1a86a8307..dbf1fd130 100644 --- a/weed/replication/sub/notification_kafka.go +++ b/weed/replication/sub/notification_kafka.go @@ -8,9 +8,9 @@ import ( "time" "github.com/Shopify/sarama" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" ) diff --git a/weed/replication/sub/notifications.go b/weed/replication/sub/notifications.go index 66fbef824..106812b37 100644 --- a/weed/replication/sub/notifications.go +++ b/weed/replication/sub/notifications.go @@ -1,8 +1,8 @@ package sub import ( - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" ) type NotificationInput interface { diff --git a/weed/s3api/filer_multipart.go b/weed/s3api/filer_multipart.go index c8fe05645..af665e9c5 100644 --- a/weed/s3api/filer_multipart.go +++ b/weed/s3api/filer_multipart.go @@ -11,9 +11,9 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/s3" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/satori/go.uuid" ) diff --git a/weed/s3api/filer_util.go b/weed/s3api/filer_util.go index 1c3814fce..3178d37cc 100644 --- a/weed/s3api/filer_util.go +++ b/weed/s3api/filer_util.go @@ -7,8 +7,8 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) func (s3a *S3ApiServer) mkdir(ctx context.Context, parentDirectoryPath string, dirName string, fn func(entry *filer_pb.Entry)) error { diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index 492d94616..6951a41dc 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -11,8 +11,8 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/s3" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/gorilla/mux" ) diff --git a/weed/s3api/s3api_handlers.go b/weed/s3api/s3api_handlers.go index 127be07e3..470022711 100644 --- a/weed/s3api/s3api_handlers.go +++ b/weed/s3api/s3api_handlers.go @@ -6,9 +6,9 @@ import ( "encoding/base64" "encoding/xml" "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc" "net/http" "net/url" diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go index 44e93d297..bd780da31 100644 --- a/weed/s3api/s3api_object_handlers.go +++ b/weed/s3api/s3api_object_handlers.go @@ -9,8 +9,8 @@ import ( "net/http" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/server" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/server" "github.com/gorilla/mux" ) diff --git a/weed/s3api/s3api_objects_list_handlers.go b/weed/s3api/s3api_objects_list_handlers.go index 4053913fb..156968194 100644 --- a/weed/s3api/s3api_objects_list_handlers.go +++ b/weed/s3api/s3api_objects_list_handlers.go @@ -10,9 +10,9 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "github.com/gorilla/mux" ) diff --git a/weed/s3api/s3api_server.go b/weed/s3api/s3api_server.go index 24458592d..69d3ae2c2 100644 --- a/weed/s3api/s3api_server.go +++ b/weed/s3api/s3api_server.go @@ -1,12 +1,12 @@ package s3api import ( - _ "github.com/chrislusf/seaweedfs/weed/filer2/cassandra" - _ "github.com/chrislusf/seaweedfs/weed/filer2/leveldb" - _ "github.com/chrislusf/seaweedfs/weed/filer2/memdb" - _ "github.com/chrislusf/seaweedfs/weed/filer2/mysql" - _ "github.com/chrislusf/seaweedfs/weed/filer2/postgres" - _ "github.com/chrislusf/seaweedfs/weed/filer2/redis" + _ "github.com/joeslay/seaweedfs/weed/filer2/cassandra" + _ "github.com/joeslay/seaweedfs/weed/filer2/leveldb" + _ "github.com/joeslay/seaweedfs/weed/filer2/memdb" + _ "github.com/joeslay/seaweedfs/weed/filer2/mysql" + _ "github.com/joeslay/seaweedfs/weed/filer2/postgres" + _ "github.com/joeslay/seaweedfs/weed/filer2/redis" "github.com/gorilla/mux" "google.golang.org/grpc" "net/http" diff --git a/weed/security/guard.go b/weed/security/guard.go index 17fe2ea9e..c53b5648e 100644 --- a/weed/security/guard.go +++ b/weed/security/guard.go @@ -7,7 +7,7 @@ import ( "net/http" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) var ( diff --git a/weed/security/jwt.go b/weed/security/jwt.go index 0bd7fa974..b8933a08c 100644 --- a/weed/security/jwt.go +++ b/weed/security/jwt.go @@ -6,7 +6,7 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" jwt "github.com/dgrijalva/jwt-go" ) diff --git a/weed/security/tls.go b/weed/security/tls.go index e81ba4831..4c26d1b85 100644 --- a/weed/security/tls.go +++ b/weed/security/tls.go @@ -6,7 +6,7 @@ import ( "github.com/spf13/viper" "io/ioutil" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" "google.golang.org/grpc" "google.golang.org/grpc/credentials" ) diff --git a/weed/server/common.go b/weed/server/common.go index d50c283f2..d0da54bac 100644 --- a/weed/server/common.go +++ b/weed/server/common.go @@ -11,15 +11,15 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" - _ "github.com/chrislusf/seaweedfs/weed/statik" + _ "github.com/joeslay/seaweedfs/weed/statik" "github.com/gorilla/mux" statik "github.com/rakyll/statik/fs" ) diff --git a/weed/server/filer_grpc_server.go b/weed/server/filer_grpc_server.go index ad4c5e78f..f56f99459 100644 --- a/weed/server/filer_grpc_server.go +++ b/weed/server/filer_grpc_server.go @@ -9,11 +9,11 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" ) func (fs *FilerServer) LookupDirectoryEntry(ctx context.Context, req *filer_pb.LookupDirectoryEntryRequest) (*filer_pb.LookupDirectoryEntryResponse, error) { diff --git a/weed/server/filer_grpc_server_rename.go b/weed/server/filer_grpc_server_rename.go index 34fb06018..556e53fd3 100644 --- a/weed/server/filer_grpc_server_rename.go +++ b/weed/server/filer_grpc_server_rename.go @@ -3,9 +3,9 @@ package weed_server import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "path/filepath" ) diff --git a/weed/server/filer_server.go b/weed/server/filer_server.go index f2dec9346..2cce03cee 100644 --- a/weed/server/filer_server.go +++ b/weed/server/filer_server.go @@ -7,29 +7,29 @@ import ( "os" "time" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/filer2" - _ "github.com/chrislusf/seaweedfs/weed/filer2/cassandra" - _ "github.com/chrislusf/seaweedfs/weed/filer2/etcd" - _ "github.com/chrislusf/seaweedfs/weed/filer2/leveldb" - _ "github.com/chrislusf/seaweedfs/weed/filer2/leveldb2" - _ "github.com/chrislusf/seaweedfs/weed/filer2/memdb" - _ "github.com/chrislusf/seaweedfs/weed/filer2/mysql" - _ "github.com/chrislusf/seaweedfs/weed/filer2/postgres" - _ "github.com/chrislusf/seaweedfs/weed/filer2/redis" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/notification" - _ "github.com/chrislusf/seaweedfs/weed/notification/aws_sqs" - _ "github.com/chrislusf/seaweedfs/weed/notification/gocdk_pub_sub" - _ "github.com/chrislusf/seaweedfs/weed/notification/google_pub_sub" - _ "github.com/chrislusf/seaweedfs/weed/notification/kafka" - _ "github.com/chrislusf/seaweedfs/weed/notification/log" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/filer2" + _ "github.com/joeslay/seaweedfs/weed/filer2/cassandra" + _ "github.com/joeslay/seaweedfs/weed/filer2/etcd" + _ "github.com/joeslay/seaweedfs/weed/filer2/leveldb" + _ "github.com/joeslay/seaweedfs/weed/filer2/leveldb2" + _ "github.com/joeslay/seaweedfs/weed/filer2/memdb" + _ "github.com/joeslay/seaweedfs/weed/filer2/mysql" + _ "github.com/joeslay/seaweedfs/weed/filer2/postgres" + _ "github.com/joeslay/seaweedfs/weed/filer2/redis" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/notification" + _ "github.com/joeslay/seaweedfs/weed/notification/aws_sqs" + _ "github.com/joeslay/seaweedfs/weed/notification/gocdk_pub_sub" + _ "github.com/joeslay/seaweedfs/weed/notification/google_pub_sub" + _ "github.com/joeslay/seaweedfs/weed/notification/kafka" + _ "github.com/joeslay/seaweedfs/weed/notification/log" + "github.com/joeslay/seaweedfs/weed/security" "github.com/spf13/viper" ) diff --git a/weed/server/filer_server_handlers.go b/weed/server/filer_server_handlers.go index b6bfc3b04..1b3547109 100644 --- a/weed/server/filer_server_handlers.go +++ b/weed/server/filer_server_handlers.go @@ -4,7 +4,7 @@ import ( "net/http" "time" - "github.com/chrislusf/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/stats" ) func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go index 0edf501a8..6e221575f 100644 --- a/weed/server/filer_server_handlers_read.go +++ b/weed/server/filer_server_handlers_read.go @@ -12,10 +12,10 @@ import ( "strconv" "strings" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" ) func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request, isGetMethod bool) { diff --git a/weed/server/filer_server_handlers_read_dir.go b/weed/server/filer_server_handlers_read_dir.go index 87e864559..a1a934a57 100644 --- a/weed/server/filer_server_handlers_read_dir.go +++ b/weed/server/filer_server_handlers_read_dir.go @@ -6,10 +6,10 @@ import ( "strconv" "strings" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - ui "github.com/chrislusf/seaweedfs/weed/server/filer_ui" - "github.com/chrislusf/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + ui "github.com/joeslay/seaweedfs/weed/server/filer_ui" + "github.com/joeslay/seaweedfs/weed/stats" ) // listDirectoryHandler lists directories and folers under a directory diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go index 0bf1218ce..e91840a74 100644 --- a/weed/server/filer_server_handlers_write.go +++ b/weed/server/filer_server_handlers_write.go @@ -16,13 +16,13 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" ) var ( diff --git a/weed/server/filer_server_handlers_write_autochunk.go b/weed/server/filer_server_handlers_write_autochunk.go index 492b55943..d89716f0e 100644 --- a/weed/server/filer_server_handlers_write_autochunk.go +++ b/weed/server/filer_server_handlers_write_autochunk.go @@ -11,13 +11,13 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" ) func (fs *FilerServer) autoChunk(ctx context.Context, w http.ResponseWriter, r *http.Request, diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go index 6fa509e77..899d6d5f3 100644 --- a/weed/server/master_grpc_server.go +++ b/weed/server/master_grpc_server.go @@ -7,10 +7,10 @@ import ( "time" "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/topology" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/topology" "google.golang.org/grpc/peer" ) diff --git a/weed/server/master_grpc_server_collection.go b/weed/server/master_grpc_server_collection.go index a50cfa192..278acfe59 100644 --- a/weed/server/master_grpc_server_collection.go +++ b/weed/server/master_grpc_server_collection.go @@ -4,9 +4,9 @@ import ( "context" "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" ) func (ms *MasterServer) CollectionList(ctx context.Context, req *master_pb.CollectionListRequest) (*master_pb.CollectionListResponse, error) { diff --git a/weed/server/master_grpc_server_volume.go b/weed/server/master_grpc_server_volume.go index 19064bcde..286ca355c 100644 --- a/weed/server/master_grpc_server_volume.go +++ b/weed/server/master_grpc_server_volume.go @@ -5,11 +5,11 @@ import ( "fmt" "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/topology" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/topology" ) func (ms *MasterServer) LookupVolume(ctx context.Context, req *master_pb.LookupVolumeRequest) (*master_pb.LookupVolumeResponse, error) { diff --git a/weed/server/master_server.go b/weed/server/master_server.go index e9eb32cca..c928a5357 100644 --- a/weed/server/master_server.go +++ b/weed/server/master_server.go @@ -3,8 +3,8 @@ package weed_server import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/shell" - "github.com/chrislusf/seaweedfs/weed/wdclient" + "github.com/joeslay/seaweedfs/weed/shell" + "github.com/joeslay/seaweedfs/weed/wdclient" "google.golang.org/grpc" "net/http" "net/http/httputil" @@ -17,12 +17,12 @@ import ( "time" "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/sequence" - "github.com/chrislusf/seaweedfs/weed/topology" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/sequence" + "github.com/joeslay/seaweedfs/weed/topology" + "github.com/joeslay/seaweedfs/weed/util" "github.com/gorilla/mux" "github.com/spf13/viper" ) diff --git a/weed/server/master_server_handlers.go b/weed/server/master_server_handlers.go index 93f983375..fd60e9615 100644 --- a/weed/server/master_server_handlers.go +++ b/weed/server/master_server_handlers.go @@ -6,10 +6,10 @@ import ( "strconv" "strings" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (ms *MasterServer) lookupVolumeId(vids []string, collection string) (volumeLocations map[string]operation.LookupResult) { diff --git a/weed/server/master_server_handlers_admin.go b/weed/server/master_server_handlers_admin.go index 6b5da1132..4bcff0822 100644 --- a/weed/server/master_server_handlers_admin.go +++ b/weed/server/master_server_handlers_admin.go @@ -8,13 +8,13 @@ import ( "net/http" "strconv" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/topology" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/topology" + "github.com/joeslay/seaweedfs/weed/util" ) func (ms *MasterServer) collectionDeleteHandler(w http.ResponseWriter, r *http.Request) { diff --git a/weed/server/master_server_handlers_ui.go b/weed/server/master_server_handlers_ui.go index f241df87f..0c40f6e14 100644 --- a/weed/server/master_server_handlers_ui.go +++ b/weed/server/master_server_handlers_ui.go @@ -4,9 +4,9 @@ import ( "net/http" "github.com/chrislusf/raft" - ui "github.com/chrislusf/seaweedfs/weed/server/master_ui" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + ui "github.com/joeslay/seaweedfs/weed/server/master_ui" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" ) func (ms *MasterServer) uiStatusHandler(w http.ResponseWriter, r *http.Request) { diff --git a/weed/server/raft_server.go b/weed/server/raft_server.go index 88320ed98..0f10fcc55 100644 --- a/weed/server/raft_server.go +++ b/weed/server/raft_server.go @@ -2,7 +2,7 @@ package weed_server import ( "encoding/json" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc" "io/ioutil" "os" @@ -12,8 +12,8 @@ import ( "time" "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/topology" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/topology" ) type RaftServer struct { diff --git a/weed/server/volume_grpc_admin.go b/weed/server/volume_grpc_admin.go index 35c2508a6..f52f9fd2d 100644 --- a/weed/server/volume_grpc_admin.go +++ b/weed/server/volume_grpc_admin.go @@ -3,9 +3,9 @@ package weed_server import ( "context" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (vs *VolumeServer) DeleteCollection(ctx context.Context, req *volume_server_pb.DeleteCollectionRequest) (*volume_server_pb.DeleteCollectionResponse, error) { @@ -35,6 +35,7 @@ func (vs *VolumeServer) AllocateVolume(ctx context.Context, req *volume_server_p req.Replication, req.Ttl, req.Preallocate, + req.InMemory, ) if err != nil { diff --git a/weed/server/volume_grpc_batch_delete.go b/weed/server/volume_grpc_batch_delete.go index fdb7937d2..35c7dd9d6 100644 --- a/weed/server/volume_grpc_batch_delete.go +++ b/weed/server/volume_grpc_batch_delete.go @@ -5,9 +5,9 @@ import ( "net/http" "time" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (vs *VolumeServer) BatchDelete(ctx context.Context, req *volume_server_pb.BatchDeleteRequest) (*volume_server_pb.BatchDeleteResponse, error) { diff --git a/weed/server/volume_grpc_client_to_master.go b/weed/server/volume_grpc_client_to_master.go index 731675b48..1f25502cd 100644 --- a/weed/server/volume_grpc_client_to_master.go +++ b/weed/server/volume_grpc_client_to_master.go @@ -5,14 +5,14 @@ import ( "net" "time" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" "github.com/spf13/viper" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/util" "golang.org/x/net/context" ) diff --git a/weed/server/volume_grpc_copy.go b/weed/server/volume_grpc_copy.go index 8b39146ee..c836b05f0 100644 --- a/weed/server/volume_grpc_copy.go +++ b/weed/server/volume_grpc_copy.go @@ -9,13 +9,13 @@ import ( "path" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/util" ) const BufferSizeLimit = 1024 * 1024 * 2 diff --git a/weed/server/volume_grpc_copy_incremental.go b/weed/server/volume_grpc_copy_incremental.go index f56fbeef4..eb3398322 100644 --- a/weed/server/volume_grpc_copy_incremental.go +++ b/weed/server/volume_grpc_copy_incremental.go @@ -6,8 +6,8 @@ import ( "io" "os" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (vs *VolumeServer) VolumeIncrementalCopy(req *volume_server_pb.VolumeIncrementalCopyRequest, stream volume_server_pb.VolumeServer_VolumeIncrementalCopyServer) error { diff --git a/weed/server/volume_grpc_erasure_coding.go b/weed/server/volume_grpc_erasure_coding.go index 8140a06f6..65e59c683 100644 --- a/weed/server/volume_grpc_erasure_coding.go +++ b/weed/server/volume_grpc_erasure_coding.go @@ -10,14 +10,14 @@ import ( "path" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" ) /* diff --git a/weed/server/volume_grpc_tail.go b/weed/server/volume_grpc_tail.go index 34c55a599..6803d5444 100644 --- a/weed/server/volume_grpc_tail.go +++ b/weed/server/volume_grpc_tail.go @@ -5,11 +5,11 @@ import ( "fmt" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (vs *VolumeServer) VolumeTailSender(req *volume_server_pb.VolumeTailSenderRequest, stream volume_server_pb.VolumeServer_VolumeTailSenderServer) error { diff --git a/weed/server/volume_grpc_vacuum.go b/weed/server/volume_grpc_vacuum.go index 24f982241..205843496 100644 --- a/weed/server/volume_grpc_vacuum.go +++ b/weed/server/volume_grpc_vacuum.go @@ -3,9 +3,9 @@ package weed_server import ( "context" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (vs *VolumeServer) VacuumVolumeCheck(ctx context.Context, req *volume_server_pb.VacuumVolumeCheckRequest) (*volume_server_pb.VacuumVolumeCheckResponse, error) { diff --git a/weed/server/volume_server.go b/weed/server/volume_server.go index 6cf654738..144fba8ac 100644 --- a/weed/server/volume_server.go +++ b/weed/server/volume_server.go @@ -4,12 +4,12 @@ import ( "fmt" "net/http" - "github.com/chrislusf/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/stats" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/storage" "github.com/spf13/viper" ) diff --git a/weed/server/volume_server_handlers.go b/weed/server/volume_server_handlers.go index 14ad27d42..a3eb910eb 100644 --- a/weed/server/volume_server_handlers.go +++ b/weed/server/volume_server_handlers.go @@ -4,9 +4,9 @@ import ( "net/http" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/stats" ) /* diff --git a/weed/server/volume_server_handlers_admin.go b/weed/server/volume_server_handlers_admin.go index 25b6582f7..221bb1527 100644 --- a/weed/server/volume_server_handlers_admin.go +++ b/weed/server/volume_server_handlers_admin.go @@ -4,9 +4,9 @@ import ( "net/http" "path/filepath" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" ) func (vs *VolumeServer) statusHandler(w http.ResponseWriter, r *http.Request) { diff --git a/weed/server/volume_server_handlers_read.go b/weed/server/volume_server_handlers_read.go index f30ffefaf..89f9bd9d3 100644 --- a/weed/server/volume_server_handlers_read.go +++ b/weed/server/volume_server_handlers_read.go @@ -16,12 +16,12 @@ import ( "encoding/json" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/images" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/images" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/util" ) var fileNameEscaper = strings.NewReplacer("\\", "\\\\", "\"", "\\\"") diff --git a/weed/server/volume_server_handlers_ui.go b/weed/server/volume_server_handlers_ui.go index 852f0b751..7fc70d8af 100644 --- a/weed/server/volume_server_handlers_ui.go +++ b/weed/server/volume_server_handlers_ui.go @@ -5,10 +5,10 @@ import ( "path/filepath" "time" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - ui "github.com/chrislusf/seaweedfs/weed/server/volume_server_ui" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + ui "github.com/joeslay/seaweedfs/weed/server/volume_server_ui" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/util" ) func (vs *VolumeServer) uiStatusHandler(w http.ResponseWriter, r *http.Request) { diff --git a/weed/server/volume_server_handlers_write.go b/weed/server/volume_server_handlers_write.go index db8fcb555..d0b177c72 100644 --- a/weed/server/volume_server_handlers_write.go +++ b/weed/server/volume_server_handlers_write.go @@ -9,11 +9,11 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/topology" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/topology" ) func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) { diff --git a/weed/server/webdav_server.go b/weed/server/webdav_server.go index 151b48a78..7eed37485 100644 --- a/weed/server/webdav_server.go +++ b/weed/server/webdav_server.go @@ -10,15 +10,15 @@ import ( "strings" "time" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "golang.org/x/net/webdav" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/security" "github.com/spf13/viper" ) diff --git a/weed/shell/command_collection_delete.go b/weed/shell/command_collection_delete.go index fbaddcd51..d18161376 100644 --- a/weed/shell/command_collection_delete.go +++ b/weed/shell/command_collection_delete.go @@ -3,7 +3,7 @@ package shell import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" "io" ) diff --git a/weed/shell/command_collection_list.go b/weed/shell/command_collection_list.go index c4325c66f..9607c9999 100644 --- a/weed/shell/command_collection_list.go +++ b/weed/shell/command_collection_list.go @@ -3,7 +3,7 @@ package shell import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" "io" ) diff --git a/weed/shell/command_ec_balance.go b/weed/shell/command_ec_balance.go index 47ae7bad3..0ff2e3963 100644 --- a/weed/shell/command_ec_balance.go +++ b/weed/shell/command_ec_balance.go @@ -7,8 +7,8 @@ import ( "io" "sort" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func init() { diff --git a/weed/shell/command_ec_common.go b/weed/shell/command_ec_common.go index d0fe16a68..c75e14feb 100644 --- a/weed/shell/command_ec_common.go +++ b/weed/shell/command_ec_common.go @@ -6,12 +6,12 @@ import ( "math" "sort" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" ) diff --git a/weed/shell/command_ec_encode.go b/weed/shell/command_ec_encode.go index f07cb93f9..0dd3e0ea2 100644 --- a/weed/shell/command_ec_encode.go +++ b/weed/shell/command_ec_encode.go @@ -8,12 +8,12 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/wdclient" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/wdclient" "google.golang.org/grpc" ) diff --git a/weed/shell/command_ec_rebuild.go b/weed/shell/command_ec_rebuild.go index 63b7c4088..56bcd77bb 100644 --- a/weed/shell/command_ec_rebuild.go +++ b/weed/shell/command_ec_rebuild.go @@ -6,10 +6,10 @@ import ( "fmt" "io" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" ) diff --git a/weed/shell/command_ec_test.go b/weed/shell/command_ec_test.go index 9e578ed28..d1a784821 100644 --- a/weed/shell/command_ec_test.go +++ b/weed/shell/command_ec_test.go @@ -4,8 +4,8 @@ import ( "context" "testing" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func TestCommandEcBalanceSmall(t *testing.T) { diff --git a/weed/shell/command_fs_cat.go b/weed/shell/command_fs_cat.go index 66ced46c5..fdeda17de 100644 --- a/weed/shell/command_fs_cat.go +++ b/weed/shell/command_fs_cat.go @@ -6,8 +6,8 @@ import ( "io" "math" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) func init() { diff --git a/weed/shell/command_fs_du.go b/weed/shell/command_fs_du.go index 5e634c82a..678e05eeb 100644 --- a/weed/shell/command_fs_du.go +++ b/weed/shell/command_fs_du.go @@ -3,9 +3,9 @@ package shell import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc" "io" ) diff --git a/weed/shell/command_fs_ls.go b/weed/shell/command_fs_ls.go index 6979635e1..678f0b7a1 100644 --- a/weed/shell/command_fs_ls.go +++ b/weed/shell/command_fs_ls.go @@ -3,8 +3,8 @@ package shell import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "io" "os" "os/user" diff --git a/weed/shell/command_fs_meta_load.go b/weed/shell/command_fs_meta_load.go index 5ea8de9f5..2146755fc 100644 --- a/weed/shell/command_fs_meta_load.go +++ b/weed/shell/command_fs_meta_load.go @@ -6,9 +6,9 @@ import ( "io" "os" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" ) diff --git a/weed/shell/command_fs_meta_notify.go b/weed/shell/command_fs_meta_notify.go index 13b272fbf..5064b0033 100644 --- a/weed/shell/command_fs_meta_notify.go +++ b/weed/shell/command_fs_meta_notify.go @@ -5,10 +5,10 @@ import ( "fmt" "io" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/notification" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/notification" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/spf13/viper" ) diff --git a/weed/shell/command_fs_meta_save.go b/weed/shell/command_fs_meta_save.go index e710fe297..e0d24e672 100644 --- a/weed/shell/command_fs_meta_save.go +++ b/weed/shell/command_fs_meta_save.go @@ -8,9 +8,9 @@ import ( "os" "time" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/util" "github.com/golang/protobuf/proto" ) diff --git a/weed/shell/command_fs_mv.go b/weed/shell/command_fs_mv.go index 67606ab53..d1f04a851 100644 --- a/weed/shell/command_fs_mv.go +++ b/weed/shell/command_fs_mv.go @@ -6,8 +6,8 @@ import ( "io" "path/filepath" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" ) func init() { diff --git a/weed/shell/command_fs_tree.go b/weed/shell/command_fs_tree.go index 8474e43ea..c75c7d11f 100644 --- a/weed/shell/command_fs_tree.go +++ b/weed/shell/command_fs_tree.go @@ -3,8 +3,8 @@ package shell import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" "io" "strings" ) diff --git a/weed/shell/command_volume_balance.go b/weed/shell/command_volume_balance.go index d7ef0d005..b24fa43b6 100644 --- a/weed/shell/command_volume_balance.go +++ b/weed/shell/command_volume_balance.go @@ -9,8 +9,8 @@ import ( "sort" "time" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func init() { diff --git a/weed/shell/command_volume_copy.go b/weed/shell/command_volume_copy.go index 1c83ba655..e44976f88 100644 --- a/weed/shell/command_volume_copy.go +++ b/weed/shell/command_volume_copy.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func init() { diff --git a/weed/shell/command_volume_delete.go b/weed/shell/command_volume_delete.go index 17d27ea3a..604b7d9c1 100644 --- a/weed/shell/command_volume_delete.go +++ b/weed/shell/command_volume_delete.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func init() { diff --git a/weed/shell/command_volume_fix_replication.go b/weed/shell/command_volume_fix_replication.go index 4c7a794c0..ced0b51f6 100644 --- a/weed/shell/command_volume_fix_replication.go +++ b/weed/shell/command_volume_fix_replication.go @@ -3,10 +3,10 @@ package shell import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage" "io" "math/rand" "sort" diff --git a/weed/shell/command_volume_list.go b/weed/shell/command_volume_list.go index 134580ffe..7a1aa0d87 100644 --- a/weed/shell/command_volume_list.go +++ b/weed/shell/command_volume_list.go @@ -3,8 +3,8 @@ package shell import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" "io" "sort" diff --git a/weed/shell/command_volume_mount.go b/weed/shell/command_volume_mount.go index 50a307492..78d3878bc 100644 --- a/weed/shell/command_volume_mount.go +++ b/weed/shell/command_volume_mount.go @@ -5,9 +5,9 @@ import ( "fmt" "io" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" ) diff --git a/weed/shell/command_volume_move.go b/weed/shell/command_volume_move.go index 08d87c988..bca3cebbb 100644 --- a/weed/shell/command_volume_move.go +++ b/weed/shell/command_volume_move.go @@ -7,9 +7,9 @@ import ( "log" "time" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" ) diff --git a/weed/shell/command_volume_unmount.go b/weed/shell/command_volume_unmount.go index 8096f34d8..f6e2efdcc 100644 --- a/weed/shell/command_volume_unmount.go +++ b/weed/shell/command_volume_unmount.go @@ -5,9 +5,9 @@ import ( "fmt" "io" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" ) diff --git a/weed/shell/commands.go b/weed/shell/commands.go index b642ec253..e361ae586 100644 --- a/weed/shell/commands.go +++ b/weed/shell/commands.go @@ -9,9 +9,9 @@ import ( "strconv" "strings" - "github.com/chrislusf/seaweedfs/weed/filer2" - "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" - "github.com/chrislusf/seaweedfs/weed/wdclient" + "github.com/joeslay/seaweedfs/weed/filer2" + "github.com/joeslay/seaweedfs/weed/pb/filer_pb" + "github.com/joeslay/seaweedfs/weed/wdclient" "google.golang.org/grpc" ) diff --git a/weed/stats/disk.go b/weed/stats/disk.go index e9d8baedd..22e306312 100644 --- a/weed/stats/disk.go +++ b/weed/stats/disk.go @@ -1,6 +1,6 @@ package stats -import "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" +import "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" func NewDiskStatus(path string) (disk *volume_server_pb.DiskStatus) { disk = &volume_server_pb.DiskStatus{Dir: path} diff --git a/weed/stats/disk_notsupported.go b/weed/stats/disk_notsupported.go index ace662f6a..b2a9ce8c9 100644 --- a/weed/stats/disk_notsupported.go +++ b/weed/stats/disk_notsupported.go @@ -2,7 +2,7 @@ package stats -import "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" +import "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" func fillInDiskStatus(status *volume_server_pb.DiskStatus) { return diff --git a/weed/stats/disk_supported.go b/weed/stats/disk_supported.go index 0537828b0..549b2275a 100644 --- a/weed/stats/disk_supported.go +++ b/weed/stats/disk_supported.go @@ -5,7 +5,7 @@ package stats import ( "syscall" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" ) func fillInDiskStatus(disk *volume_server_pb.DiskStatus) { diff --git a/weed/stats/memory.go b/weed/stats/memory.go index c671efc4d..04531604e 100644 --- a/weed/stats/memory.go +++ b/weed/stats/memory.go @@ -3,7 +3,7 @@ package stats import ( "runtime" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" ) func MemStat() *volume_server_pb.MemStatus { diff --git a/weed/stats/memory_notsupported.go b/weed/stats/memory_notsupported.go index 2bed95266..865b43521 100644 --- a/weed/stats/memory_notsupported.go +++ b/weed/stats/memory_notsupported.go @@ -2,7 +2,7 @@ package stats -import "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" +import "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" func fillInMemStatus(status *volume_server_pb.MemStatus) { return diff --git a/weed/stats/memory_supported.go b/weed/stats/memory_supported.go index 91fdd005b..71ee28c12 100644 --- a/weed/stats/memory_supported.go +++ b/weed/stats/memory_supported.go @@ -5,7 +5,7 @@ package stats import ( "syscall" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" ) func fillInMemStatus(mem *volume_server_pb.MemStatus) { diff --git a/weed/stats/metrics.go b/weed/stats/metrics.go index a9624cd86..e079614e5 100644 --- a/weed/stats/metrics.go +++ b/weed/stats/metrics.go @@ -5,7 +5,7 @@ import ( "os" "time" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/push" ) diff --git a/weed/storage/disk_location.go b/weed/storage/disk_location.go index e61623fc7..a1104ed8e 100644 --- a/weed/storage/disk_location.go +++ b/weed/storage/disk_location.go @@ -8,9 +8,9 @@ import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) type DiskLocation struct { @@ -60,7 +60,7 @@ func (l *DiskLocation) loadExistingVolume(fileInfo os.FileInfo, needleMapKind Ne _, found := l.volumes[vid] l.RUnlock() if !found { - if v, e := NewVolume(l.Directory, collection, vid, needleMapKind, nil, nil, 0); e == nil { + if v, e := NewVolume(l.Directory, collection, vid, needleMapKind, nil, nil, 0, false); e == nil { l.Lock() l.volumes[vid] = v l.Unlock() diff --git a/weed/storage/disk_location_ec.go b/weed/storage/disk_location_ec.go index ba0824c6d..4e7eeedfa 100644 --- a/weed/storage/disk_location_ec.go +++ b/weed/storage/disk_location_ec.go @@ -8,8 +8,8 @@ import ( "sort" "strconv" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) var ( diff --git a/weed/storage/erasure_coding/ec_encoder.go b/weed/storage/erasure_coding/ec_encoder.go index 97010a1ed..7a979ecad 100644 --- a/weed/storage/erasure_coding/ec_encoder.go +++ b/weed/storage/erasure_coding/ec_encoder.go @@ -5,11 +5,11 @@ import ( "io" "os" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/idx" - "github.com/chrislusf/seaweedfs/weed/storage/needle_map" - "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/idx" + "github.com/joeslay/seaweedfs/weed/storage/needle_map" + "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" "github.com/klauspost/reedsolomon" ) diff --git a/weed/storage/erasure_coding/ec_shard.go b/weed/storage/erasure_coding/ec_shard.go index 47e6d3d1e..60c0a5794 100644 --- a/weed/storage/erasure_coding/ec_shard.go +++ b/weed/storage/erasure_coding/ec_shard.go @@ -6,8 +6,8 @@ import ( "path" "strconv" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) type ShardId uint8 diff --git a/weed/storage/erasure_coding/ec_test.go b/weed/storage/erasure_coding/ec_test.go index 57df09525..ba0a4306c 100644 --- a/weed/storage/erasure_coding/ec_test.go +++ b/weed/storage/erasure_coding/ec_test.go @@ -7,8 +7,8 @@ import ( "os" "testing" - "github.com/chrislusf/seaweedfs/weed/storage/needle_map" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/storage/needle_map" + "github.com/joeslay/seaweedfs/weed/storage/types" "github.com/klauspost/reedsolomon" ) diff --git a/weed/storage/erasure_coding/ec_volume.go b/weed/storage/erasure_coding/ec_volume.go index bcae164ca..00cd18e29 100644 --- a/weed/storage/erasure_coding/ec_volume.go +++ b/weed/storage/erasure_coding/ec_volume.go @@ -9,10 +9,10 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/idx" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/idx" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" ) var ( diff --git a/weed/storage/erasure_coding/ec_volume_delete.go b/weed/storage/erasure_coding/ec_volume_delete.go index 04102ec9e..71c00a44c 100644 --- a/weed/storage/erasure_coding/ec_volume_delete.go +++ b/weed/storage/erasure_coding/ec_volume_delete.go @@ -5,8 +5,8 @@ import ( "io" "os" - "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" ) var ( diff --git a/weed/storage/erasure_coding/ec_volume_info.go b/weed/storage/erasure_coding/ec_volume_info.go index c9e85c662..b09b8ce92 100644 --- a/weed/storage/erasure_coding/ec_volume_info.go +++ b/weed/storage/erasure_coding/ec_volume_info.go @@ -1,8 +1,8 @@ package erasure_coding import ( - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) // data structure used in master diff --git a/weed/storage/idx/walk.go b/weed/storage/idx/walk.go index 90efb75e6..5677d5622 100644 --- a/weed/storage/idx/walk.go +++ b/weed/storage/idx/walk.go @@ -4,9 +4,9 @@ import ( "io" "os" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" ) // walks through the index file, calls fn function with each key, offset, size diff --git a/weed/storage/memory_map/memory_map.go b/weed/storage/memory_map/memory_map.go new file mode 100644 index 000000000..e8d3de6e0 --- /dev/null +++ b/weed/storage/memory_map/memory_map.go @@ -0,0 +1,42 @@ +// +build !windows + +package memory_map + +import ( + "fmt" + "os" +) + +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) + +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() { + +} diff --git a/weed/storage/memory_map/memory_map_windows.go b/weed/storage/memory_map/memory_map_windows.go new file mode 100644 index 000000000..055aeacc5 --- /dev/null +++ b/weed/storage/memory_map/memory_map_windows.go @@ -0,0 +1,222 @@ +// +build windows + +package memory_map + +import ( + "os" + "reflect" + "syscall" + "unsafe" + + "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 DWORD = uint32 +type WORD = uint16 + +var ( + procGetSystemInfo = syscall.NewLazyDLL("kernel32.dll").NewProc("GetSystemInfo") +) + +var system_info, err = getSystemInfo() + +var chunk_size = uint64(system_info.dwAllocationGranularity) * 512 + +func (mMap *MemoryMap) CreateMemoryMap(file *os.File, maxlength uint64) { + + maxlength_high := uint32(maxlength >> 32) + maxlength_low := uint32(maxlength & 0xFFFFFFFF) + file_memory_map_handle, err := windows.CreateFileMapping(windows.Handle(file.Fd()), nil, windows.PAGE_READWRITE, maxlength_high, maxlength_low, nil) + + if err == nil { + mMap.File = file + mMap.file_memory_map_handle = uintptr(file_memory_map_handle) + mMap.write_map_views = make([]MemoryBuffer, 0, maxlength/chunk_size) + mMap.max_length = maxlength + mMap.End_of_file = -1 + } +} + +func (mMap *MemoryMap) DeleteFileAndMemoryMap() { + windows.CloseHandle(windows.Handle(mMap.file_memory_map_handle)) + windows.CloseHandle(windows.Handle(mMap.File.Fd())) + + for _, view := range mMap.write_map_views { + view.ReleaseMemory() + } + + mMap.write_map_views = nil + mMap.max_length = 0 +} + +func min(x, y uint64) uint64 { + if x < y { + return x + } + return y +} + +func (mMap *MemoryMap) WriteMemory(offset uint64, length uint64, data []byte) { + + for { + if ((offset+length)/chunk_size)+1 > uint64(len(mMap.write_map_views)) { + allocateChunk(mMap) + } else { + break + } + } + + remaining_length := length + slice_index := offset / chunk_size + slice_offset := offset - (slice_index * chunk_size) + data_offset := uint64(0) + + for { + write_end := min((remaining_length + slice_offset), chunk_size) + copy(mMap.write_map_views[slice_index].Buffer[slice_offset:write_end], data[data_offset:]) + remaining_length -= (write_end - slice_offset) + data_offset += (write_end - slice_offset) + + if remaining_length > 0 { + slice_index += 1 + slice_offset = 0 + } else { + break + } + } + + if mMap.End_of_file < int64(offset+length-1) { + mMap.End_of_file = int64(offset + length - 1) + } +} + +func (mMap *MemoryMap) ReadMemory(offset uint64, length uint64) (MemoryBuffer, error) { + return allocate(windows.Handle(mMap.file_memory_map_handle), offset, length, false) +} + +func (mem_buffer *MemoryBuffer) ReleaseMemory() { + windows.UnmapViewOfFile(mem_buffer.aligned_ptr) + + mem_buffer.ptr = 0 + mem_buffer.aligned_ptr = 0 + mem_buffer.length = 0 + mem_buffer.aligned_length = 0 + mem_buffer.Buffer = nil +} + +func allocateChunk(mMap *MemoryMap) { + + start := uint64(len(mMap.write_map_views)) * chunk_size + mem_buffer, err := allocate(windows.Handle(mMap.file_memory_map_handle), start, chunk_size, true) + + if err == nil { + mMap.write_map_views = append(mMap.write_map_views, mem_buffer) + } +} + +func allocate(hMapFile windows.Handle, offset uint64, length uint64, write bool) (MemoryBuffer, error) { + + mem_buffer := MemoryBuffer{} + + dwSysGran := system_info.dwAllocationGranularity + + start := (offset / uint64(dwSysGran)) * uint64(dwSysGran) + diff := offset - start + aligned_length := diff + length + + offset_high := uint32(start >> 32) + offset_low := uint32(start & 0xFFFFFFFF) + + access := windows.FILE_MAP_READ + + if write { + access = windows.FILE_MAP_WRITE + } + + addr_ptr, errno := windows.MapViewOfFile(hMapFile, + uint32(access), // read/write permission + offset_high, + offset_low, + uintptr(aligned_length)) + + if addr_ptr == 0 { + return mem_buffer, errno + } + + mem_buffer.aligned_ptr = addr_ptr + mem_buffer.aligned_length = aligned_length + mem_buffer.ptr = addr_ptr + uintptr(diff) + mem_buffer.length = length + + slice_header := (*reflect.SliceHeader)(unsafe.Pointer(&mem_buffer.Buffer)) + slice_header.Data = addr_ptr + uintptr(diff) + slice_header.Len = int(length) + slice_header.Cap = int(length) + + return mem_buffer, nil +} + +// typedef struct _SYSTEM_INFO { +// union { +// DWORD dwOemId; +// struct { +// WORD wProcessorArchitecture; +// WORD wReserved; +// }; +// }; +// DWORD dwPageSize; +// LPVOID lpMinimumApplicationAddress; +// LPVOID lpMaximumApplicationAddress; +// DWORD_PTR dwActiveProcessorMask; +// DWORD dwNumberOfProcessors; +// DWORD dwProcessorType; +// DWORD dwAllocationGranularity; +// WORD wProcessorLevel; +// WORD wProcessorRevision; +// } SYSTEM_INFO; +// https://msdn.microsoft.com/en-us/library/ms724958(v=vs.85).aspx +type _SYSTEM_INFO struct { + dwOemId DWORD + dwPageSize DWORD + lpMinimumApplicationAddress uintptr + lpMaximumApplicationAddress uintptr + dwActiveProcessorMask uintptr + dwNumberOfProcessors DWORD + dwProcessorType DWORD + dwAllocationGranularity DWORD + wProcessorLevel WORD + wProcessorRevision WORD +} + +// void WINAPI GetSystemInfo( +// _Out_ LPSYSTEM_INFO lpSystemInfo +// ); +// https://msdn.microsoft.com/en-us/library/ms724381(VS.85).aspx +func getSystemInfo() (_SYSTEM_INFO, error) { + var si _SYSTEM_INFO + _, _, err := procGetSystemInfo.Call( + uintptr(unsafe.Pointer(&si)), + ) + if err != syscall.Errno(0) { + return si, err + } + return si, nil +} diff --git a/weed/storage/needle/crc.go b/weed/storage/needle/crc.go index 00ea1db69..9d3d31963 100644 --- a/weed/storage/needle/crc.go +++ b/weed/storage/needle/crc.go @@ -4,7 +4,7 @@ import ( "crypto/md5" "fmt" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/util" "github.com/klauspost/crc32" ) diff --git a/weed/storage/needle/file_id.go b/weed/storage/needle/file_id.go index 5dabb0f25..3aaba7fbf 100644 --- a/weed/storage/needle/file_id.go +++ b/weed/storage/needle/file_id.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + . "github.com/joeslay/seaweedfs/weed/storage/types" ) type FileId struct { diff --git a/weed/storage/needle/file_id_test.go b/weed/storage/needle/file_id_test.go index a1a2c61fc..f21bc5c28 100644 --- a/weed/storage/needle/file_id_test.go +++ b/weed/storage/needle/file_id_test.go @@ -1,7 +1,7 @@ package needle import ( - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/storage/types" "testing" ) diff --git a/weed/storage/needle/needle.go b/weed/storage/needle/needle.go index 2f03ba87b..7c841d037 100644 --- a/weed/storage/needle/needle.go +++ b/weed/storage/needle/needle.go @@ -10,8 +10,8 @@ import ( "io/ioutil" - "github.com/chrislusf/seaweedfs/weed/images" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/images" + . "github.com/joeslay/seaweedfs/weed/storage/types" ) const ( diff --git a/weed/storage/needle/needle_parse_multipart.go b/weed/storage/needle/needle_parse_multipart.go index 8be1a1da4..993ae7178 100644 --- a/weed/storage/needle/needle_parse_multipart.go +++ b/weed/storage/needle/needle_parse_multipart.go @@ -1,8 +1,8 @@ package needle import ( - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/util" "io" "io/ioutil" diff --git a/weed/storage/needle/needle_read_write.go b/weed/storage/needle/needle_read_write.go index 75aefdf16..23a192543 100644 --- a/weed/storage/needle/needle_read_write.go +++ b/weed/storage/needle/needle_read_write.go @@ -8,9 +8,10 @@ import ( "math" - "github.com/chrislusf/seaweedfs/weed/glog" - . "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/memory_map" + . "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" ) const ( @@ -29,39 +30,25 @@ func (n *Needle) DiskSize(version Version) int64 { return GetActualSize(n.Size, version) } -func (n *Needle) Append(w *os.File, version Version) (offset uint64, size uint32, actualSize int64, err error) { - if end, e := w.Seek(0, io.SeekEnd); e == nil { - defer func(w *os.File, off int64) { - if err != nil { - if te := w.Truncate(end); te != nil { - glog.V(0).Infof("Failed to truncate %s back to %d with error: %v", w.Name(), end, te) - } - } - }(w, end) - offset = uint64(end) - } else { - err = fmt.Errorf("Cannot Read Current Volume Position: %v", e) - return - } +func (n *Needle) prepareWriteBuffer(version Version) ([]byte, uint32, int64, error) { + + writeBytes := make([]byte, 0) + switch version { case Version1: header := make([]byte, NeedleHeaderSize) CookieToBytes(header[0:CookieSize], n.Cookie) NeedleIdToBytes(header[CookieSize:CookieSize+NeedleIdSize], n.Id) n.Size = uint32(len(n.Data)) - size = n.Size util.Uint32toBytes(header[CookieSize+NeedleIdSize:CookieSize+NeedleIdSize+SizeSize], n.Size) - if _, err = w.Write(header); err != nil { - return - } - if _, err = w.Write(n.Data); err != nil { - return - } - actualSize = NeedleHeaderSize + int64(n.Size) + size := n.Size + actualSize := NeedleHeaderSize + int64(n.Size) + writeBytes = append(writeBytes, header...) + writeBytes = append(writeBytes, n.Data...) padding := PaddingLength(n.Size, version) util.Uint32toBytes(header[0:NeedleChecksumSize], n.Checksum.Value()) - _, err = w.Write(header[0 : NeedleChecksumSize+padding]) - return + writeBytes = append(writeBytes, header[0:NeedleChecksumSize+padding]...) + return writeBytes, size, actualSize, nil case Version2, Version3: header := make([]byte, NeedleHeaderSize+TimestampSize) // adding timestamp to reuse it and avoid extra allocation CookieToBytes(header[0:CookieSize], n.Cookie) @@ -92,82 +79,103 @@ func (n *Needle) Append(w *os.File, version Version) (offset uint64, size uint32 } else { n.Size = 0 } - size = n.DataSize util.Uint32toBytes(header[CookieSize+NeedleIdSize:CookieSize+NeedleIdSize+SizeSize], n.Size) - if _, err = w.Write(header[0:NeedleHeaderSize]); err != nil { - return - } + writeBytes = append(writeBytes, header[0:NeedleHeaderSize]...) if n.DataSize > 0 { util.Uint32toBytes(header[0:4], n.DataSize) - if _, err = w.Write(header[0:4]); err != nil { - return - } - if _, err = w.Write(n.Data); err != nil { - return - } + writeBytes = append(writeBytes, header[0:4]...) + writeBytes = append(writeBytes, n.Data...) util.Uint8toBytes(header[0:1], n.Flags) - if _, err = w.Write(header[0:1]); err != nil { - return - } + writeBytes = append(writeBytes, header[0:1]...) if n.HasName() { util.Uint8toBytes(header[0:1], n.NameSize) - if _, err = w.Write(header[0:1]); err != nil { - return - } - if _, err = w.Write(n.Name[:n.NameSize]); err != nil { - return - } + writeBytes = append(writeBytes, header[0:1]...) + writeBytes = append(writeBytes, n.Name[:n.NameSize]...) } if n.HasMime() { util.Uint8toBytes(header[0:1], n.MimeSize) - if _, err = w.Write(header[0:1]); err != nil { - return - } - if _, err = w.Write(n.Mime); err != nil { - return - } + writeBytes = append(writeBytes, header[0:1]...) + writeBytes = append(writeBytes, n.Mime...) } if n.HasLastModifiedDate() { util.Uint64toBytes(header[0:8], n.LastModified) - if _, err = w.Write(header[8-LastModifiedBytesLength : 8]); err != nil { - return - } + writeBytes = append(writeBytes, header[8-LastModifiedBytesLength:8]...) } if n.HasTtl() && n.Ttl != nil { n.Ttl.ToBytes(header[0:TtlBytesLength]) - if _, err = w.Write(header[0:TtlBytesLength]); err != nil { - return - } + writeBytes = append(writeBytes, header[0:TtlBytesLength]...) } if n.HasPairs() { util.Uint16toBytes(header[0:2], n.PairsSize) - if _, err = w.Write(header[0:2]); err != nil { - return - } - if _, err = w.Write(n.Pairs); err != nil { - return - } + writeBytes = append(writeBytes, header[0:2]...) + writeBytes = append(writeBytes, n.Pairs...) } } padding := PaddingLength(n.Size, version) util.Uint32toBytes(header[0:NeedleChecksumSize], n.Checksum.Value()) if version == Version2 { - _, err = w.Write(header[0 : NeedleChecksumSize+padding]) + writeBytes = append(writeBytes, header[0:NeedleChecksumSize+padding]...) } else { // version3 util.Uint64toBytes(header[NeedleChecksumSize:NeedleChecksumSize+TimestampSize], n.AppendAtNs) - _, err = w.Write(header[0 : NeedleChecksumSize+TimestampSize+padding]) + writeBytes = append(writeBytes, header[0:NeedleChecksumSize+TimestampSize+padding]...) } - return offset, n.DataSize, GetActualSize(n.Size, version), err + return writeBytes, n.DataSize, GetActualSize(n.Size, version), nil } - return 0, 0, 0, fmt.Errorf("Unsupported Version! (%d)", version) + + return writeBytes, 0, 0, fmt.Errorf("Unsupported Version! (%d)", version) +} + +func (n *Needle) Append(w *os.File, version Version) (offset uint64, size uint32, actualSize int64, err error) { + + mMap, exists := memory_map.FileMemoryMap[w.Name()] + if !exists { + if end, e := w.Seek(0, io.SeekEnd); e == nil { + defer func(w *os.File, off int64) { + if err != nil { + if te := w.Truncate(end); te != nil { + glog.V(0).Infof("Failed to truncate %s back to %d with error: %v", w.Name(), end, te) + } + } + }(w, end) + offset = uint64(end) + } else { + err = fmt.Errorf("Cannot Read Current Volume Position: %v", e) + return + } + } else { + offset = uint64(mMap.End_of_file + 1) + } + + bytesToWrite, size, actualSize, err := n.prepareWriteBuffer(version) + + if err == nil { + if exists { + mMap.WriteMemory(offset, uint64(len(bytesToWrite)), bytesToWrite) + } else { + _, err = w.Write(bytesToWrite) + } + } + + return offset, size, actualSize, err } func ReadNeedleBlob(r *os.File, offset int64, size uint32, version Version) (dataSlice []byte, err error) { - dataSlice = make([]byte, int(GetActualSize(size, version))) - _, err = r.ReadAt(dataSlice, offset) - return dataSlice, err + + dataSize := GetActualSize(size, version) + dataSlice = make([]byte, dataSize) + + mMap, exists := memory_map.FileMemoryMap[r.Name()] + if exists { + mBuffer, err := mMap.ReadMemory(uint64(offset), uint64(dataSize)) + copy(dataSlice, mBuffer.Buffer) + mBuffer.ReleaseMemory() + return dataSlice, err + } else { + _, err = r.ReadAt(dataSlice, offset) + return dataSlice, err + } } // ReadBytes hydrates the needle from the bytes buffer, with only n.Id is set. @@ -280,14 +288,27 @@ func ReadNeedleHeader(r *os.File, version Version, offset int64) (n *Needle, byt n = new(Needle) if version == Version1 || version == Version2 || version == Version3 { bytes = make([]byte, NeedleHeaderSize) - var count int - count, err = r.ReadAt(bytes, offset) - if count <= 0 || err != nil { - return nil, bytes, 0, err + + mMap, exists := memory_map.FileMemoryMap[r.Name()] + if exists { + mem_buffer, err := mMap.ReadMemory(uint64(offset), NeedleHeaderSize) + copy(bytes, mem_buffer.Buffer) + mem_buffer.ReleaseMemory() + + if err != nil { + return nil, bytes, 0, err + } + } else { + var count int + count, err = r.ReadAt(bytes, offset) + if count <= 0 || err != nil { + return nil, bytes, 0, err + } } n.ParseNeedleHeader(bytes) bodyLength = NeedleBodyLength(n.Size, version) } + return } diff --git a/weed/storage/needle/needle_read_write_test.go b/weed/storage/needle/needle_read_write_test.go index 4c507f9e6..c63662e5f 100644 --- a/weed/storage/needle/needle_read_write_test.go +++ b/weed/storage/needle/needle_read_write_test.go @@ -5,7 +5,7 @@ import ( "os" "testing" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/storage/types" ) func TestAppend(t *testing.T) { diff --git a/weed/storage/needle/needle_test.go b/weed/storage/needle/needle_test.go index 0f2dde98e..a1aeddd27 100644 --- a/weed/storage/needle/needle_test.go +++ b/weed/storage/needle/needle_test.go @@ -3,7 +3,7 @@ package needle import ( "testing" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/storage/types" ) func TestParseKeyHash(t *testing.T) { diff --git a/weed/storage/needle_map.go b/weed/storage/needle_map.go index 876839be1..f2ff9bb76 100644 --- a/weed/storage/needle_map.go +++ b/weed/storage/needle_map.go @@ -6,8 +6,8 @@ import ( "os" "sync" - "github.com/chrislusf/seaweedfs/weed/storage/needle_map" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/storage/needle_map" + . "github.com/joeslay/seaweedfs/weed/storage/types" ) type NeedleMapType int diff --git a/weed/storage/needle_map/btree_map.go b/weed/storage/needle_map/btree_map.go index a26c5e068..01a7ee5e0 100644 --- a/weed/storage/needle_map/btree_map.go +++ b/weed/storage/needle_map/btree_map.go @@ -1,7 +1,7 @@ package needle_map import ( - . "github.com/chrislusf/seaweedfs/weed/storage/types" + . "github.com/joeslay/seaweedfs/weed/storage/types" "github.com/google/btree" ) diff --git a/weed/storage/needle_map/compact_map.go b/weed/storage/needle_map/compact_map.go index 76783d0b0..da613124a 100644 --- a/weed/storage/needle_map/compact_map.go +++ b/weed/storage/needle_map/compact_map.go @@ -4,7 +4,7 @@ import ( "sort" "sync" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + . "github.com/joeslay/seaweedfs/weed/storage/types" ) const ( diff --git a/weed/storage/needle_map/compact_map_perf_test.go b/weed/storage/needle_map/compact_map_perf_test.go index 3a3648641..8d1fa0fcf 100644 --- a/weed/storage/needle_map/compact_map_perf_test.go +++ b/weed/storage/needle_map/compact_map_perf_test.go @@ -8,8 +8,8 @@ import ( "testing" "time" - . "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + . "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" ) /* diff --git a/weed/storage/needle_map/compact_map_test.go b/weed/storage/needle_map/compact_map_test.go index 3bad85727..43761008c 100644 --- a/weed/storage/needle_map/compact_map_test.go +++ b/weed/storage/needle_map/compact_map_test.go @@ -2,7 +2,7 @@ package needle_map import ( "fmt" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + . "github.com/joeslay/seaweedfs/weed/storage/types" "testing" ) diff --git a/weed/storage/needle_map/needle_value.go b/weed/storage/needle_map/needle_value.go index ef540b55e..fc54663bb 100644 --- a/weed/storage/needle_map/needle_value.go +++ b/weed/storage/needle_map/needle_value.go @@ -1,8 +1,8 @@ package needle_map import ( - . "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + . "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" "github.com/google/btree" ) diff --git a/weed/storage/needle_map/needle_value_map.go b/weed/storage/needle_map/needle_value_map.go index 0a5a00ef7..e0afb355c 100644 --- a/weed/storage/needle_map/needle_value_map.go +++ b/weed/storage/needle_map/needle_value_map.go @@ -1,7 +1,7 @@ package needle_map import ( - . "github.com/chrislusf/seaweedfs/weed/storage/types" + . "github.com/joeslay/seaweedfs/weed/storage/types" ) type NeedleValueMap interface { diff --git a/weed/storage/needle_map_leveldb.go b/weed/storage/needle_map_leveldb.go index ef8571e83..7eec4e349 100644 --- a/weed/storage/needle_map_leveldb.go +++ b/weed/storage/needle_map_leveldb.go @@ -5,13 +5,13 @@ import ( "os" "path/filepath" - "github.com/chrislusf/seaweedfs/weed/storage/idx" + "github.com/joeslay/seaweedfs/weed/storage/idx" "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/needle_map" - . "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/needle_map" + . "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" "github.com/syndtr/goleveldb/leveldb" ) diff --git a/weed/storage/needle_map_memory.go b/weed/storage/needle_map_memory.go index ee639a7e6..84ff51a33 100644 --- a/weed/storage/needle_map_memory.go +++ b/weed/storage/needle_map_memory.go @@ -3,10 +3,10 @@ package storage import ( "os" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/idx" - "github.com/chrislusf/seaweedfs/weed/storage/needle_map" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/idx" + "github.com/joeslay/seaweedfs/weed/storage/needle_map" + . "github.com/joeslay/seaweedfs/weed/storage/types" ) type NeedleMap struct { diff --git a/weed/storage/needle_map_metric.go b/weed/storage/needle_map_metric.go index 823a04108..e22a5b5ca 100644 --- a/weed/storage/needle_map_metric.go +++ b/weed/storage/needle_map_metric.go @@ -5,8 +5,8 @@ import ( "os" "sync/atomic" - "github.com/chrislusf/seaweedfs/weed/storage/idx" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/storage/idx" + . "github.com/joeslay/seaweedfs/weed/storage/types" "github.com/willf/bloom" ) diff --git a/weed/storage/needle_map_metric_test.go b/weed/storage/needle_map_metric_test.go index 539f83a87..9b946036f 100644 --- a/weed/storage/needle_map_metric_test.go +++ b/weed/storage/needle_map_metric_test.go @@ -1,8 +1,8 @@ package storage import ( - "github.com/chrislusf/seaweedfs/weed/glog" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + . "github.com/joeslay/seaweedfs/weed/storage/types" "io/ioutil" "math/rand" "testing" diff --git a/weed/storage/store.go b/weed/storage/store.go index f0dc90790..89b92f229 100644 --- a/weed/storage/store.go +++ b/weed/storage/store.go @@ -4,11 +4,11 @@ import ( "fmt" "sync/atomic" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/needle" + . "github.com/joeslay/seaweedfs/weed/storage/types" "google.golang.org/grpc" ) @@ -59,7 +59,7 @@ func NewStore(grpcDialOption grpc.DialOption, port int, ip, publicUrl string, di return } -func (s *Store) AddVolume(volumeId needle.VolumeId, collection string, needleMapKind NeedleMapType, replicaPlacement string, ttlString string, preallocate int64) error { +func (s *Store) AddVolume(volumeId needle.VolumeId, collection string, needleMapKind NeedleMapType, replicaPlacement string, ttlString string, preallocate int64, memoryMapped bool) error { rt, e := NewReplicaPlacementFromString(replicaPlacement) if e != nil { return e @@ -68,7 +68,7 @@ func (s *Store) AddVolume(volumeId needle.VolumeId, collection string, needleMap if e != nil { return e } - e = s.addVolume(volumeId, collection, needleMapKind, rt, ttl, preallocate) + e = s.addVolume(volumeId, collection, needleMapKind, rt, ttl, preallocate, memoryMapped) return e } func (s *Store) DeleteCollection(collection string) (e error) { @@ -101,14 +101,14 @@ func (s *Store) FindFreeLocation() (ret *DiskLocation) { } return ret } -func (s *Store) addVolume(vid needle.VolumeId, collection string, needleMapKind NeedleMapType, replicaPlacement *ReplicaPlacement, ttl *needle.TTL, preallocate int64) error { +func (s *Store) addVolume(vid needle.VolumeId, collection string, needleMapKind NeedleMapType, replicaPlacement *ReplicaPlacement, ttl *needle.TTL, preallocate int64, memoryMapped bool) error { if s.findVolume(vid) != nil { return fmt.Errorf("Volume Id %d already exists!", vid) } if location := s.FindFreeLocation(); location != nil { glog.V(0).Infof("In dir %s adds volume:%v collection:%s replicaPlacement:%v ttl:%v", location.Directory, vid, collection, replicaPlacement, ttl) - if volume, err := NewVolume(location.Directory, collection, vid, needleMapKind, replicaPlacement, ttl, preallocate); err == nil { + if volume, err := NewVolume(location.Directory, collection, vid, needleMapKind, replicaPlacement, ttl, preallocate, memoryMapped); err == nil { location.SetVolume(vid, volume) glog.V(0).Infof("add volume %d", vid) s.NewVolumesChan <- master_pb.VolumeShortInformationMessage{ diff --git a/weed/storage/store_ec.go b/weed/storage/store_ec.go index 8271324cf..570f00713 100644 --- a/weed/storage/store_ec.go +++ b/weed/storage/store_ec.go @@ -8,14 +8,14 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" "github.com/klauspost/reedsolomon" ) diff --git a/weed/storage/store_ec_delete.go b/weed/storage/store_ec_delete.go index e027d2887..c1e582668 100644 --- a/weed/storage/store_ec_delete.go +++ b/weed/storage/store_ec_delete.go @@ -4,12 +4,12 @@ import ( "context" "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" ) func (s *Store) DeleteEcShardNeedle(ctx context.Context, ecVolume *erasure_coding.EcVolume, n *needle.Needle, cookie types.Cookie) (int64, error) { diff --git a/weed/storage/store_vacuum.go b/weed/storage/store_vacuum.go index b1f1a6277..6acf5b10e 100644 --- a/weed/storage/store_vacuum.go +++ b/weed/storage/store_vacuum.go @@ -3,8 +3,8 @@ package storage import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (s *Store) CheckCompactVolume(volumeId needle.VolumeId) (float64, error) { diff --git a/weed/storage/types/needle_id_type.go b/weed/storage/types/needle_id_type.go index 32a296613..556e1b9d2 100644 --- a/weed/storage/types/needle_id_type.go +++ b/weed/storage/types/needle_id_type.go @@ -2,7 +2,7 @@ package types import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/util" "strconv" ) diff --git a/weed/storage/types/needle_types.go b/weed/storage/types/needle_types.go index 2ebb392db..b493af27e 100644 --- a/weed/storage/types/needle_types.go +++ b/weed/storage/types/needle_types.go @@ -2,7 +2,7 @@ package types import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/util" "math" "strconv" ) diff --git a/weed/storage/volume.go b/weed/storage/volume.go index a2e34bd04..efe0328cd 100644 --- a/weed/storage/volume.go +++ b/weed/storage/volume.go @@ -3,10 +3,10 @@ package storage import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" "os" "path" @@ -14,7 +14,7 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) type Volume struct { @@ -25,6 +25,7 @@ type Volume struct { nm NeedleMapper needleMapKind NeedleMapType readOnly bool + MemoryMapped bool SuperBlock @@ -38,9 +39,9 @@ type Volume struct { isCompacting bool } -func NewVolume(dirname string, collection string, id needle.VolumeId, needleMapKind NeedleMapType, replicaPlacement *ReplicaPlacement, ttl *needle.TTL, preallocate int64) (v *Volume, e error) { +func NewVolume(dirname string, collection string, id needle.VolumeId, needleMapKind NeedleMapType, replicaPlacement *ReplicaPlacement, ttl *needle.TTL, preallocate int64, memoryMapped bool) (v *Volume, e error) { // if replicaPlacement is nil, the superblock will be loaded from disk - v = &Volume{dir: dirname, Collection: collection, Id: id} + v = &Volume{dir: dirname, Collection: collection, Id: id, MemoryMapped: memoryMapped} v.SuperBlock = SuperBlock{ReplicaPlacement: replicaPlacement, Ttl: ttl} v.needleMapKind = needleMapKind e = v.load(true, true, needleMapKind, preallocate) diff --git a/weed/storage/volume_backup.go b/weed/storage/volume_backup.go index 86d13da7a..c9445881c 100644 --- a/weed/storage/volume_backup.go +++ b/weed/storage/volume_backup.go @@ -6,11 +6,11 @@ import ( "io" "os" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/idx" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/idx" + "github.com/joeslay/seaweedfs/weed/storage/needle" + . "github.com/joeslay/seaweedfs/weed/storage/types" "google.golang.org/grpc" ) diff --git a/weed/storage/volume_checking.go b/weed/storage/volume_checking.go index 8f930546f..0f26bd103 100644 --- a/weed/storage/volume_checking.go +++ b/weed/storage/volume_checking.go @@ -4,10 +4,10 @@ import ( "fmt" "os" - "github.com/chrislusf/seaweedfs/weed/storage/idx" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - . "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/storage/idx" + "github.com/joeslay/seaweedfs/weed/storage/needle" + . "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" ) func CheckVolumeDataIntegrity(v *Volume, indexFile *os.File) (lastAppendAtNs uint64, e error) { diff --git a/weed/storage/volume_create.go b/weed/storage/volume_create.go index 76231c533..a3d889de2 100644 --- a/weed/storage/volume_create.go +++ b/weed/storage/volume_create.go @@ -1,14 +1,14 @@ -// +build !linux +// +build !linux, !windows package storage import ( "os" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) -func createVolumeFile(fileName string, preallocate int64) (file *os.File, e error) { +func createVolumeFile(fileName string, preallocate int64, useMemoryMap bool) (*os.File, error) { file, e = os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) if preallocate > 0 { glog.V(0).Infof("Preallocated disk space for %s is not supported", fileName) diff --git a/weed/storage/volume_create_linux.go b/weed/storage/volume_create_linux.go index 355392c88..47c00fc66 100644 --- a/weed/storage/volume_create_linux.go +++ b/weed/storage/volume_create_linux.go @@ -6,10 +6,10 @@ import ( "os" "syscall" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) -func createVolumeFile(fileName string, preallocate int64) (file *os.File, e error) { +func createVolumeFile(fileName string, preallocate int64, useMemoryMap bool) (file *os.File, e error) { file, e = os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) if preallocate != 0 { syscall.Fallocate(int(file.Fd()), 1, 0, preallocate) diff --git a/weed/storage/volume_create_windows.go b/weed/storage/volume_create_windows.go new file mode 100644 index 000000000..494b13728 --- /dev/null +++ b/weed/storage/volume_create_windows.go @@ -0,0 +1,34 @@ +// +build windows + +package storage + +import ( + "os" + + "github.com/joeslay/seaweedfs/weed/storage/memory_map" + "golang.org/x/sys/windows" + + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/os_overloads" +) + +func createVolumeFile(fileName string, preallocate int64, useMemoryMap bool) (*os.File, error) { + + mMap, exists := memory_map.FileMemoryMap[fileName] + if !exists { + file, e := os_overloads.OpenFile(fileName, windows.O_RDWR|windows.O_CREAT, 0644, useMemoryMap) + if useMemoryMap { + memory_map.FileMemoryMap[fileName] = new(memory_map.MemoryMap) + + new_mMap := memory_map.FileMemoryMap[fileName] + new_mMap.CreateMemoryMap(file, 1024*1024*1024*2) + } + + if preallocate > 0 { + glog.V(0).Infof("Preallocated disk space for %s is not supported", fileName) + } + return file, e + } else { + return mMap.File, nil + } +} diff --git a/weed/storage/volume_info.go b/weed/storage/volume_info.go index 111058b6e..6990d42b1 100644 --- a/weed/storage/volume_info.go +++ b/weed/storage/volume_info.go @@ -4,8 +4,8 @@ import ( "fmt" "sort" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) type VolumeInfo struct { diff --git a/weed/storage/volume_info_test.go b/weed/storage/volume_info_test.go index 5b1bacb52..9ace2be02 100644 --- a/weed/storage/volume_info_test.go +++ b/weed/storage/volume_info_test.go @@ -3,7 +3,7 @@ package storage import ( "testing" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func TestSortVolumeInfos(t *testing.T) { diff --git a/weed/storage/volume_loading.go b/weed/storage/volume_loading.go index 0b6021ca8..bdf9984e5 100644 --- a/weed/storage/volume_loading.go +++ b/weed/storage/volume_loading.go @@ -5,11 +5,11 @@ import ( "os" "time" - "github.com/chrislusf/seaweedfs/weed/stats" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/storage/needle" "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) func loadVolumeWithoutIndex(dirname string, collection string, id needle.VolumeId, needleMapKind NeedleMapType) (v *Volume, e error) { @@ -42,7 +42,7 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind } } else { if createDatIfMissing { - v.dataFile, e = createVolumeFile(fileName+".dat", preallocate) + v.dataFile, e = createVolumeFile(fileName+".dat", preallocate, v.MemoryMapped) } else { return fmt.Errorf("Volume Data file %s.dat does not exist.", fileName) } diff --git a/weed/storage/volume_read_write.go b/weed/storage/volume_read_write.go index ae05331a4..78010482d 100644 --- a/weed/storage/volume_read_write.go +++ b/weed/storage/volume_read_write.go @@ -8,9 +8,10 @@ import ( "os" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - . "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/memory_map" + "github.com/joeslay/seaweedfs/weed/storage/needle" + . "github.com/joeslay/seaweedfs/weed/storage/types" ) var ErrorNotFound = errors.New("not found") @@ -48,6 +49,12 @@ func (v *Volume) Destroy() (err error) { err = fmt.Errorf("volume %d is compacting", v.Id) return } + mMap, exists := memory_map.FileMemoryMap[v.dataFile.Name()] + if exists { + mMap.DeleteFileAndMemoryMap() + delete(memory_map.FileMemoryMap, v.dataFile.Name()) + } + v.Close() os.Remove(v.FileName() + ".dat") os.Remove(v.FileName() + ".idx") diff --git a/weed/storage/volume_super_block.go b/weed/storage/volume_super_block.go index 164c887e1..f93c43fbf 100644 --- a/weed/storage/volume_super_block.go +++ b/weed/storage/volume_super_block.go @@ -4,11 +4,13 @@ import ( "fmt" "os" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/storage/memory_map" + "github.com/golang/protobuf/proto" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/util" ) const ( @@ -70,24 +72,34 @@ func (s *SuperBlock) Bytes() []byte { } func (v *Volume) maybeWriteSuperBlock() error { - stat, e := v.dataFile.Stat() - if e != nil { - glog.V(0).Infof("failed to stat datafile %s: %v", v.dataFile.Name(), e) - return e - } - if stat.Size() == 0 { - v.SuperBlock.version = needle.CurrentVersion - _, e = v.dataFile.Write(v.SuperBlock.Bytes()) - if e != nil && os.IsPermission(e) { - //read-only, but zero length - recreate it! - if v.dataFile, e = os.Create(v.dataFile.Name()); e == nil { - if _, e = v.dataFile.Write(v.SuperBlock.Bytes()); e == nil { - v.readOnly = false + + mMap, exists := memory_map.FileMemoryMap[v.dataFile.Name()] + if exists { + if mMap.End_of_file == -1 { + v.SuperBlock.version = needle.CurrentVersion + mMap.WriteMemory(0, uint64(len(v.SuperBlock.Bytes())), v.SuperBlock.Bytes()) + } + return nil + } else { + stat, e := v.dataFile.Stat() + if e != nil { + glog.V(0).Infof("failed to stat datafile %s: %v", v.dataFile.Name(), e) + return e + } + if stat.Size() == 0 { + v.SuperBlock.version = needle.CurrentVersion + _, e = v.dataFile.Write(v.SuperBlock.Bytes()) + if e != nil && os.IsPermission(e) { + //read-only, but zero length - recreate it! + if v.dataFile, e = os.Create(v.dataFile.Name()); e == nil { + if _, e = v.dataFile.Write(v.SuperBlock.Bytes()); e == nil { + v.readOnly = false + } } } } + return e } - return e } func (v *Volume) readSuperBlock() (err error) { @@ -97,15 +109,28 @@ func (v *Volume) readSuperBlock() (err error) { // ReadSuperBlock reads from data file and load it into volume's super block func ReadSuperBlock(dataFile *os.File) (superBlock SuperBlock, err error) { - if _, err = dataFile.Seek(0, 0); err != nil { - err = fmt.Errorf("cannot seek to the beginning of %s: %v", dataFile.Name(), err) - return - } + header := make([]byte, _SuperBlockSize) - if _, e := dataFile.Read(header); e != nil { - err = fmt.Errorf("cannot read volume %s super block: %v", dataFile.Name(), e) - return + mMap, exists := memory_map.FileMemoryMap[dataFile.Name()] + if exists { + mem_buffer, e := mMap.ReadMemory(0, _SuperBlockSize) + if err != nil { + err = fmt.Errorf("cannot read volume %s super block: %v", dataFile.Name(), e) + return + } + copy(header, mem_buffer.Buffer) + mem_buffer.ReleaseMemory() + } else { + if _, err = dataFile.Seek(0, 0); err != nil { + err = fmt.Errorf("cannot seek to the beginning of %s: %v", dataFile.Name(), err) + return + } + if _, e := dataFile.Read(header); e != nil { + err = fmt.Errorf("cannot read volume %s super block: %v", dataFile.Name(), e) + return + } } + superBlock.version = needle.Version(header[0]) if superBlock.ReplicaPlacement, err = NewReplicaPlacementFromByte(header[1]); err != nil { err = fmt.Errorf("cannot read replica type: %s", err.Error()) diff --git a/weed/storage/volume_super_block_test.go b/weed/storage/volume_super_block_test.go index 06ad8a5d3..433eacdff 100644 --- a/weed/storage/volume_super_block_test.go +++ b/weed/storage/volume_super_block_test.go @@ -3,7 +3,7 @@ package storage import ( "testing" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func TestSuperBlockReadWrite(t *testing.T) { diff --git a/weed/storage/volume_vacuum.go b/weed/storage/volume_vacuum.go index c021c4c18..48b3958d5 100644 --- a/weed/storage/volume_vacuum.go +++ b/weed/storage/volume_vacuum.go @@ -5,13 +5,13 @@ import ( "os" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/stats" - idx2 "github.com/chrislusf/seaweedfs/weed/storage/idx" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/needle_map" - . "github.com/chrislusf/seaweedfs/weed/storage/types" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/stats" + idx2 "github.com/joeslay/seaweedfs/weed/storage/idx" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle_map" + . "github.com/joeslay/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/util" ) func (v *Volume) garbageLevel() float64 { @@ -22,85 +22,97 @@ func (v *Volume) garbageLevel() float64 { } func (v *Volume) Compact(preallocate int64, compactionBytePerSecond int64) error { - glog.V(3).Infof("Compacting volume %d ...", v.Id) - //no need to lock for copy on write - //v.accessLock.Lock() - //defer v.accessLock.Unlock() - //glog.V(3).Infof("Got Compaction lock...") - v.isCompacting = true - defer func() { - v.isCompacting = false - }() - - filePath := v.FileName() - v.lastCompactIndexOffset = v.IndexFileSize() - v.lastCompactRevision = v.SuperBlock.CompactionRevision - glog.V(3).Infof("creating copies for volume %d ,last offset %d...", v.Id, v.lastCompactIndexOffset) - return v.copyDataAndGenerateIndexFile(filePath+".cpd", filePath+".cpx", preallocate, compactionBytePerSecond) + + if !v.MemoryMapped { //it makes no sense to compact in memory + glog.V(3).Infof("Compacting volume %d ...", v.Id) + //no need to lock for copy on write + //v.accessLock.Lock() + //defer v.accessLock.Unlock() + //glog.V(3).Infof("Got Compaction lock...") + v.isCompacting = true + defer func() { + v.isCompacting = false + }() + + filePath := v.FileName() + v.lastCompactIndexOffset = v.IndexFileSize() + v.lastCompactRevision = v.SuperBlock.CompactionRevision + glog.V(3).Infof("creating copies for volume %d ,last offset %d...", v.Id, v.lastCompactIndexOffset) + return v.copyDataAndGenerateIndexFile(filePath+".cpd", filePath+".cpx", preallocate, compactionBytePerSecond) + } else { + return nil + } } func (v *Volume) Compact2() error { - glog.V(3).Infof("Compact2 volume %d ...", v.Id) - v.isCompacting = true - defer func() { - v.isCompacting = false - }() + if !v.MemoryMapped { //it makes no sense to compact in memory + glog.V(3).Infof("Compact2 volume %d ...", v.Id) + + v.isCompacting = true + defer func() { + v.isCompacting = false + }() - filePath := v.FileName() - glog.V(3).Infof("creating copies for volume %d ...", v.Id) - return v.copyDataBasedOnIndexFile(filePath+".cpd", filePath+".cpx") + filePath := v.FileName() + glog.V(3).Infof("creating copies for volume %d ...", v.Id) + return v.copyDataBasedOnIndexFile(filePath+".cpd", filePath+".cpx") + } else { + return nil + } } func (v *Volume) CommitCompact() error { - glog.V(0).Infof("Committing volume %d vacuuming...", v.Id) + if !v.MemoryMapped { //it makes no sense to compact in memory + glog.V(0).Infof("Committing volume %d vacuuming...", v.Id) - v.isCompacting = true - defer func() { - v.isCompacting = false - }() + v.isCompacting = true + defer func() { + v.isCompacting = false + }() - v.dataFileAccessLock.Lock() - defer v.dataFileAccessLock.Unlock() + v.dataFileAccessLock.Lock() + defer v.dataFileAccessLock.Unlock() - glog.V(3).Infof("Got volume %d committing lock...", v.Id) - v.nm.Close() - if err := v.dataFile.Close(); err != nil { - glog.V(0).Infof("fail to close volume %d", v.Id) - } - v.dataFile = nil - stats.VolumeServerVolumeCounter.WithLabelValues(v.Collection, "volume").Dec() - - var e error - if e = v.makeupDiff(v.FileName()+".cpd", v.FileName()+".cpx", v.FileName()+".dat", v.FileName()+".idx"); e != nil { - glog.V(0).Infof("makeupDiff in CommitCompact volume %d failed %v", v.Id, e) - e = os.Remove(v.FileName() + ".cpd") - if e != nil { - return e - } - e = os.Remove(v.FileName() + ".cpx") - if e != nil { - return e + glog.V(3).Infof("Got volume %d committing lock...", v.Id) + v.nm.Close() + if err := v.dataFile.Close(); err != nil { + glog.V(0).Infof("fail to close volume %d", v.Id) } - } else { + v.dataFile = nil + stats.VolumeServerVolumeCounter.WithLabelValues(v.Collection, "volume").Dec() + var e error - if e = os.Rename(v.FileName()+".cpd", v.FileName()+".dat"); e != nil { - return fmt.Errorf("rename %s: %v", v.FileName()+".cpd", e) - } - if e = os.Rename(v.FileName()+".cpx", v.FileName()+".idx"); e != nil { - return fmt.Errorf("rename %s: %v", v.FileName()+".cpx", e) + if e = v.makeupDiff(v.FileName()+".cpd", v.FileName()+".cpx", v.FileName()+".dat", v.FileName()+".idx"); e != nil { + glog.V(0).Infof("makeupDiff in CommitCompact volume %d failed %v", v.Id, e) + e = os.Remove(v.FileName() + ".cpd") + if e != nil { + return e + } + e = os.Remove(v.FileName() + ".cpx") + if e != nil { + return e + } + } else { + var e error + if e = os.Rename(v.FileName()+".cpd", v.FileName()+".dat"); e != nil { + return fmt.Errorf("rename %s: %v", v.FileName()+".cpd", e) + } + if e = os.Rename(v.FileName()+".cpx", v.FileName()+".idx"); e != nil { + return fmt.Errorf("rename %s: %v", v.FileName()+".cpx", e) + } } - } - //glog.V(3).Infof("Pretending to be vacuuming...") - //time.Sleep(20 * time.Second) + //glog.V(3).Infof("Pretending to be vacuuming...") + //time.Sleep(20 * time.Second) - os.RemoveAll(v.FileName() + ".ldb") - os.RemoveAll(v.FileName() + ".bdb") + os.RemoveAll(v.FileName() + ".ldb") + os.RemoveAll(v.FileName() + ".bdb") - glog.V(3).Infof("Loading volume %d commit file...", v.Id) - if e = v.load(true, false, v.needleMapKind, 0); e != nil { - return e + glog.V(3).Infof("Loading volume %d commit file...", v.Id) + if e = v.load(true, false, v.needleMapKind, 0); e != nil { + return e + } } return nil } @@ -299,7 +311,7 @@ func (v *Volume) copyDataAndGenerateIndexFile(dstName, idxName string, prealloca var ( dst, idx *os.File ) - if dst, err = createVolumeFile(dstName, preallocate); err != nil { + if dst, err = createVolumeFile(dstName, preallocate, v.MemoryMapped); err != nil { return } defer dst.Close() diff --git a/weed/storage/volume_vacuum_test.go b/weed/storage/volume_vacuum_test.go index 54899c788..3657404ca 100644 --- a/weed/storage/volume_vacuum_test.go +++ b/weed/storage/volume_vacuum_test.go @@ -7,8 +7,8 @@ import ( "testing" "time" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/storage/types" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/types" ) /* @@ -68,7 +68,7 @@ func TestCompaction(t *testing.T) { } defer os.RemoveAll(dir) // clean up - v, err := NewVolume(dir, "", 1, NeedleMapInMemory, &ReplicaPlacement{}, &needle.TTL{}, 0) + v, err := NewVolume(dir, "", 1, NeedleMapInMemory, &ReplicaPlacement{}, &needle.TTL{}, 0, false) if err != nil { t.Fatalf("volume creation: %v", err) } @@ -95,7 +95,7 @@ func TestCompaction(t *testing.T) { v.Close() - v, err = NewVolume(dir, "", 1, NeedleMapInMemory, nil, nil, 0) + v, err = NewVolume(dir, "", 1, NeedleMapInMemory, nil, nil, 0, false) if err != nil { t.Fatalf("volume reloading: %v", err) } diff --git a/weed/topology/allocate_volume.go b/weed/topology/allocate_volume.go index 48336092f..91a67681a 100644 --- a/weed/topology/allocate_volume.go +++ b/weed/topology/allocate_volume.go @@ -3,9 +3,9 @@ package topology import ( "context" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" ) @@ -23,6 +23,7 @@ func AllocateVolume(dn *DataNode, grpcDialOption grpc.DialOption, vid needle.Vol Replication: option.ReplicaPlacement.String(), Ttl: option.Ttl.String(), Preallocate: option.Prealloacte, + InMemory: option.InMemory, }) return deleteErr }) diff --git a/weed/topology/cluster_commands.go b/weed/topology/cluster_commands.go index 152691ccb..a5843d0e5 100644 --- a/weed/topology/cluster_commands.go +++ b/weed/topology/cluster_commands.go @@ -2,8 +2,8 @@ package topology import ( "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) type MaxVolumeIdCommand struct { diff --git a/weed/topology/collection.go b/weed/topology/collection.go index f6b728ec9..c4fd3af61 100644 --- a/weed/topology/collection.go +++ b/weed/topology/collection.go @@ -3,9 +3,9 @@ package topology import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/util" ) type Collection struct { diff --git a/weed/topology/data_center.go b/weed/topology/data_center.go index 640cb1937..b419070f8 100644 --- a/weed/topology/data_center.go +++ b/weed/topology/data_center.go @@ -1,6 +1,6 @@ package topology -import "github.com/chrislusf/seaweedfs/weed/pb/master_pb" +import "github.com/joeslay/seaweedfs/weed/pb/master_pb" type DataCenter struct { NodeImpl diff --git a/weed/topology/data_node.go b/weed/topology/data_node.go index 3e72ccdbf..83e58e075 100644 --- a/weed/topology/data_node.go +++ b/weed/topology/data_node.go @@ -4,14 +4,14 @@ import ( "fmt" "sync" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" "strconv" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage" ) type DataNode struct { diff --git a/weed/topology/data_node_ec.go b/weed/topology/data_node_ec.go index 75c8784fe..404ce7c7b 100644 --- a/weed/topology/data_node_ec.go +++ b/weed/topology/data_node_ec.go @@ -1,8 +1,8 @@ package topology import ( - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) func (dn *DataNode) GetEcShards() (ret []*erasure_coding.EcVolumeInfo) { diff --git a/weed/topology/node.go b/weed/topology/node.go index b2808f589..cfa6bebc4 100644 --- a/weed/topology/node.go +++ b/weed/topology/node.go @@ -7,9 +7,9 @@ import ( "sync" "sync/atomic" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) type NodeId string diff --git a/weed/topology/rack.go b/weed/topology/rack.go index 932c1a804..9926dbbff 100644 --- a/weed/topology/rack.go +++ b/weed/topology/rack.go @@ -1,7 +1,7 @@ package topology import ( - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" "strconv" "time" ) diff --git a/weed/topology/store_replicate.go b/weed/topology/store_replicate.go index d21c4d210..e3f3b445e 100644 --- a/weed/topology/store_replicate.go +++ b/weed/topology/store_replicate.go @@ -10,12 +10,12 @@ import ( "strconv" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/security" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/util" ) func ReplicatedWrite(masterNode string, s *storage.Store, diff --git a/weed/topology/topology.go b/weed/topology/topology.go index eff8c99a0..48b8080b7 100644 --- a/weed/topology/topology.go +++ b/weed/topology/topology.go @@ -7,12 +7,12 @@ import ( "sync" "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/sequence" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/sequence" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/util" ) type Topology struct { diff --git a/weed/topology/topology_ec.go b/weed/topology/topology_ec.go index 93b39bb5d..91330f00f 100644 --- a/weed/topology/topology_ec.go +++ b/weed/topology/topology_ec.go @@ -1,10 +1,10 @@ package topology import ( - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/storage/erasure_coding" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/storage/erasure_coding" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) type EcShardLocations struct { diff --git a/weed/topology/topology_event_handling.go b/weed/topology/topology_event_handling.go index 041351492..c51070a32 100644 --- a/weed/topology/topology_event_handling.go +++ b/weed/topology/topology_event_handling.go @@ -5,8 +5,8 @@ import ( "math/rand" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage" ) func (t *Topology) StartRefreshWritableVolumes(grpcDialOption grpc.DialOption, garbageThreshold float64, preallocate int64) { diff --git a/weed/topology/topology_map.go b/weed/topology/topology_map.go index 37a88c9ed..d779bd590 100644 --- a/weed/topology/topology_map.go +++ b/weed/topology/topology_map.go @@ -1,6 +1,6 @@ package topology -import "github.com/chrislusf/seaweedfs/weed/pb/master_pb" +import "github.com/joeslay/seaweedfs/weed/pb/master_pb" func (t *Topology) ToMap() interface{} { m := make(map[string]interface{}) diff --git a/weed/topology/topology_test.go b/weed/topology/topology_test.go index 8f79ad684..5910c87db 100644 --- a/weed/topology/topology_test.go +++ b/weed/topology/topology_test.go @@ -1,10 +1,10 @@ package topology import ( - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/sequence" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/sequence" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" "testing" ) diff --git a/weed/topology/topology_vacuum.go b/weed/topology/topology_vacuum.go index 37a6a30b9..15b813815 100644 --- a/weed/topology/topology_vacuum.go +++ b/weed/topology/topology_vacuum.go @@ -5,12 +5,12 @@ import ( "sync/atomic" "time" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/operation" - "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/operation" + "github.com/joeslay/seaweedfs/weed/pb/volume_server_pb" ) func batchVacuumVolumeCheck(grpcDialOption grpc.DialOption, vl *VolumeLayout, vid needle.VolumeId, locationlist *VolumeLocationList, garbageThreshold float64) bool { diff --git a/weed/topology/volume_growth.go b/weed/topology/volume_growth.go index ff02044a1..b9b2b69f7 100644 --- a/weed/topology/volume_growth.go +++ b/weed/topology/volume_growth.go @@ -5,11 +5,11 @@ import ( "math/rand" "sync" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" "google.golang.org/grpc" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage" ) /* @@ -28,6 +28,7 @@ type VolumeGrowOption struct { DataCenter string Rack string DataNode string + InMemory bool } type VolumeGrowth struct { diff --git a/weed/topology/volume_growth_test.go b/weed/topology/volume_growth_test.go index 3573365fd..b1573ae00 100644 --- a/weed/topology/volume_growth_test.go +++ b/weed/topology/volume_growth_test.go @@ -5,9 +5,9 @@ import ( "fmt" "testing" - "github.com/chrislusf/seaweedfs/weed/sequence" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/sequence" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) var topologyLayout = ` diff --git a/weed/topology/volume_layout.go b/weed/topology/volume_layout.go index 799cbca62..b2b1dd49f 100644 --- a/weed/topology/volume_layout.go +++ b/weed/topology/volume_layout.go @@ -7,9 +7,9 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/storage" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/storage" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) // mapping from volume to its locations, inverted from server to volume diff --git a/weed/topology/volume_location_list.go b/weed/topology/volume_location_list.go index 8905c54b5..8fddc1912 100644 --- a/weed/topology/volume_location_list.go +++ b/weed/topology/volume_location_list.go @@ -3,7 +3,7 @@ package topology import ( "fmt" - "github.com/chrislusf/seaweedfs/weed/storage/needle" + "github.com/joeslay/seaweedfs/weed/storage/needle" ) type VolumeLocationList struct { diff --git a/weed/util/compression.go b/weed/util/compression.go index c6c9423e2..a825dadcb 100644 --- a/weed/util/compression.go +++ b/weed/util/compression.go @@ -7,7 +7,7 @@ import ( "io/ioutil" "strings" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" "golang.org/x/tools/godoc/util" ) diff --git a/weed/util/config.go b/weed/util/config.go index 1ea833d1f..3028b14bf 100644 --- a/weed/util/config.go +++ b/weed/util/config.go @@ -1,7 +1,7 @@ package util import ( - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" "github.com/spf13/viper" ) diff --git a/weed/util/file_util.go b/weed/util/file_util.go index 78add6724..c6da9c934 100644 --- a/weed/util/file_util.go +++ b/weed/util/file_util.go @@ -4,7 +4,7 @@ import ( "errors" "os" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) func TestFolderWritable(folder string) (err error) { diff --git a/weed/util/net_timeout.go b/weed/util/net_timeout.go index b8068e67f..10f3f893b 100644 --- a/weed/util/net_timeout.go +++ b/weed/util/net_timeout.go @@ -4,7 +4,7 @@ import ( "net" "time" - "github.com/chrislusf/seaweedfs/weed/stats" + "github.com/joeslay/seaweedfs/weed/stats" ) // Listener wraps a net.Listener, and gives a place to store the timeout diff --git a/weed/util/pprof.go b/weed/util/pprof.go index a2621ceee..088053803 100644 --- a/weed/util/pprof.go +++ b/weed/util/pprof.go @@ -5,7 +5,7 @@ import ( "runtime" "runtime/pprof" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) func SetupProfiling(cpuProfile, memProfile string) { diff --git a/weed/wdclient/masterclient.go b/weed/wdclient/masterclient.go index da867696d..bfe145b30 100644 --- a/weed/wdclient/masterclient.go +++ b/weed/wdclient/masterclient.go @@ -6,9 +6,9 @@ import ( "math/rand" "time" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/chrislusf/seaweedfs/weed/pb/master_pb" - "github.com/chrislusf/seaweedfs/weed/util" + "github.com/joeslay/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/pb/master_pb" + "github.com/joeslay/seaweedfs/weed/util" "google.golang.org/grpc" ) diff --git a/weed/wdclient/vid_map.go b/weed/wdclient/vid_map.go index 01d9cdaed..ccb9f926f 100644 --- a/weed/wdclient/vid_map.go +++ b/weed/wdclient/vid_map.go @@ -9,7 +9,7 @@ import ( "sync" "time" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/glog" ) type Location struct { diff --git a/weed/weed.go b/weed/weed.go index ecb0ba2a4..2bdefc9d7 100644 --- a/weed/weed.go +++ b/weed/weed.go @@ -16,8 +16,8 @@ import ( "unicode" "unicode/utf8" - "github.com/chrislusf/seaweedfs/weed/command" - "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/joeslay/seaweedfs/weed/command" + "github.com/joeslay/seaweedfs/weed/glog" ) var IsDebug *bool |
