Commit graph

205 commits

Author SHA1 Message Date
cedaa9cdfa Merge branch 'master' into materializer_iterator 2014-08-06 14:31:10 -04:00
9fceb9d4b0 Merge pull request #100 from barakmich/fix_integration
Fix the integration test from crashing
2014-08-06 14:18:36 -04:00
11891f02a9 remove lead-in parsing test 2014-08-06 05:19:46 -04:00
8a08b59cc2 Merge branch 'fix_integration' into materializer_iterator 2014-08-06 05:06:10 -04:00
0c3e0381f3 Fix the integration test from crashing
Sessions are expected to only have one running query (perhaps this is a
bug). So we need to make a new session for each of the benchmark runs,
timing only the running part.
2014-08-06 05:03:20 -04:00
76efc2fcb7 redo data structure for sensibility 2014-08-06 04:07:30 -04:00
d102394836 bounds errors 2014-08-06 03:49:55 -04:00
24f57df859 fix overshoot and optimize better 2014-08-06 03:49:55 -04:00
09244ddd38 materialize implementation and and optimization 2014-08-06 03:49:55 -04:00
f441fc4bbf Merge pull request #99 from kortschak/concrete
Use concrete value for quad.Quad use
2014-08-06 01:38:00 -04:00
a43531b4ce Merge pull request #98 from iaincollins/master
Fixed typo in quick setup command
2014-08-05 16:05:08 -04:00
Iain Collins
6d676094ee Fixed typo in quick setup command 2014-08-05 17:08:09 +01:00
kortschak
2c6f0f7345 Clean up residual changes
Remove done TODOs and unnecessary helpers.
2014-08-05 23:27:13 +09:30
kortschak
6acfdcc5d6 Use concrete value for quad.Quad
Comparison of -short benchmarks in cayley.

$ benchcmp pointer.bench concrete.bench
benchmark                                   old ns/op     new ns/op	delta
BenchmarkNamePredicate                      1673276       1655093	-1.09%
BenchmarkLargeSetsNoIntersection            318985907     261499984	-18.02%
BenchmarkNetAndSpeed                        104403743     41516981	-60.23%
BenchmarkKeanuAndNet                        17309258      16857513	-2.61%
BenchmarkKeanuAndSpeed                      20159161      19282833	-4.35%

Comparison of pathological cases are not so happy.

benchmark                                   old ns/op       new ns/op		delta
BenchmarkVeryLargeSetsSmallIntersection     55269775527     246084606672	+345.24%
BenchmarkHelplessContainsChecker            23436501319     24308906949		+3.72%

Profiling the worst case:

Pointer:
Total: 6121 samples
    1973  32.2%  32.2%     1973  32.2% runtime.findfunc
     773  12.6%  44.9%      773  12.6% readvarint
     510   8.3%  53.2%      511   8.3% step
     409   6.7%  59.9%      410   6.7% runtime.gentraceback
     390   6.4%  66.2%      391   6.4% pcvalue
     215   3.5%  69.8%      215   3.5% runtime.funcdata
     181   3.0%  72.7%      181   3.0% checkframecopy
     118   1.9%  74.6%      119   1.9% runtime.funcspdelta
      96   1.6%  76.2%       96   1.6% runtime.topofstack
      76   1.2%  77.5%       76   1.2% scanblock

Concrete:
Total: 25027 samples
    9437  37.7%  37.7%     9437  37.7% runtime.findfunc
    3853  15.4%  53.1%     3853  15.4% readvarint
    2366   9.5%  62.6%     2366   9.5% step
    2186   8.7%  71.3%     2186   8.7% runtime.gentraceback
    1816   7.3%  78.5%     1816   7.3% pcvalue
    1016   4.1%  82.6%     1016   4.1% runtime.funcdata
     859   3.4%  86.0%      859   3.4% checkframecopy
     506   2.0%  88.1%      506   2.0% runtime.funcspdelta
     410   1.6%  89.7%      410   1.6% runtime.topofstack
     303   1.2%  90.9%      303   1.2% runtime.newstack
