aboutsummaryrefslogtreecommitdiff
path: root/weed-fs/src/pkg/sequence
diff options
context:
space:
mode:
authorTamás Gulácsi <tgulacsi78+waterhouse@gmail.com>2013-01-05 23:06:44 +0100
committerTamás Gulácsi <tgulacsi78+waterhouse@gmail.com>2013-01-05 23:06:44 +0100
commit5d2a1e8d4845e7a7f1dccd962bb0ee6a5f9d6081 (patch)
tree7fb36c1ab3b11e0e3267417c1ebbaf0ef5466a82 /weed-fs/src/pkg/sequence
parent824371035109225128f8942b64a817838a7c0c25 (diff)
downloadseaweedfs-5d2a1e8d4845e7a7f1dccd962bb0ee6a5f9d6081.tar.xz
seaweedfs-5d2a1e8d4845e7a7f1dccd962bb0ee6a5f9d6081.zip
add cmd/dump - a dumper
Walk needed to be added to NeedleMap and CompactMap, to be able to add WalkKeys and WalkValues to volume. This is needed for iterating through all the stored needles in a volume - this was dump's purpose.
Diffstat (limited to 'weed-fs/src/pkg/sequence')
-rw-r--r--weed-fs/src/pkg/sequence/sequence.go52
1 files changed, 26 insertions, 26 deletions
diff --git a/weed-fs/src/pkg/sequence/sequence.go b/weed-fs/src/pkg/sequence/sequence.go
index bfdf1b368..c85289468 100644
--- a/weed-fs/src/pkg/sequence/sequence.go
+++ b/weed-fs/src/pkg/sequence/sequence.go
@@ -1,11 +1,11 @@
package sequence
import (
- "encoding/gob"
- "os"
- "path"
- "sync"
+ "encoding/gob"
"log"
+ "os"
+ "path"
+ "sync"
)
const (
@@ -27,21 +27,21 @@ type SequencerImpl struct {
}
func NewSequencer(dirname string, filename string) (m *SequencerImpl) {
- m = &SequencerImpl{dir: dirname, fileName: filename}
+ m = &SequencerImpl{dir: dirname, fileName: filename}
- seqFile, se := os.OpenFile(path.Join(m.dir, m.fileName+".seq"), os.O_RDONLY, 0644)
- if se != nil {
- m.FileIdSequence = FileIdSaveInterval
- log.Println("Setting file id sequence", m.FileIdSequence)
- } else {
- decoder := gob.NewDecoder(seqFile)
- defer seqFile.Close()
- decoder.Decode(&m.FileIdSequence)
- log.Println("Loading file id sequence", m.FileIdSequence, "=>", m.FileIdSequence+FileIdSaveInterval)
- //in case the server stops between intervals
- m.FileIdSequence += FileIdSaveInterval
- }
- return
+ seqFile, se := os.OpenFile(path.Join(m.dir, m.fileName+".seq"), os.O_RDONLY, 0644)
+ if se != nil {
+ m.FileIdSequence = FileIdSaveInterval
+ log.Println("Setting file id sequence", m.FileIdSequence)
+ } else {
+ decoder := gob.NewDecoder(seqFile)
+ defer seqFile.Close()
+ decoder.Decode(&m.FileIdSequence)
+ log.Println("Loading file id sequence", m.FileIdSequence, "=>", m.FileIdSequence+FileIdSaveInterval)
+ //in case the server stops between intervals
+ m.FileIdSequence += FileIdSaveInterval
+ }
+ return
}
//count should be 1 or more
@@ -60,12 +60,12 @@ func (m *SequencerImpl) NextFileId(count int) (uint64, int) {
return m.FileIdSequence - m.fileIdCounter, count
}
func (m *SequencerImpl) saveSequence() {
- log.Println("Saving file id sequence", m.FileIdSequence, "to", path.Join(m.dir, m.fileName+".seq"))
- seqFile, e := os.OpenFile(path.Join(m.dir, m.fileName+".seq"), os.O_CREATE|os.O_WRONLY, 0644)
- if e != nil {
- log.Fatalf("Sequence File Save [ERROR] %s\n", e)
- }
- defer seqFile.Close()
- encoder := gob.NewEncoder(seqFile)
- encoder.Encode(m.FileIdSequence)
+ log.Println("Saving file id sequence", m.FileIdSequence, "to", path.Join(m.dir, m.fileName+".seq"))
+ seqFile, e := os.OpenFile(path.Join(m.dir, m.fileName+".seq"), os.O_CREATE|os.O_WRONLY, 0644)
+ if e != nil {
+ log.Fatalf("Sequence File Save [ERROR] %s\n", e)
+ }
+ defer seqFile.Close()
+ encoder := gob.NewEncoder(seqFile)
+ encoder.Encode(m.FileIdSequence)
}