Commit graph

40 commits

Author SHA1 Message Date
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
cb177aa390 Merge pull request #92 from kortschak/names
Rename Check-ish -> Contains-ish
2014-07-31 16:58:53 -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
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
525230206a Move SubIterator handling out of Base 2014-07-30 12:11:14 +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
401c58426f Create quads hierarchy
* Move nquads into quad.
* Create cquads simplified parser in quad.
* Move Triple (renamed Quad) to quad.

Also made sure mongo actually implements BulkLoader.
2014-07-28 21:36:22 +09:30
Jeremy Jay
a6dc5c9532 fix tests for new method names 2014-07-18 14:09:57 -04:00
Jeremy Jay
f9c60a5f30 update names per discussion at google/cayley#38 2014-07-18 11:17:57 -04:00
Jeremy Jay
d808d9347c move to registry interface for backends 2014-07-16 16:49:55 -04:00
Jeremy Jay
e780c1ceb9 Register should be RegisterIterator 2014-07-16 13:49:39 -04:00
kortschak
e39063e3ec Rename some methods and funcs since we are here
Very probably some of these can be made private.
2014-07-07 12:23:32 +09:30
kortschak
d1fdba1cbb Fix build
leveldb did s/GetApproximateSizes/SizeOf/
2014-07-07 12:14:47 +09:30
kortschak
1c181429da Purge goconvey and mock
These packages really impact on test readability with crazy action at a
distance. In addition to this removal of goconvey reduced the test run
time for leveldb on average by about 40-50%.
2014-07-05 22:00:46 +09:30
e4df9488e7 merge rename_fix 2014-07-03 16:02:54 -04:00
468d943039 dbIt to iter 2014-07-03 15:59:50 -04:00
70f622aefe Merge pull request #51 from barakmich/prefix_string
Prefix vs String for graph.Direction
2014-07-03 15:54:29 -04:00
50bd7d04ef convert to prefix byte 2014-07-03 13:32:58 -04:00
kortschak
cd46452b63 Enumerate iterator types 2014-07-03 09:57:31 +09:30
7b87e08e89 Convert to Prefix/String in graph.Triple 2014-07-02 19:56:16 -04:00
kortschak
447a835b93 Rename AddValue 2014-07-02 12:17:33 +09:30
kortschak
d87e227ff3 Rename TSVal 2014-07-02 12:13:15 +09:30
kortschak
a1453da84e Don't indirect map values
We already have reference behaviour, so this is not necessary.

This change highlighted fairly baroque architecture in mql that deserves
some attention; the use of channels is somewhat confusing.

Also rename LastResult to Result.
2014-07-02 12:08:49 +09:30
kortschak
b89d4f392c Reduce TripleStore interface names 2014-07-02 11:40:33 +09:30
kortschak
8576f66d20 Reduce graph.Iterator method names 2014-07-02 11:02:09 +09:30
kortschak
1768e593a8 Move iterators into separate package
Also reduce API exposure and use standard library more - and fix bugs I
previously introduces in mongo.
2014-07-01 09:21:32 +09:30
kortschak
0a03cec497 Replace string type with graph.Direction
This conversion is not complete as there are still uses of string
directions via the Direction.String method in leveldb.
2014-06-30 12:41:03 +09:30
kortschak
bed8d3813a Remove uses of container/list 2014-06-29 14:38:28 +09:30
82f3fc7bfa Canonicalize leveldb internal iterator 2014-06-28 16:47:37 -04:00
kortschak
d8b615f154 Remove unnecessary import renaming 2014-06-28 22:47:04 +09:30
kortschak
b1ad887c78 Canonicalise leveldb receiver names
Also remove redundant LevelDB infix missed previously.
2014-06-28 21:43:59 +09:30
kortschak
40f3363cde Destutter graph/... 2014-06-28 13:29:16 +09:30
kortschak
47c9752e5e Destutter filenames 2014-06-28 12:31:33 +09:30
kortschak
5c92e925fe Re-add leveldb and fix over-exhuberant .gitignore 2014-06-26 09:49:20 +09:30