Skip to content

Bolt, Speedups and Fixes

Compare
Choose a tag to compare
@barakmich barakmich released this 26 Aug 23:13
· 1431 commits to master since this release

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