2014-08-05 23:25:02 +09:30
kortschak
1ae81e6d00 Fix typos missed 2014-08-05 22:37:08 +09:30
9944f0b574 Merge pull request #96 from kortschak/gremlin
Gremlin related changes
2014-08-04 00:36:10 -04:00
kortschak
6513685520 Fix lock contention 2014-08-04 12:32:43 +09:30
kortschak
ffb52af00b Rename GremlinTimeout -> Timeout
Given that there may be other Turing complete query interfaces
(particularly a Go query API), the timeout config should not be
specifically tied to gremlin.
2014-08-02 23:28:24 +09:30
kortschak
0fedecd392 Use time.Duration according to the time docs
Having a time.Duration measuring seconds is likely to cause problems at
a later stage. This change retains configuration compatibility while
adding idiomatic duration use.
2014-08-02 23:16:17 +09:30
kortschak
2d884f92e9 Name reduction 2014-08-02 22:58:53 +09:30
kortschak
bf3ac2be9e Destutter gremlin.GremlinResult 2014-08-02 22:58:33 +09:30
kortschak
15a45ef0d4 Clean up style 2014-08-02 22:45:19 +09:30
kortschak
8ccf842518 Improve error handling
Export the timeout kill error and use error instead of string in result
struct.
2014-08-02 22:14:24 +09:30
kortschak
fe9ca5ffcc Fix data race in gremlin timeout handling
Fixes issue #95.
2014-08-02 22:01:02 +09:30
cb177aa390 Merge pull request #92 from kortschak/names
Rename Check-ish -> Contains-ish
2014-07-31 16:58:53 -04:00
d54cd6a3d3 Merge pull request #90 from kortschak/stringer
Remove terminal newline from quad.Quad stringer
2014-07-31 16:38:57 -04:00
kortschak
1606e98d9f Rename Check-ish -> Contains-ish
Contains[*] indicates what the check is for.

[*] I considered Has/Have, but settled on Contains to avoid confusion
with the HasA iterator.
2014-07-31 15:29:42 +09:30
kortschak
b17334ea36 Remove terminal newline from quad.Quad stringer
This is the conventional implementation of a fmt.Stringer.

Also went through and fixed up some lint.
2014-07-31 11:43:20 +09:30
a81005ba21 Merge pull request #88 from kortschak/benchmarks
Add basic integration benchmarks
2014-07-30 20:17:50 -04:00
kortschak
d48d133cf1 Only run short tests on travis
Long tests are potentially very long, and may timeout internally. So
don't run them.
2014-07-31 09:42:56 +09:30
kortschak
09943c3eb6 Move sexp into query 2014-07-31 09:36:43 +09:30
kortschak
a6cf432313 Move query interface definitions into query 2014-07-31 08:52:24 +09:30
kortschak
38f7b79761 Allow short tests 2014-07-31 08:45:45 +09:30
kortschak
b4887e3c30 Update tests to use cquads parsed data 2014-07-31 08:38:31 +09:30
kortschak
1a0dd13735 Merge branch 'master' into benchmarks 2014-07-31 08:35:34 +09:30
kortschak
c4e4abbffc Add result validation 2014-07-31 08:33:18 +09:30
2673911c0f Merge pull request #89 from barakmich/build_versioning
Add automatic linker build versioning
2014-07-30 18:10:42 -04:00
8136f2abe9 fix usage to make more sense 2014-07-30 18:02:40 -04:00
kortschak
02672da9ad Fix typos 2014-07-31 07:32:38 +09:30
d2b1d64de3 Add version numbers and ARM build 2014-07-30 17:47:10 -04:00
kortschak
24253cd054 Add basic integration benchmarks
Currently only memstore is benchmarked and only with gremlin. No
checking of validity of results is performed.
2014-07-30 23:08:25 +09:30
kortschak
2dbbd17fe1 Merge branch 'declassify' into tip
Conflicts:
	graph/iterator/hasa_iterator.go
	graph/iterator/linksto_iterator.go
	graph/iterator/query_shape_test.go
	graph/leveldb/all_iterator.go
	graph/leveldb/iterator.go
	graph/leveldb/leveldb_test.go
	graph/memstore/triplestore_test.go
	graph/mongo/iterator.go
2014-07-30 16:40:37 +09:30
kortschak
d6f94be514 Base nexting on interface satisfaction
This is done unsubtlely at the moment and there is plenty of room for
optimisation of assertion location to prevent repeated reasserting as is
done now.
2014-07-30 16:06:46 +09:30
kortschak
b498a06a7b Intermediate step in removal of Base
We are marking types that will be Nexters and ResultNexters (I want a
better name for this one).
2014-07-30 15:21:48 +09:30
kortschak
375d953d93 Move current result handling out of Base
Delete majority of Base functionality.
2014-07-30 15:03:06 +09:30
kortschak
ee6d4c8db7 Move Size handling out of Base 2014-07-30 12:14:46 +09:30
kortschak
525230206a Move SubIterator handling out of Base 2014-07-30 12:11:14 +09:30
kortschak
189910c4b8 Remove Base dependency from Null 2014-07-30 12:08:44 +09:30
kortschak
01b7278c3a Move UID handling from Base
Also clean up some of the value creation code.
2014-07-30 11:44:58 +09:30
kortschak
1604dca737 Move tag handling out into graph.Tagger 2014-07-30 10:25:32 +09:30