Commit graph

215 commits

Author SHA1 Message Date
b52f9726ea update readme 2014-08-06 17:18:12 -04:00
b74cb142f0 Key/Keyer 2014-08-06 16:59:46 -04:00
408103b406 Merge branch 'materializer_iterator' 2014-08-06 15:59:24 -04:00
2b43185117 rename Hashable/Hasher 2014-08-06 15:58:37 -04:00
272829f3e9 Merge pull request #103 from barakmich/materializer_iterator
Fix Materializer iterator
2014-08-06 15:52:36 -04:00
4d9dd42dd8 comment 2014-08-06 15:51:56 -04:00
840c341274 Fix ID Lookup 2014-08-06 15:39:55 -04:00
6f1e46c2d8 Fix hashability for graph.Value 2014-08-06 15:34:30 -04:00
7e7371c3c8 Merge pull request #101 from barakmich/materializer_iterator
Add Materialize Iterator
2014-08-06 14:44:22 -04:00
2bec255b52 Copy refs and comment on Value 2014-08-06 14:37:37 -04:00
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