Skip to content

Commit

Permalink
wal: cut(i uint64) -> cut
Browse files Browse the repository at this point in the history
  • Loading branch information
xiang90 committed Sep 15, 2014
1 parent f9c12e2 commit 21860bc
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
14 changes: 10 additions & 4 deletions wal/wal.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ type WAL struct {

f *os.File // underlay file opened for appending, sync
seq int64 // current sequence of the wal file
enti int64 // index of the last entry that has been saved to wal
encoder *encoder // encoder to encode records
}

Expand Down Expand Up @@ -156,6 +157,7 @@ func (w *WAL) ReadAll() (id int64, state raftpb.State, ents []raftpb.Entry, err
if e.Index >= w.ri {
ents = append(ents[:e.Index-w.ri], e)
}
w.enti = e.Index
case stateType:
state = mustUnmarshalState(rec.Data)
case infoType:
Expand Down Expand Up @@ -196,11 +198,11 @@ func (w *WAL) ReadAll() (id int64, state raftpb.State, ents []raftpb.Entry, err

// index should be the index of last log entry.
// Cut closes current file written and creates a new one ready to append.
func (w *WAL) Cut(index int64) error {
log.Printf("wal.cut index=%d", index)
func (w *WAL) Cut() error {
log.Printf("wal.cut index=%d", w.enti+1)

// create a new wal file with name sequence + 1
fpath := path.Join(w.dir, fmt.Sprintf("%016x-%016x.wal", w.seq+1, index+1))
fpath := path.Join(w.dir, fmt.Sprintf("%016x-%016x.wal", w.seq+1, w.enti+1))
f, err := os.OpenFile(fpath, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0600)
if err != nil {
return err
Expand Down Expand Up @@ -250,7 +252,11 @@ func (w *WAL) SaveEntry(e *raftpb.Entry) error {
panic(err)
}
rec := &walpb.Record{Type: entryType, Data: b}
return w.encoder.encode(rec)
if err := w.encoder.encode(rec); err != nil {
return err
}
w.enti = e.Index
return nil
}

func (w *WAL) SaveState(s *raftpb.State) error {
Expand Down
8 changes: 4 additions & 4 deletions wal/wal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ func TestCut(t *testing.T) {
if err := w.SaveEntry(&raftpb.Entry{}); err != nil {
t.Fatal(err)
}
if err := w.Cut(0); err != nil {
if err := w.Cut(); err != nil {
t.Fatal(err)
}
wname := fmt.Sprintf("%016x-%016x.wal", 1, 1)
Expand All @@ -142,7 +142,7 @@ func TestCut(t *testing.T) {
if err := w.SaveEntry(e); err != nil {
t.Fatal(err)
}
if err := w.Cut(1); err != nil {
if err := w.Cut(); err != nil {
t.Fatal(err)
}
wname = fmt.Sprintf("%016x-%016x.wal", 2, 2)
Expand Down Expand Up @@ -287,15 +287,15 @@ func TestRecoverAfterCut(t *testing.T) {
if err = w.SaveEntry(&raftpb.Entry{}); err != nil {
t.Fatal(err)
}
if err = w.Cut(0); err != nil {
if err = w.Cut(); err != nil {
t.Fatal(err)
}
for i := 1; i < 10; i++ {
e := raftpb.Entry{Index: int64(i)}
if err = w.SaveEntry(&e); err != nil {
t.Fatal(err)
}
if err = w.Cut(e.Index); err != nil {
if err = w.Cut(); err != nil {
t.Fatal(err)
}
if err = w.SaveInfo(info); err != nil {
Expand Down

0 comments on commit 21860bc

Please sign in to comment.