Commit graph

85 commits

Author SHA1 Message Date
Allon Hadaya
35a96a3a81 Update in and out predicates to use unique iterator. 2015-04-26 17:49:51 -04:00
Allon Hadaya
f775756ad1 Alpha attempt at in and out predicates. 2015-04-26 17:49:51 -04:00
7fa20fc306 Merge pull request #237 from jf87/master
added example n-quad file for gremlin api description
2015-04-25 19:13:08 -04:00
Jonathan Fuerst
00cd5f22c6 Changed gremlin_test.go to use data/testdata.nq
gremlin_test.nt is not necessary anymore
-- actually it was not used before ;-)
2015-04-23 15:14:00 +02:00
Jonathan Fuerst
e851864576 changed to new testdata file that is now used throughout the documentation 2015-04-22 17:05:38 +02:00
5be1df3be3 initial mongo indexed linksto 2015-04-19 13:43:10 -04:00
Andrew Dunham
1990eba055 Stop calling glog.Fatal* in a bunch of places 2015-04-15 14:07:45 -07:00
67673b31f4 Clean up a little lint and some shadowed variables 2015-02-21 16:21:48 -05:00
kortschak
21c2d75d07 Make query/... interfaces more idiomatic
Also revert the data type returned by queries to interface{} (the change
made sense at the time).
2015-02-10 10:56:03 +10:30
c2fab568c7 Merge pull request #153 from mataevs/exceptop
Except/Not Operator for Gremlin.
2015-02-05 20:38:19 -05:00
8437520018 Merge pull request #162 from kortschak/issue160
Issue160
2014-10-15 03:30:37 -04:00
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
kortschak
d6191ba468 Add test for issue 160 2014-09-23 09:19:51 +09:30
kortschak
5484d7eb35 Type switch on otto.Value
Ugh, this is not documented in otto. Leaving a panic for future cases
where dynamic typing will jump out at us.

Fixes issue #160.
2014-09-23 08:56:14 +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