GitHub user spmallette opened a pull request:
https://github.com/apache/incubator-tinkerpop/pull/269
TINKERPOP-575 RemoteGraph
https://issues.apache.org/jira/browse/TINKERPOP-575
This is a brute of a PR that introduces `RemoteGraph`. The tests execute as
part of gremlin-server with regular old `mvn clean install`. There's lots of
optimizations and improvements we could make all around, but we at least have
something fully functional at this point with this PR.
Docs generate nice...you can find the `RemoteGraph` docs here:
http://tinkerpop.apache.org/docs/3.2.0-SNAPSHOT/reference/#connecting-via-remotegraph
The upgrade docs are here:
http://tinkerpop.apache.org/docs/3.2.0-SNAPSHOT/upgrade/#_remotegraph
The developer/provider docs are here:
http://tinkerpop.apache.org/docs/3.2.0-SNAPSHOT/dev/provider/#remoteconnection-implementations
VOTE +1 - phew!
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/incubator-tinkerpop TINKERPOP-575
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-tinkerpop/pull/269.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #269
----
commit b74c8309d8799709b88a694f690bb60138947faf
Author: Stephen Mallette <[email protected]>
Date: 2016-03-04T16:10:10Z
Hooked together a basic but function infrastructure for traversal op
The traversal op allows a serialized Traversal to be shipped to Gremlin
Server which can then be deserialized for execution on the server. That
eliminates the need for the ScriptEngine compilation. This current commit is
really sketchy and just demonstrates operations. Needs a lot more work to be
fully functional.
commit 3608637f94918b950c0a3703647e018394ede37e
Author: Stephen Mallette <[email protected]>
Date: 2016-03-04T18:08:39Z
Added validation to Traversal op for Gremlin Server.
Validation ensured that a single alias was specified with a Traversal.
Without the alias it isn't possible to know how to attach the server side Graph
to the Traversal once it is deserialized.
commit 520a906ab637e7f7e21610bb4d961352f102d4aa
Author: Stephen Mallette <[email protected]>
Date: 2016-03-04T18:30:15Z
Minor test refactoring and uncommented tests that were ignored by accident.
commit ccbd1de5fb450fa20711ed30c2e774ed3543aef8
Author: Stephen Mallette <[email protected]>
Date: 2016-03-04T19:24:16Z
Minor refactoring on the Client.
Moved some methods around and added a submitAsync(Traversal).
commit f4dfc6a7f7e2b43b308877f49eb78098cea7ba2a
Author: Stephen Mallette <[email protected]>
Date: 2016-03-04T19:53:32Z
Better error handling when processing a Traversal on the server side.
commit ecdea1cdfcc2aeefc19a123ff30007ad6b9e7486
Author: Stephen Mallette <[email protected]>
Date: 2016-03-04T20:15:10Z
Added transaction management to the TraversalOpProcessor.
Open and close transactions on each request and do error handling as needed.
commit efba1d8bda15750262c84e099c54fc9342e1764d
Author: Stephen Mallette <[email protected]>
Date: 2016-03-07T14:32:28Z
Compile the traversal on the server first before trying to get Traversers.
Without compiling, the Traversal returns no Traversers.
commit a5579824dafe20456520242822b3002710768f4a
Author: Stephen Mallette <[email protected]>
Date: 2016-03-07T14:33:41Z
Refactored Client/Cluster to take Client.Settings
Client.Settings provides a more extensible manner in which to pass the
growing number of configurations to the Client instances.
commit a5e46801123f0b4c1fe04317ab86c5710007bda2
Author: Stephen Mallette <[email protected]>
Date: 2016-03-07T16:41:20Z
Added configuration to unroll traversers on the client-side.
commit f60a305bb3be0e2619a94905ad5a5bb9dd0b434f
Author: Stephen Mallette <[email protected]>
Date: 2016-03-10T21:07:36Z
Basics of the ServerStrategy are in place at ths point.
Traversals are getting sent to the server and results are returning. Have a
basic test that demonstrates operations. Still needs considerably work.
commit 088eda184e26bfa6a5b0f4f257a40778d8fd2119
Author: Stephen Mallette <[email protected]>
Date: 2016-03-10T21:41:43Z
Implemented basics for ServerGraph.
Unsure if this is working in full at this point, but a simple test seems to
pass.
commit cb6974474906103173b456bcc99ea0e09c9c1dd5
Author: Stephen Mallette <[email protected]>
Date: 2016-03-10T22:05:51Z
ServerGraph implementation is working more correctly now.
ServerStrategy now holds no state. Removed withServer() methods from
TraversalSource. ServerGraph can support multiple ServerConnection and Graph
implementations.
commit e479769613971e0793c358d097de7b340c4105c6
Author: Stephen Mallette <[email protected]>
Date: 2016-03-10T22:11:57Z
Improve validations in ServerStrategy.
commit 6d7714009069849673d8b6657280bedd5976b705
Author: Stephen Mallette <[email protected]>
Date: 2016-03-10T22:14:07Z
Add some javadoc to clarify ServerGraph.edges/vertices()
commit d9744d646ca37734b55471596843a54d1dc02869
Author: Stephen Mallette <[email protected]>
Date: 2016-03-10T22:23:32Z
Added some javadoc to ServerGraph.
commit 9c687aa993eda2320bfdf2f21b81edd334f109f1
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T11:16:39Z
Stopped using Stream to get an Iterator for DriverServerConnection.
commit 97f587a477232204843e3e7197751f2cb40a20c5
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T11:43:59Z
Improved method for constructing DriverServerConnection.
commit 341f9e4ebc80997528097a0ac70cd93bc0b63764
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T14:13:39Z
Allowed ServerGraph and Cluster to be configured with Configuration object.
commit 88a933b41f60c10041f27d741735d3d13654032a
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T14:16:21Z
Renamed package to "remote" from "server".
commit 77bcd0e4c45aa2c5c134f983dc382a6bd50684ae
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T14:18:22Z
Renamed "server" classes to "remote".
"Remote" is a better way to describe this feature as the traversal does not
need to be necessarily submitted to a "server" for processing.
commit 65aac790bf5b8281ee5708a29b36a5a373d23491
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T23:10:27Z
Renamed test so that it is actually an integration test.
Added generate-all.groovy for the RemoteServer integration testing.
commit 7a18c4a7851abbf24cac5700ef78a005e44de427
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T23:11:18Z
Made sure generate-all.groovy doesn't get into the distribution.
That script is just for tests.
commit 938f8fcbc2a30b2db776abae125be2c70b8e964a
Author: Stephen Mallette <[email protected]>
Date: 2016-03-11T23:13:03Z
Rework tests that used "graph" instance for asserts.
Remote tests really don't have access to a true "graph" because they use
RemoteGraph and therefore those methods won't work and tests failed.
commit ff0edac655123a66c70bca9a9340abdf43dd67ef
Author: Stephen Mallette <[email protected]>
Date: 2016-03-12T00:49:16Z
GroupStep can't hold transients or else RemoteGraph doesn't serialize
things properly.
commit 725d8798566d5ad3bf5158d889e24676de581270
Author: Stephen Mallette <[email protected]>
Date: 2016-03-12T00:50:08Z
Added LinkedList to GryoMapper.
commit ac804fccff18bd92b203b5d8659721e65f9fff00
Author: Stephen Mallette <[email protected]>
Date: 2016-03-12T00:51:15Z
Minor refactoring to get apply strategies more efficiently.
commit 3d2a8967e886f1530da6977529eb7e221c9233bd
Author: Stephen Mallette <[email protected]>
Date: 2016-03-12T00:52:10Z
Added a TestListener to notify GraphProviders of test start/stop activities.
commit 439857504cc53752ec99d725ecf06cd5f8cd11e8
Author: Stephen Mallette <[email protected]>
Date: 2016-03-12T00:53:01Z
Many changes to get the process suite working against RemoteGraph.
Lots of failing tests remain, but lots of tests passing too.
commit 3312e27de070f08e5939665032b7c88afcf82ef4
Author: Stephen Mallette <[email protected]>
Date: 2016-03-12T11:02:25Z
Add basic Features to RemoteGraph - disable transactions.
commit a2adbcecf0b93510700dd9ef775b97a75592354d
Author: Stephen Mallette <[email protected]>
Date: 2016-03-12T11:34:29Z
Refactored RemoteGraphProvider to speed up tests.
Cut the time down to about two-thirds of what it was by caching RemoteGraph
instances, clearing graphs on the server with a Client instance and re-using
the Cluster object.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---