mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
rename repo from cfs to chubaofs
This commit is contained in:
parent
803030aa7d
commit
97f2a18f5c
@ -5,7 +5,7 @@ go:
|
||||
- 1.12
|
||||
|
||||
env:
|
||||
- CFS_BUILD_BASE="chubaofs/cfs-build:1.0"
|
||||
- ChubaoFS_BUILD_BASE="chubaofs/chubaofs-build:1.0"
|
||||
|
||||
services: docker
|
||||
|
||||
@ -14,8 +14,8 @@ notifications:
|
||||
on_failure: never
|
||||
|
||||
before_install:
|
||||
- docker pull ${CFS_BUILD_BASE}
|
||||
- docker pull ${ChubaoFS_BUILD_BASE}
|
||||
|
||||
script:
|
||||
- docker run --rm -v `pwd`:/go/src/github.com/chubaofs/cfs ${CFS_BUILD_BASE} /bin/bash -c "cd /go/src/github.com/chubaofs/cfs && make build"
|
||||
- docker run --rm -v `pwd`:/go/src/github.com/chubaofs/cfs ${ChubaoFS_BUILD_BASE} /bin/bash -c "cd /go/src/github.com/chubaofs/chubaofs && make build"
|
||||
|
||||
|
||||
@ -12,13 +12,13 @@ ChubaoFS (储宝文件系统) is a distributed file system with the following fe
|
||||
|
||||
* POSIX-compatible
|
||||
|
||||
For more details, please refer to our SIGMOD 2019 paper "CFS: A Distributed File System for Large Scale Container Platforms".
|
||||
For more details, please refer to our SIGMOD 2019 paper "ChubaoFS: A Distributed File System for Large Scale Container Platforms".
|
||||
|
||||
|
||||
## Document
|
||||
https://cfs.readthedocs.io/en/latest/
|
||||
https://chubaofs.readthedocs.io/en/latest/
|
||||
|
||||
https://cfs.readthedocs.io/zh_CN/latest/
|
||||
https://chubaofs.readthedocs.io/zh_CN/latest/
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ import (
|
||||
|
||||
"bazil.org/fuse"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@ -23,8 +23,8 @@ import (
|
||||
"bazil.org/fuse/fs"
|
||||
"golang.org/x/net/context"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
// Dir defines the structure of a directory
|
||||
|
||||
@ -23,8 +23,8 @@ import (
|
||||
"bazil.org/fuse/fs"
|
||||
"golang.org/x/net/context"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"sync"
|
||||
)
|
||||
|
||||
|
||||
@ -21,8 +21,8 @@ import (
|
||||
|
||||
"bazil.org/fuse"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@ -23,9 +23,9 @@ import (
|
||||
|
||||
"bazil.org/fuse"
|
||||
"bazil.org/fuse/fs"
|
||||
"github.com/chubaofs/cfs/sdk/data/stream"
|
||||
"github.com/chubaofs/cfs/sdk/meta"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/sdk/data/stream"
|
||||
"github.com/chubaofs/chubaofs/sdk/meta"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
// Super defines the struct of a super block.
|
||||
|
||||
@ -34,10 +34,10 @@ import (
|
||||
|
||||
"bazil.org/fuse"
|
||||
"bazil.org/fuse/fs"
|
||||
cfs "github.com/chubaofs/cfs/client/fs"
|
||||
"github.com/chubaofs/cfs/util/config"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
cfs "github.com/chubaofs/chubaofs/client/fs"
|
||||
"github.com/chubaofs/chubaofs/util/config"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -67,7 +67,7 @@ func main() {
|
||||
flag.Parse()
|
||||
|
||||
if *configVersion {
|
||||
fmt.Printf("CFS client verson: %s\n", Version)
|
||||
fmt.Printf("ChubaoFS client verson: %s\n", Version)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
@ -118,9 +118,9 @@ func Mount(cfg *config.Config) (err error) {
|
||||
fuse.MaxReadahead(MaxReadAhead),
|
||||
fuse.AsyncRead(),
|
||||
fuse.AutoInvalData(autoInvalData),
|
||||
fuse.FSName("cfs-"+volname),
|
||||
fuse.FSName("chubaofs-"+volname),
|
||||
fuse.LocalVolume(),
|
||||
fuse.VolumeName("cfs-"+volname))
|
||||
fuse.VolumeName("chubaofs-"+volname))
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
14
cmd/cmd.go
14
cmd/cmd.go
@ -17,14 +17,14 @@ package main
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/chubaofs/cfs/datanode"
|
||||
"github.com/chubaofs/cfs/master"
|
||||
"github.com/chubaofs/cfs/metanode"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/datanode"
|
||||
"github.com/chubaofs/chubaofs/master"
|
||||
"github.com/chubaofs/chubaofs/metanode"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/util/config"
|
||||
"github.com/chubaofs/chubaofs/util/config"
|
||||
"net/http"
|
||||
_ "net/http/pprof"
|
||||
"os"
|
||||
@ -112,7 +112,7 @@ func main() {
|
||||
flag.Parse()
|
||||
|
||||
if *configVersion {
|
||||
fmt.Printf("CFS server version: %s\n", Version)
|
||||
fmt.Printf("ChubaoFS server version: %s\n", Version)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ func main() {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
log.LogInfof("Hello, CFS Storage, Current Version: %s", Version)
|
||||
log.LogInfof("Hello, ChubaoFS Storage, Current Version: %s", Version)
|
||||
cfg := config.LoadConfigFile(*configFile)
|
||||
role := cfg.GetString(ConfigKeyRole)
|
||||
logDir := cfg.GetString(ConfigKeyLogDir)
|
||||
|
||||
@ -21,10 +21,10 @@ import (
|
||||
"time"
|
||||
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"hash/crc32"
|
||||
)
|
||||
|
||||
@ -26,8 +26,8 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@ -26,12 +26,12 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/master"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/master"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
raftProto "github.com/tiglabs/raft/proto"
|
||||
"hash/crc32"
|
||||
|
||||
@ -21,10 +21,10 @@ import (
|
||||
"net"
|
||||
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"strings"
|
||||
"sync/atomic"
|
||||
)
|
||||
|
||||
@ -25,11 +25,11 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/util/config"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/util/config"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
raftproto "github.com/tiglabs/raft/proto"
|
||||
)
|
||||
|
||||
@ -19,9 +19,9 @@ import (
|
||||
"fmt"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"github.com/tiglabs/raft"
|
||||
raftproto "github.com/tiglabs/raft/proto"
|
||||
|
||||
@ -28,13 +28,13 @@ import (
|
||||
"time"
|
||||
|
||||
"errors"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/config"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/config"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"os"
|
||||
"syscall"
|
||||
)
|
||||
@ -50,7 +50,7 @@ var (
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultRackName = "cfs_rack1"
|
||||
DefaultRackName = "chubaofs_rack1"
|
||||
DefaultRaftDir = "raft"
|
||||
DefaultRaftLogsToRetain = 20000 // Count of raft logs per data partition
|
||||
DefaultDiskMaxErr = 20
|
||||
|
||||
@ -20,8 +20,8 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
)
|
||||
|
||||
func (s *DataNode) getDiskAPI(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@ -21,9 +21,9 @@ import (
|
||||
|
||||
"os"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
// SpaceManager manages the disk space.
|
||||
|
||||
@ -25,12 +25,12 @@ import (
|
||||
|
||||
"strings"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"github.com/tiglabs/raft"
|
||||
raftProto "github.com/tiglabs/raft/proto"
|
||||
|
||||
@ -15,9 +15,9 @@
|
||||
package datanode
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"sync/atomic"
|
||||
)
|
||||
|
||||
|
||||
@ -17,9 +17,9 @@ package datanode
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/repl"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/repl"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"github.com/juju/errors"
|
||||
"hash/crc32"
|
||||
)
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
|
||||
project = u'CFS'
|
||||
project = u'ChubaoFS'
|
||||
copyright = u'2018, The Chubao Authors'
|
||||
author = u'The Chubao Authors'
|
||||
|
||||
@ -104,7 +104,7 @@ html_theme = 'sphinx_rtd_theme'
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
|
||||
htmlhelp_basename = 'CFS Doc'
|
||||
htmlhelp_basename = 'ChubaoFS Doc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ------------------------------------------------
|
||||
@ -131,7 +131,7 @@ latex_elements = {
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'CFS.tex', u'CFS Documentation',
|
||||
(master_doc, 'ChubaoFS.tex', u'ChubaoFS Documentation',
|
||||
u'The Chubao Authors', 'manual'),
|
||||
]
|
||||
|
||||
@ -141,7 +141,7 @@ latex_documents = [
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'CFS', u'CFS Documentation',
|
||||
(master_doc, 'ChubaoFS', u'ChubaoFS Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
@ -152,8 +152,8 @@ man_pages = [
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, 'CFS', u'CFS Documentation',
|
||||
author, 'CFS', 'One line description of project.',
|
||||
(master_doc, 'ChubaoFS', u'ChubaoFS Documentation',
|
||||
author, 'ChubaoFS', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
|
||||
@ -16,6 +16,6 @@ To reduce the communication with the data nodes, the client caches the most rec
|
||||
Integration with FUSE
|
||||
-----------------------
|
||||
|
||||
The CFS client has been integrated with FUSE to provide a file system interface in the user space. In the past, low performance is considered the main disadvantage of such user-space file systems. But over the years, FUSE has made several improvement on its performance such as multithreading and write-back cache. In the future, we plan to develop our own POSIX-compliant file system interface in the kernel space to completely eliminate the overhead from FUSE.
|
||||
The ChubaoFS client has been integrated with FUSE to provide a file system interface in the user space. In the past, low performance is considered the main disadvantage of such user-space file systems. But over the years, FUSE has made several improvement on its performance such as multithreading and write-back cache. In the future, we plan to develop our own POSIX-compliant file system interface in the kernel space to completely eliminate the overhead from FUSE.
|
||||
|
||||
Currently the write-back cache feature does not work well in CFS due to the following reason. The default write behavior of FUSE is called directIO, which bypasses the kernel's page cache. This results in performance problems on writing small files as each write pushes the file data to the user daemon. The solution FUSE implemented was to make the page cache support a write-back policy that aggregates small data first, and then make writes asynchronous. With that change, file data can be pushed to the user daemon in larger blobs at a time. However, in real production, we found that the write-back cache is not very useful, because a write operation usually invoke another process that tries to balance the dirty pages (pages in the main memory that have been modified during writing data to disk are marked as "dirty" and have to be flushed to disk before they can be freed), which incurs extra overhead. This overhead becomes more obvious when small files are continuously written through FUSE.
|
||||
Currently the write-back cache feature does not work well in ChubaoFS due to the following reason. The default write behavior of FUSE is called directIO, which bypasses the kernel's page cache. This results in performance problems on writing small files as each write pushes the file data to the user daemon. The solution FUSE implemented was to make the page cache support a write-back policy that aggregates small data first, and then make writes asynchronous. With that change, file data can be pushed to the user daemon in larger blobs at a time. However, in real production, we found that the write-back cache is not very useful, because a write operation usually invoke another process that tries to balance the dirty pages (pages in the main memory that have been modified during writing data to disk are marked as "dirty" and have to be flushed to disk before they can be freed), which incurs extra overhead. This overhead becomes more obvious when small files are continuously written through FUSE.
|
||||
|
||||
@ -17,13 +17,13 @@ Writing a new file to the extent store always causes the data to be written at t
|
||||
|
||||
- Small File Storage
|
||||
|
||||
The contents of multiple small files are aggregated and stored in a single extent, and the physical offset of each file content in the extent is recorded in the corresponding meta node. CFS relies on the punch hole interface, \textit{fallocate()}\footnote{\url{http://man7.org/linux/man-pages/man2/fallocate.2.html}}, to \textit{asynchronous} free the disk space occupied by the to-be-deleted file. The advantage of this design is to eliminate the need of implementing a garbage collection mechanism and therefore avoid to employ a mapping from logical offset to physical offset in an extent~\cite{haystack}. Note that this is different from deleting large files, where the extents of the file can be removed directly from the disk.
|
||||
The contents of multiple small files are aggregated and stored in a single extent, and the physical offset of each file content in the extent is recorded in the corresponding meta node. ChubaoFS relies on the punch hole interface, \textit{fallocate()}\footnote{\url{http://man7.org/linux/man-pages/man2/fallocate.2.html}}, to \textit{asynchronous} free the disk space occupied by the to-be-deleted file. The advantage of this design is to eliminate the need of implementing a garbage collection mechanism and therefore avoid to employ a mapping from logical offset to physical offset in an extent~\cite{haystack}. Note that this is different from deleting large files, where the extents of the file can be removed directly from the disk.
|
||||
|
||||
- Replication
|
||||
|
||||
The replication is performed in terms of partitions during file writes. Depending on the file write pattern, CFS adopts different replication strategies.
|
||||
The replication is performed in terms of partitions during file writes. Depending on the file write pattern, ChubaoFS adopts different replication strategies.
|
||||
|
||||
When a file is sequentially written into CFS, a primary-backup replication protocol is used to ensure the strong consistency with optimized IO throughput.
|
||||
When a file is sequentially written into ChubaoFS, a primary-backup replication protocol is used to ensure the strong consistency with optimized IO throughput.
|
||||
|
||||
.. image:: ../pic/workflow-sequential-write.png
|
||||
:align: center
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Resource Manager
|
||||
==================
|
||||
|
||||
The resource manager manages the file system by processing different types of tasks, such as creating/deleting/updating/loading partitions and keeping track of the resource status (such as the memory/disk utilization). The resource manager is also responsible for creating new volumes and adding new meta/data nodes to the CFS cluster. It has multiple replicas, among which the consistency is maintained by a consensus algorithm such as Raft, and persisted to a key value store such as RocksDB for backup and recovery.
|
||||
The resource manager manages the file system by processing different types of tasks, such as creating/deleting/updating/loading partitions and keeping track of the resource status (such as the memory/disk utilization). The resource manager is also responsible for creating new volumes and adding new meta/data nodes to the ChubaoFS cluster. It has multiple replicas, among which the consistency is maintained by a consensus algorithm such as Raft, and persisted to a key value store such as RocksDB for backup and recovery.
|
||||
|
||||
Utilization-Based Distribution/Placement
|
||||
-----------------------------------------
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
Welcome to CFS(Chubao File System)
|
||||
Welcome to ChubaoFS(Chubao File System)
|
||||
==================================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Introduction
|
||||
=============
|
||||
|
||||
CFS(Chubao File System) is a distributed fle system that is designed to natively support large scale container platforms.
|
||||
ChubaoFS(Chubao File System) is a distributed fle system that is designed to natively support large scale container platforms.
|
||||
|
||||
High Level Architecture
|
||||
-----------------------
|
||||
@ -11,16 +11,16 @@ High Level Architecture
|
||||
:scale: 50 %
|
||||
:alt: Architecture
|
||||
|
||||
CFS consists of a *metadata subsystem*, a *data subsystem*, and a *resource manager*, and can be accessed by different *clients* (as a set of application processes) hosted on the containers through different file system instances called *volumes*.
|
||||
ChubaoFS consists of a *metadata subsystem*, a *data subsystem*, and a *resource manager*, and can be accessed by different *clients* (as a set of application processes) hosted on the containers through different file system instances called *volumes*.
|
||||
|
||||
The metadata subsystem stores the file metadata, and consists of a set of *meta nodes*. Each meta node consists of a set of *meta partitions*.
|
||||
|
||||
The data subsystem stores the file contents, and consists of a set of *data nodes*. Each data node consists of a set of *data partitions*.
|
||||
|
||||
The volume is a logical concept in CFS and consists of one or multiple meta partitions and one or multiple data partitions. Each partition can only be assigned to a single volume.
|
||||
The volume is a logical concept in ChubaoFS and consists of one or multiple meta partitions and one or multiple data partitions. Each partition can only be assigned to a single volume.
|
||||
From a client's perspective, the volume can be viewed as a file system instance that contains data accessible by the containers.
|
||||
A volume can be mounted to multiple containers so that files can be shared among different clients simultaneously, and needs to be created at the very beginning before the any file operation.
|
||||
A CFS cluster deployed at each data center can have hundreds of thousands of volumes, whose data sizes vary from a few gigabytes to several terabytes.
|
||||
A ChubaoFS cluster deployed at each data center can have hundreds of thousands of volumes, whose data sizes vary from a few gigabytes to several terabytes.
|
||||
|
||||
Generally speaking, the resource manager periodically communicates with the metadata subsystem and data subsystem to manage the meta nodes and data nodes, respectively. Each client periodically communicates with the resource manager to obtain the up-to-date view of the mounted volume. A file operation usually initiates the communications from the client to the corresponding meta node and data node directly, without the involvement of the resource manager. The updated view of the mounted volume, as well as the file metadata are usually cached at the client side to reduce the communication overhead.
|
||||
|
||||
@ -49,7 +49,7 @@ E-commence venders who move their line of business applications to the cloud usu
|
||||
Relaxed POSIX Semantics and Metadata Atomicity
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
In a POSIX-compliant distributed file system, the behavior of serving multiple processes on multiple client nodes should be the same as the behavior of a local file system serving multiple processes on a single node with direct attached storage. CFS provides POSIX-compliant APIs. However, the POSIX consistency semantics, as well as the atomicity requirement between the inode and dentry of the same file, have been carefully relaxed in order to better align with the needs of applications and to improve the system performance.
|
||||
In a POSIX-compliant distributed file system, the behavior of serving multiple processes on multiple client nodes should be the same as the behavior of a local file system serving multiple processes on a single node with direct attached storage. ChubaoFS provides POSIX-compliant APIs. However, the POSIX consistency semantics, as well as the atomicity requirement between the inode and dentry of the same file, have been carefully relaxed in order to better align with the needs of applications and to improve the system performance.
|
||||
|
||||
|
||||
|
||||
|
||||
@ -7,12 +7,12 @@ Building
|
||||
Build Servers
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
In CFS, the server consists of the resource manager, metanode and datanode, which are compiled to a single binary for deployment convenience.
|
||||
In ChubaoFS, the server consists of the resource manager, metanode and datanode, which are compiled to a single binary for deployment convenience.
|
||||
|
||||
Building of CFS server depends on RocksDB, `build RocksDB v5.9.2+ <https://github.com/facebook/rocksdb/blob/master/INSTALL.md>`_ .
|
||||
Building of ChubaoFS server depends on RocksDB, `build RocksDB v5.9.2+ <https://github.com/facebook/rocksdb/blob/master/INSTALL.md>`_ .
|
||||
Recommended installation uses `make static_lib` .
|
||||
|
||||
CFS server is built with the following command:
|
||||
ChubaoFS server is built with the following command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"__inputs": [
|
||||
{
|
||||
"name": "DS_CFS01",
|
||||
"name": "DS_ChubaoFS01",
|
||||
"label": "cfs01",
|
||||
"description": "",
|
||||
"type": "datasource",
|
||||
@ -85,7 +85,7 @@
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"#d44a3a"
|
||||
],
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
@ -175,7 +175,7 @@
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"#d44a3a"
|
||||
],
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
@ -265,7 +265,7 @@
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"#d44a3a"
|
||||
],
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
@ -362,7 +362,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -453,7 +453,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -572,7 +572,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -670,7 +670,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -782,7 +782,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -894,7 +894,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -1020,7 +1020,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 7,
|
||||
@ -1118,7 +1118,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 7,
|
||||
@ -1264,7 +1264,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -1355,7 +1355,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -1467,7 +1467,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -1589,7 +1589,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -1680,7 +1680,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -1799,7 +1799,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -1897,7 +1897,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -2023,7 +2023,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -2127,7 +2127,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -2218,7 +2218,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -2316,7 +2316,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -2428,7 +2428,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -2526,7 +2526,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
@ -2669,7 +2669,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -2781,7 +2781,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -2893,7 +2893,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -2984,7 +2984,7 @@
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
@ -3106,7 +3106,7 @@
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {},
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": "Cluster",
|
||||
@ -3126,7 +3126,7 @@
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {},
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": "Role",
|
||||
@ -3146,7 +3146,7 @@
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {},
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": "Instance",
|
||||
@ -3166,7 +3166,7 @@
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {},
|
||||
"datasource": "${DS_CFS01}",
|
||||
"datasource": "${DS_ChubaoFS01}",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": "Host",
|
||||
|
||||
@ -4,7 +4,7 @@ Data Subsystem
|
||||
How To Start DataNode
|
||||
---------------------
|
||||
|
||||
Start a DataNode process by execute the server binary of CFS you built with ``-c`` argument and specify configuration file.
|
||||
Start a DataNode process by execute the server binary of ChubaoFS you built with ``-c`` argument and specify configuration file.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ Features
|
||||
Configurations
|
||||
--------------
|
||||
|
||||
CFS use **JSON** as configuration file format.
|
||||
ChubaoFS use **JSON** as configuration file format.
|
||||
|
||||
.. csv-table:: Properties
|
||||
:header: "Key", "Type", "Description", "Mandatory"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Monitor
|
||||
-----------------------
|
||||
|
||||
CFS use prometheus as metrics collector. It simply config as follow in master,metanode,datanode,client's config file:
|
||||
ChubaoFS use prometheus as metrics collector. It simply config as follow in master,metanode,datanode,client's config file:
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
|
||||
@ -20,9 +20,9 @@ import (
|
||||
"time"
|
||||
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"net"
|
||||
)
|
||||
|
||||
@ -21,9 +21,9 @@ import (
|
||||
"strconv"
|
||||
|
||||
"bytes"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"io/ioutil"
|
||||
"regexp"
|
||||
|
||||
@ -16,10 +16,10 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@ -16,7 +16,7 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
||||
@ -17,8 +17,8 @@ package master
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"runtime"
|
||||
"sync"
|
||||
|
||||
@ -16,7 +16,7 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/tiglabs/raft/proto"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
package master
|
||||
|
||||
import "github.com/chubaofs/cfs/util"
|
||||
import "github.com/chubaofs/chubaofs/util"
|
||||
|
||||
// Keys in the request
|
||||
const (
|
||||
|
||||
@ -19,8 +19,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
)
|
||||
|
||||
// DataNode stores all the information about a data node
|
||||
|
||||
@ -16,9 +16,9 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"math"
|
||||
"strings"
|
||||
|
||||
@ -16,8 +16,8 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
||||
@ -17,8 +17,8 @@ package master
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"runtime"
|
||||
"sync"
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
package master
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
||||
@ -16,8 +16,8 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"math"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -16,8 +16,8 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"sort"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
@ -16,7 +16,7 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
)
|
||||
|
||||
// FileMetadata defines the file metadata on a dataNode
|
||||
|
||||
@ -17,8 +17,8 @@ package master
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"net/http/httputil"
|
||||
)
|
||||
|
||||
|
||||
@ -16,8 +16,8 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"strconv"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
|
||||
@ -16,7 +16,7 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/tiglabs/raft/proto"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
package master
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"math/rand"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@ -18,8 +18,8 @@ import (
|
||||
"sync"
|
||||
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@ -17,8 +17,8 @@ package master
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/tiglabs/raft"
|
||||
"github.com/tiglabs/raft/proto"
|
||||
"io"
|
||||
|
||||
@ -17,8 +17,8 @@ package master
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
bsProto "github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
bsProto "github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"github.com/tiglabs/raft/proto"
|
||||
"strconv"
|
||||
|
||||
@ -15,8 +15,8 @@
|
||||
package master
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -16,7 +16,7 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"sort"
|
||||
)
|
||||
|
||||
|
||||
@ -19,9 +19,9 @@ import (
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"math/rand"
|
||||
"strings"
|
||||
|
||||
@ -16,11 +16,11 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util/config"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util/config"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"net/http/httputil"
|
||||
"strconv"
|
||||
|
||||
@ -16,8 +16,8 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"sort"
|
||||
"sync"
|
||||
|
||||
@ -16,9 +16,9 @@ package master
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"sync"
|
||||
)
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@ import (
|
||||
"strconv"
|
||||
|
||||
"bytes"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
// APIResponse defines the structure of the response to an HTTP request
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
package metanode
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/util/btree"
|
||||
"github.com/chubaofs/chubaofs/util/btree"
|
||||
"sync"
|
||||
)
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
package metanode
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/juju/errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
package metanode
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
@ -17,7 +17,7 @@ package metanode
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"sync"
|
||||
)
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ import (
|
||||
"encoding/binary"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"io"
|
||||
"sync"
|
||||
)
|
||||
|
||||
@ -27,11 +27,11 @@ import (
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
|
||||
@ -20,9 +20,9 @@ import (
|
||||
"os"
|
||||
|
||||
"bytes"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
raftProto "github.com/tiglabs/raft/proto"
|
||||
)
|
||||
|
||||
@ -17,8 +17,8 @@ package metanode
|
||||
import (
|
||||
"net"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@ -18,7 +18,7 @@ import (
|
||||
"encoding/json"
|
||||
"net"
|
||||
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
|
||||
@ -22,12 +22,12 @@ import (
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/config"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/config"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
@ -16,8 +16,8 @@ package metanode
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
)
|
||||
|
||||
type Packet struct {
|
||||
|
||||
@ -22,10 +22,10 @@ import (
|
||||
"sync/atomic"
|
||||
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
raftproto "github.com/tiglabs/raft/proto"
|
||||
"io/ioutil"
|
||||
|
||||
@ -19,8 +19,8 @@ import (
|
||||
"container/list"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
@ -17,8 +17,8 @@ package metanode
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"net"
|
||||
"os"
|
||||
|
||||
@ -21,9 +21,9 @@ import (
|
||||
"io"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/tiglabs/raft"
|
||||
raftproto "github.com/tiglabs/raft/proto"
|
||||
"io/ioutil"
|
||||
|
||||
@ -21,8 +21,8 @@ import (
|
||||
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"io/ioutil"
|
||||
"path"
|
||||
)
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
package metanode
|
||||
|
||||
import (
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
)
|
||||
|
||||
type DentryResponse struct {
|
||||
|
||||
@ -17,8 +17,8 @@ package metanode
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"io"
|
||||
)
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ package metanode
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
)
|
||||
|
||||
// CreateDentry returns a new dentry.
|
||||
|
||||
@ -17,7 +17,7 @@ package metanode
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"os"
|
||||
)
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
)
|
||||
|
||||
func replyInfo(info *proto.InodeInfo, ino *Inode) bool {
|
||||
|
||||
@ -19,7 +19,7 @@ import (
|
||||
"encoding/binary"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/juju/errors"
|
||||
"hash/crc32"
|
||||
"io"
|
||||
|
||||
@ -17,8 +17,8 @@ package metanode
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/chubaofs/cfs/raftstore"
|
||||
"github.com/chubaofs/chubaofs/raftstore"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
|
||||
@ -18,8 +18,8 @@ import (
|
||||
"io"
|
||||
"net"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
// StartTcpService binds and listens to the specified port.
|
||||
|
||||
@ -20,7 +20,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chubaofs/cfs/util/btree"
|
||||
"github.com/chubaofs/chubaofs/util/btree"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@ -19,8 +19,8 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/buf"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/buf"
|
||||
"io"
|
||||
"net"
|
||||
"strconv"
|
||||
|
||||
@ -16,7 +16,7 @@ package raftstore
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"github.com/tiglabs/raft"
|
||||
"strings"
|
||||
|
||||
@ -21,10 +21,10 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/storage"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/storage"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
|
||||
@ -20,9 +20,9 @@ import (
|
||||
"net"
|
||||
"sync"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"sync/atomic"
|
||||
)
|
||||
|
||||
@ -18,9 +18,9 @@ import (
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/btree"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/btree"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
// ExtentRequest defines the struct for the request of read or write an extent.
|
||||
|
||||
@ -21,10 +21,10 @@ import (
|
||||
|
||||
"github.com/juju/errors"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/cfs/util/exporter"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/chubaofs/util/exporter"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
type AppendExtentKeyFunc func(inode uint64, key proto.ExtentKey) error
|
||||
|
||||
@ -22,10 +22,10 @@ import (
|
||||
|
||||
"github.com/juju/errors"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
)
|
||||
|
||||
// State machines
|
||||
|
||||
@ -16,10 +16,10 @@ package stream
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
"hash/crc32"
|
||||
"net"
|
||||
|
||||
@ -17,9 +17,9 @@ package stream
|
||||
import (
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"hash/crc32"
|
||||
"io"
|
||||
"net"
|
||||
|
||||
@ -19,9 +19,9 @@ import (
|
||||
"net"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
|
||||
@ -16,8 +16,8 @@ package stream
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"io"
|
||||
"sync"
|
||||
)
|
||||
|
||||
@ -22,10 +22,10 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/cfs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/cfs/util"
|
||||
"github.com/chubaofs/cfs/util/log"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"github.com/chubaofs/chubaofs/sdk/data/wrapper"
|
||||
"github.com/chubaofs/chubaofs/util"
|
||||
"github.com/chubaofs/chubaofs/util/log"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ package wrapper
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chubaofs/cfs/proto"
|
||||
"github.com/chubaofs/chubaofs/proto"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user