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
dcb495d145
Make Memstore work with the QuadWriter
2014-08-04 01:56:49 -04:00
81b3bf9881
rename to quads
2014-08-04 00:45:32 -04:00
cedaac35d0
update to master
2014-08-04 00:39:19 -04:00
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
kortschak
b1a70d99aa
Simplify Nexter interface
...
This change allows a Nexter to be used in the same manner as a scanner
using a for graph.Next(it) {} construction.
It is important that graph.Next(it) and any associated it.Result() calls
operate on the same iterator.
2014-08-01 09:15:02 +09:30
kortschak
f8e28e066e
Rename NextResult -> NextPath
...
See discussion in #92 .
2014-08-01 07:27:16 +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
kortschak
274d9ef57e
Rename Provenance -> Label
...
's/Provenance/Label/g' 's/provenance/label/g' with human vetting.
2014-07-29 08:44:39 +09:30
kortschak
410202f3e0
Strip quoting angle in lone IRIRef terms
2014-07-29 08:33:35 +09:30
kortschak
7ce3a10d57
Evade quad.Quad String method
2014-07-29 08:32:49 +09:30
kortschak
79c1ba6c52
Properly check errors
2014-07-29 08:32:15 +09:30
0238332ca3
Merge pull request #85 from pbnjay/global_uids
...
fix non-pointer uintptr -> uint64, export NextUID
2014-07-28 11:50:12 -04:00
Jeremy Jay
a83b7ea367
fix non-pointer uintptr -> uint64, export NextUID
...
Allows other iterator implementations to use global UID namespace.
2014-07-28 11:26:33 -04:00
kortschak
41f6d3fd84
Temporarily use cquads only
...
I intend to make this configurable, but there is tight connection
between db.Load and db.Open that is getting in the way of that.
Testing on data set 30kmoviedata.cq.gz created by doing:
zcat 30kmoviedata.nq.gz | sed 's/[<>]//g' | gzip -c > 30kmoviedata.cq.gz
The following query is successful:
[{
"type": "/film/film",
"name": null,
"/film/film/directed_by": {
"name": "David Fincher"
},
"/film/film/starring": [{
"/film/performance/actor": {
"name": null
}
}]
}]
TODO: fix up naming for quads and make strict parsing an option.
2014-07-28 21:56:32 +09:30