Bolt, Speedups and Fixes
Worth noting: you may have to reload your data in this version, as the database format has changed (hence the minor version bump). This is part of working with early software.
On the plus side, you'll notice quite a few benefits, including the new features.
For example, the memory benchmarks:
benchmark old ns/op new ns/op delta mult
BenchmarkNamePredicate 917680 1072457 +16.87% +1.17x
BenchmarkLargeSetsNoIntersection 176704664 48692651 -72.44% -3.63x
BenchmarkVeryLargeSetsSmallIntersection 32566448297 154770005 -99.52% -208.33x
BenchmarkHelplessContainsChecker 16041341849 40699233 -99.75% -400.00x
BenchmarkNetAndSpeed 71710442 16658337 -76.77% -4.30x
BenchmarkKeanuAndNet 13858313 12192151 -12.02% -1.14x
BenchmarkKeanuAndSpeed 16161303 15231229 -5.75% -1.06x
BenchmarkKeanuOther 3748121471 60429073 -98.39% -62.11x
BenchmarkKeanuBullockOther 300796920802 99996852 -99.97% -3333.33x
If you think those look good, they also get better with bigger backends. The big wins come from optimized iteration, which benefits all backends.
New in this release:
- Bolt backend for persistence
- Log-structure persistence
- Materialize iterator and related speedups
- Better memory backend (based on cznic/b)
- Better Gremlin session handling
- Underscore.js available in Gremlin
Shortlist of Bugfixes:
#9 Use boltdb in the backend
#70 Write-log and as_of_time and replication preparation
#93 Simplify the Nexter Interface
#107 127.0.0.1 by default
#106 #108 Use cquads in the web UI loader
#114 Materializer regression sparking odd results
#117 Data-race when handling many simultaneous queries
#125 Underscore.js available in Gremlin environment
#104 #129 Better REPL support (history, etc)
#141 Parser conformance for IRIRef
#145 Gremlin workers