Commit graph

72 commits

Author SHA1 Message Date
Matei Chiperi
f86bddd50a Merge branch 'master' into exceptop 2014-10-02 16:08:51 -07:00
kortschak
e71d19c851 Don't retain results where the value is empty
Empty quad terms are not valid, so we should be able to safely drop any
results where the value is "".
2014-09-24 09:14:59 +09:30
Matei Chiperi
985161325e Changed triplestore to quadstore in the Except operator build_iterator code. 2014-09-08 17:13:05 -07:00
Matei Chiperi
a742ebcd46 Cleaned up code for pull request for an Except operator. 2014-09-08 17:09:42 -07:00
Matei Chiperi
a718130f4a Merge branch 'master' of https://github.com/google/cayley into operators
Conflicts:
	query/gremlin/build_iterator.go
2014-09-08 17:04:48 -07:00
kortschak
62013d3dfc Replace DebugString with Describe
This change makes tree description completely open to mechanical
analysis and ensures consistency between description formats for each of
the iterator types.

Renamed StatsContainer.(Kind -> Type) for consistency.
2014-09-05 09:32:09 +09:30
Matei Chiperi
55d235bd55 Added Gremlin tests for the Except operator. 2014-08-28 18:56:06 -07:00
Matei Chiperi
b97e6782ff Changed identifier "not" to "except" for iterator builder. 2014-08-28 17:52:58 -07:00
Matei Chiperi
a5fd1905d0 Improvements to the Not iterator:
- Pass the all iterator as an argument
 - Fixed next method (call all.Next() ).
2014-08-28 16:02:21 -07:00
kortschak
bf6412b55d Run go vet
Bugs found.
2014-08-28 12:22:37 +09:30
kortschak
484bf145a8 Remove non-documentation lint
Because of extensive nature of changes, tested all three non-memstore
backends - passed.
2014-08-28 11:51:39 +09:30
Matei Chiperi
def70ca12e Exposed Except (alias Difference) operator in Gremlin API. 2014-08-27 14:48:30 -07:00
Matei Chiperi
5d4e22498d Converted the Not operator to a complement operator in terms of functionality. 2014-08-27 13:42:56 -07:00
kortschak
443a091b72 Rename triple entities were relevant 2014-08-27 21:27:01 +09:30
Matei Chiperi
a0318aa7b2 Added comments for the loop iterator. 2014-08-26 12:26:54 -07:00
Matei Chiperi
d9b67c8335 Added comments for the not operator. 2014-08-26 11:59:14 -07:00
Matei Chiperi
d3bc8c1736 First implementations of loop and not operator for Cayley Gremlin. 2014-08-26 11:19:15 -07:00
kortschak
4345604a39 Inconsequential whitespace changes 2014-08-26 14:36:42 +09:30
kortschak
1faa8b1727 Fix build 2014-08-26 14:30:10 +09:30
kortschak
73dbfc9461 Fix worker termination handling
Fixes issue #102.
2014-08-26 14:20:37 +09:30
kortschak
62e7037f20 Remove unnecessary indirection 2014-08-26 11:19:22 +09:30
kortschak
ab685cfe04 Mark limit as unused in gremlin and SEXP
Used in SEXP. Currently there appears to be no way to limit the number
of query returns from MQL.
2014-08-26 10:17:44 +09:30
kortschak
8df21cd8d9 Refactor work out into worker type 2014-08-26 10:12:44 +09:30
kortschak
95170eb8ed Prepare gremlin for introduction of a worker type 2014-08-25 15:57:40 +09:30
720a80a51f Merge pull request #126 from barakmich/replcrash
Temporarily fix REPL crash by locking the kill channel
2014-08-20 14:01:25 -04:00
8e16543da3 Merge branch 'master' into replcrash 2014-08-20 13:44:24 -04:00
f5f0ed7173 Import gremlin, v=2 for more cases 2014-08-20 13:39:26 -04:00
c1ff6ce1aa lock s.kill, send done signal 2014-08-16 18:03:05 -04:00
f605e1138d kortschak's fix 2014-08-16 16:52:09 -04:00
e453385d5e explain logging and weight fixing 2014-08-16 05:19:16 -04:00
3770190db5 test clean 2014-08-10 20:10:00 -04:00
kortschak
62785d25c2 Merge branch 'master' into nexter
Conflicts:
	graph/leveldb/all_iterator.go
	graph/leveldb/iterator.go
	graph/memstore/triplestore.go
	query/gremlin/finals.go
2014-08-07 06:57:45 +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
6513685520 Fix lock contention 2014-08-04 12:32:43 +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
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
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
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
1604dca737 Move tag handling out into graph.Tagger 2014-07-30 10:25:32 +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