Anton Kaliaev
0f555f8d2c
Merge pull request #71 from tendermint/69-read-impl-and-tests
[autofile] test GroupReader more extensively (Refs #69 )
7 years ago
Anton Kaliaev
d8dd497069
fix metalinter errors
7 years ago
Anton Kaliaev
668698584d
[autofile] test GroupReader more extensively (Refs #69 )
7 years ago
Ethan Buchman
d9525c0fb6
Merge pull request #70 from tendermint/develop
Develop
7 years ago
Ethan Buchman
b14c996698
update changelog
7 years ago
Ethan Buchman
092eb701c7
cmn: Kill
7 years ago
Ethan Buchman
42145a82bd
version and changelog
7 years ago
Ethan Buchman
b30e3ba26d
Merge pull request #65 from tendermint/573-wal-issues-2
[autofile] Support for the new WAL format
7 years ago
Anton Kaliaev
0a652499ea
Merge pull request #68 from tendermint/bugfix/gopath-executes-go
make GoPath a function
7 years ago
Anton Kaliaev
bcf15e527d
make GoPath a function
otherwise it could try to execute go binary and panic if no go binary
found. See https://github.com/tendermint/tendermint/issues/782
7 years ago
Ethan Buchman
93bd2081dd
Merge pull request #66 from tendermint/codecov
add codecov
7 years ago
Anton Kaliaev
f99c73502c
add codecov
7 years ago
Anton Kaliaev
103fee6192
add tests for autofile group Write, reader#Read
7 years ago
Anton Kaliaev
81591e288e
fix metalinter warnings
7 years ago
Anton Kaliaev
d4c6a68e58
Merge pull request #64 from silasdavis/event-cache
Fix zeroed buffer getting flushed to the empty event
7 years ago
Silas Davis
0eff425bc7
fix zeroed buffer getting flushed to the empty event
7 years ago
Anton Kaliaev
21b2c26fb1
GroupReader#Read: return io.EOF if file is empty
7 years ago
Anton Kaliaev
c75ddd0fa3
return err if empty slice given
7 years ago
Anton Kaliaev
35e81018e9
add MinIndex method to Group
7 years ago
Anton Kaliaev
aace56018a
add Read method to GroupReader
7 years ago
Anton Kaliaev
45095e83e7
add Write method to autofile/Group
7 years ago
Anton Kaliaev
498fb1134a
write docs for autofile/group
7 years ago
Anton Kaliaev
8e5266a9ef
Merge pull request #62 from tendermint/tests-fix
fix goLevelDBIterator
7 years ago
Anton Kaliaev
1f15ade60d
Merge pull request #61 from tendermint/60-cmn-gopath-needs-a-default
call go env GOPATH if env var is not found (Refs #60 )
7 years ago
Anton Kaliaev
0b22b27bbb
avoid infinite recursion by proxying to iterator
```
WARNING: staticcheck, gosimple and unused are all set, using megacheck instead
db/go_level_db.go:126:15:warning: infinite recursive call (SA5007) (megacheck)
db/go_level_db.go:135:17:warning: infinite recursive call (SA5007) (megacheck)
db/mem_db.go:106:2:warning: redundant return statement (S1023) (megacheck)
```
https://circleci.com/gh/tendermint/tmlibs/220
Also remove unnecessary return statement
7 years ago
Anton Kaliaev
cd2ad19db4
Merge pull request #57 from tendermint/feature/improve-db-interface
WIP: Improve db interface
7 years ago
Alexis Sellier
6b1e3bcee3
Add comments about copying
7 years ago
Anton Kaliaev
7166252a52
add codeowners file [ci skip]
7 years ago
Anton Kaliaev
35e38e8932
call go env GOPATH if env var is not found (Refs #60 )
7 years ago
Ethan Buchman
7dd6b3d3f8
Merge pull request #53 from tendermint/metalinter
add metalinter to CI and address some lint warnings
7 years ago
Ethan Buchman
c8805fd7de
metalinter fixes from review
7 years ago
Zach Ramsay
cf49ba876f
linter: couple fixes
7 years ago
Ethan Buchman
096dcb90e6
Merge pull request #59 from tendermint/develop
Develop
7 years ago
Ethan Buchman
e9c83b3005
version and changelog
7 years ago
Ethan Buchman
a55ec427bd
Merge pull request #56 from tendermint/memdb-fix-close
db: fix MemDB.Close
7 years ago
Ethan Buchman
0948343a6f
autofile: ensure file is open in Sync
7 years ago
Alexis Sellier
e9e6ec3a2c
Implement Key/Value on Iterator for GoLevelDB
This is needed because leveldb reuses the keys on each iteration.
In our wrapper, we copy the key/value so that it is safe to store.
7 years ago
Alexis Sellier
219d4e8427
Add IteratorPrefix method to Iterator
7 years ago
Alexis Sellier
296d223545
Add Release & Error methods to Iterator
We need this to properly support LevelDB backend, which needs
to be released if we don't want to leak memory.
7 years ago
Emmanuel Odeke
8be8127351
db: fix MemDB.Close
Fixes https://github.com/tendermint/tmlibs/issues/55
MemDB previously mistakenly set the actual DB pointer to nil
although that side effect is not visible to the outside world
since p is an identifier within the scope of just that function
call. However, @melekes and I had a discussion in which we
came to the conclusion that Close for an in-memory DB should
instead be a noop and not cause any data loss. See the
discussion on https://github.com/tendermint/tmlibs/pull/56 .
7 years ago
Ethan Buchman
9997e3a3b4
Merge pull request #54 from tendermint/develop
common: WriteFileAtomic use tempfile in current dir
7 years ago
Ethan Buchman
35838b6af8
changeloge, version
7 years ago
Ethan Buchman
3d98504c4c
common: WriteFileAtomic use tempfile in current dir
7 years ago
Zach Ramsay
2681f32bdd
circle: add metalinter to test
7 years ago
Zach Ramsay
3c57c24921
linting: next round of fixes
7 years ago
Zach Ramsay
d6e03d2368
linting: add to Makefile & do some fixes
7 years ago
Ethan Buchman
2130c329eb
Merge pull request #46 from tendermint/develop
v0.3.0
7 years ago
Ethan Buchman
bffe6744ec
changelog
7 years ago
Ethan Buchman
c3108f14c8
Merge pull request #52 from tendermint/573-wal-issues
call fsync after flush
7 years ago
Anton Kaliaev
d71d1394ec
call fsync after flush (Refs #573 )
short: flushing the bufio buffer is not enough to ensure data
consistency.
long:
Saving an entry to the WAL calls writeLine to append data to the
autofile group backing the WAL, then calls group.Flush() to flush that
data to persistent storage. group.Flush() in turn proxies to
headBuf.flush(), flushing the active bufio.BufferedWriter. However,
BufferedWriter wraps a Writer, not another BufferedWriter, and the way
it flushes is by calling io.Writer.Write() to clear the BufferedWriter's
buffer. The io.Writer we're wrapping here is AutoFile, whose Write
method calls os.File.Write(), performing an unbuffered write to the
operating system, where, I assume, it sits in the OS buffers awaiting
sync. This means that Wal.Save does not, in fact, ensure the saved
operation is synced to disk before returning.
7 years ago