Commit Graph

313 Commits

Author SHA1 Message Date
Anton Kaliaev
0f555f8d2c Merge pull request #71 from tendermint/69-read-impl-and-tests
[autofile] test GroupReader more extensively (Refs #69)
2017-11-04 00:02:02 -05:00
Anton Kaliaev
d8dd497069 fix metalinter errors 2017-10-30 13:01:18 -05:00
Anton Kaliaev
668698584d [autofile] test GroupReader more extensively (Refs #69) 2017-10-30 12:48:51 -05:00
Ethan Buchman
d9525c0fb6 Merge pull request #70 from tendermint/develop
Develop
2017-10-27 12:05:43 -04:00
Ethan Buchman
b14c996698 update changelog 2017-10-27 11:52:10 -04:00
Ethan Buchman
092eb701c7 cmn: Kill 2017-10-27 11:01:40 -04:00
Ethan Buchman
42145a82bd version and changelog 2017-10-26 20:57:33 -04:00
Ethan Buchman
b30e3ba26d Merge pull request #65 from tendermint/573-wal-issues-2
[autofile] Support for the new WAL format
2017-10-25 22:00:36 -04:00
Anton Kaliaev
0a652499ea Merge pull request #68 from tendermint/bugfix/gopath-executes-go
make GoPath a function
2017-10-25 11:12:13 +04:00
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
2017-10-25 11:01:52 +04:00
Ethan Buchman
93bd2081dd Merge pull request #66 from tendermint/codecov
add codecov
2017-10-24 23:05:32 -04:00
Anton Kaliaev
f99c73502c add codecov 2017-10-24 23:36:10 +04:00
Anton Kaliaev
103fee6192 add tests for autofile group Write, reader#Read 2017-10-24 23:20:17 +04:00
Anton Kaliaev
81591e288e fix metalinter warnings 2017-10-24 23:19:53 +04:00
Anton Kaliaev
d4c6a68e58 Merge pull request #64 from silasdavis/event-cache
Fix zeroed buffer getting flushed to the empty event
2017-10-24 14:16:18 +04:00
Silas Davis
0eff425bc7 fix zeroed buffer getting flushed to the empty event 2017-10-23 18:52:31 +01:00
Anton Kaliaev
21b2c26fb1 GroupReader#Read: return io.EOF if file is empty 2017-10-23 13:02:14 +04:00
Anton Kaliaev
c75ddd0fa3 return err if empty slice given 2017-10-23 13:02:02 +04:00
Anton Kaliaev
35e81018e9 add MinIndex method to Group 2017-10-20 13:09:51 +04:00
Anton Kaliaev
aace56018a add Read method to GroupReader 2017-10-20 12:38:45 +04:00
Anton Kaliaev
45095e83e7 add Write method to autofile/Group 2017-10-17 16:48:44 +04:00
Anton Kaliaev
498fb1134a write docs for autofile/group 2017-10-17 16:48:34 +04:00
Anton Kaliaev
8e5266a9ef Merge pull request #62 from tendermint/tests-fix
fix goLevelDBIterator
2017-10-17 16:06:41 +04:00
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)
2017-10-17 12:26:20 +04:00
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⚠️ infinite recursive call (SA5007) (megacheck)
db/go_level_db.go:135:17⚠️ infinite recursive call (SA5007) (megacheck)
db/mem_db.go:106:2⚠️ redundant return statement (S1023) (megacheck)
```

https://circleci.com/gh/tendermint/tmlibs/220

Also remove unnecessary return statement
2017-10-17 11:01:46 +04:00
Anton Kaliaev
cd2ad19db4 Merge pull request #57 from tendermint/feature/improve-db-interface
WIP: Improve db interface
2017-10-13 18:31:05 +04:00
Alexis Sellier
6b1e3bcee3 Add comments about copying 2017-10-13 13:03:43 +02:00
Anton Kaliaev
7166252a52 add codeowners file [ci skip] 2017-10-11 12:48:05 +04:00
Anton Kaliaev
35e38e8932 call go env GOPATH if env var is not found (Refs #60) 2017-10-11 12:42:54 +04:00
Ethan Buchman
7dd6b3d3f8 Merge pull request #53 from tendermint/metalinter
add metalinter to CI and address some lint warnings
2017-10-04 00:21:24 -04:00
Ethan Buchman
c8805fd7de metalinter fixes from review 2017-10-04 00:13:58 -04:00
Zach Ramsay
cf49ba876f linter: couple fixes 2017-10-03 17:23:14 -04:00
Ethan Buchman
096dcb90e6 Merge pull request #59 from tendermint/develop
Develop
2017-10-02 23:29:35 -04:00
Ethan Buchman
e9c83b3005 version and changelog 2017-10-02 23:26:45 -04:00
Ethan Buchman
a55ec427bd Merge pull request #56 from tendermint/memdb-fix-close
db: fix MemDB.Close
2017-10-02 22:38:19 -04:00
Ethan Buchman
0948343a6f autofile: ensure file is open in Sync 2017-10-02 14:17:16 -04:00
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.
2017-09-28 17:43:47 +02:00
Alexis Sellier
219d4e8427 Add IteratorPrefix method to Iterator 2017-09-28 17:35:01 +02:00
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.
2017-09-28 17:26:24 +02:00
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.
2017-09-26 15:29:51 -06:00
Ethan Buchman
9997e3a3b4 Merge pull request #54 from tendermint/develop
common: WriteFileAtomic use tempfile in current dir
2017-09-22 13:23:12 -04:00
Ethan Buchman
35838b6af8 changeloge, version 2017-09-22 13:22:02 -04:00
Ethan Buchman
3d98504c4c common: WriteFileAtomic use tempfile in current dir 2017-09-22 13:20:13 -04:00
Zach Ramsay
2681f32bdd circle: add metalinter to test 2017-09-22 12:35:52 -04:00
Zach Ramsay
3c57c24921 linting: next round of fixes 2017-09-22 12:14:27 -04:00
Zach Ramsay
d6e03d2368 linting: add to Makefile & do some fixes 2017-09-22 11:42:29 -04:00
Ethan Buchman
2130c329eb Merge pull request #46 from tendermint/develop
v0.3.0
2017-09-22 09:41:12 -04:00
Ethan Buchman
bffe6744ec changelog 2017-09-22 09:38:58 -04:00
Ethan Buchman
c3108f14c8 Merge pull request #52 from tendermint/573-wal-issues
call fsync after flush
2017-09-22 09:35:52 -04:00
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.
2017-09-21 16:11:28 -07:00