Removed conflicting non-indy groovy core dependency
Bumped jython-standalone 2.7.1
Added a delegate to the Gremlin.Net driver that can be used to configure the WebSocket connection.
SSL security enhancements
Added Gremlin version to Gremlin Server startup logging output.
Fixed problem with Gremlin Server sometimes returning an additional message after a failure.
Allowed spaces in classpath for gremlin-server.bat
.
Fixed bug in traversals that used Python lambdas with strategies in gremlin-python
.
Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts.
Added an system error code for failed plugin installs for Gremlin Server -i
option.
Fixed bug in keep-alive requests from over-queuing cancelled jobs.
Match numbers in choose()
options using NumberHelper
(match values, ignore data type).
Added support for GraphSON serialization of Date
in Javascript.
Added synchronized Map
to Gryo 1.0 registrations.
Added Triple
to Gryo 1.0 registrations.
Added support for Double.NaN
, Double.POSITIVE_INFINITY
and Double.NEGATIVE_INFINITY
.
Improved escaping of special characters in strings passed to the GroovyTranslator
.
Added Cluster
configuration option to set a custom validation script to use to test server connectivity in the Java driver.
Improved ability of GroovyTranslator
to handle more types supported by GraphSON.
Improved ability of GroovyTranslator
to handle custom types.
Added better internal processing of Column
in by(Function)
.
Added hasNext()
support on Traversal
for gremlin-python
.
Added support for additional extended types in Gremlin.Net with decimal
, TimeSpan
, BigInteger
, byte
, byte[]
, char
and short
.
Fixed bug in Java driver where an disorderly shutdown of the server would cause the client to hang.
Added a dotnet template project that should make it easier to get started with Gremlin.Net.
Removed ThreadInterruptCustomizerProvider
from documentation as a way to timeout.
Changed behavior of withRemote()
if called multiple times so as to simply throw an exception and not perform the side-effect of auto-closing.
Added Docker images for Gremlin Console and Gremlin Server.
Fixed bug in branch()
where reducing steps as options would produce incorrect results.
Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors.
Improved performance of TraversalVertexProgram
and related infrastructure.
Checked web socket state before closing connection in the .NET driver.
Deprecated BulkLoaderVertexProgram
and related infrastructure.
Deprecated BulkDumperVertexProgram
with the more aptly named CloneVertexProgram
.
Added createGratefulDead()
to TinkerFactory
to help make it easier to try to instantiate that toy graph.
Added identifiers to edges in the Kitchen Sink toy graph.
Ordered the loading of plugins in the Gremlin Console by their position in the configuration file.
Refactored the Gremlin Server integration testing framework and streamlined that infrastructure.
Logged the seed used in initializing Random
for tests.
Fixed bug in GroovyTranslator
that didn’t properly handle empty Map
objects.
Added concrete configuration methods to SparkGraphComputer
to make a more clear API for configuring it.
Fixed a bug in TinkerGraphCountStrategy
, which didn’t consider that certain map steps may not emit an element.
Fixed a bug in JavaScript GLV where DriverRemoteConnection close() method didn’t returned a Promise instance.
Bumped to Jackson 2.9.6.
Sasl Plain Text Authentication added to Gremlin Javascript.
Ability to send scripts to server added to Gremlin Javascript.
Translator class added to Gremlin Javascript to translate bytecode to script clientside.
TINKERPOP-1898 Issue with bindings in strategies and lambdas
TINKERPOP-1933 gremlin-python maximum recursion depth exceeded on large responses
TINKERPOP-1958 TinkerGraphCountStrategy can return wrong counts
TINKERPOP-1961 Duplicate copies of images directory in docs
TINKERPOP-1962 GroovyTranslator doesn’t handle empty maps
TINKERPOP-1963 Use of reducing step in choose()
TINKERPOP-1972 inject() tests are throwing exceptions in .NET GLV tests
TINKERPOP-1978 Check for Websocket connection state when retrieved from Connection Pool missing
TINKERPOP-1988 minor error in documentation
TINKERPOP-1999 [Java][gremlin-driver] Query to a remote server via the websocket client hangs indefinitely if the server becomes unavailable
TINKERPOP-2005 Intermittent NullPointerException in response handling
TINKERPOP-2009 Pick.any and Pick.none should be exposed in Gremlin-JavaScript
TINKERPOP-2030 KeepAlive task executed for every Connection.write call
TINKERPOP-2032 Update jython-standalone
TINKERPOP-2044 Cannot reconnect to Azure cosmos host that becomes available again
TINKERPOP-1113 GraphComputer subclasses should support native methods
TINKERPOP-1365 Log the seed used to initialize Random in tests
TINKERPOP-1595 Go through TraversalVertexProgram with a profile and optimize.
TINKERPOP-1778 Do not promote timedInterrupt option for Gremlin Server script processing
TINKERPOP-1780 Add authentication tests for gremlin-python
TINKERPOP-1836 .NET sample project
TINKERPOP-1841 Include Python GLV tests on TravisCI
TINKERPOP-1897 Provide Docker images of Gremlin Server and Console
TINKERPOP-1945 Add support for extended GraphSon types to Gremlin.net
TINKERPOP-1951 gremlin-server.bat doesn’t support paths containing spaces
TINKERPOP-1959 Provide a way to submit scripts to the server in gremlin-javascript
TINKERPOP-1968 Refactor elements of Gremlin Server testing
TINKERPOP-1976 Include Computer tests for GLVs
TINKERPOP-1977 Gremlin-JavaScript: Support SASL authentication
TINKERPOP-1985 Update position on bulk loading
TINKERPOP-1989 Preserve order that plugins are applied in Gremlin Console
TINKERPOP-1995 DriverRemoteConnection close() method returns undefined
TINKERPOP-2011 Use NumberHelper on choose()
TINKERPOP-2012 Target .NET Standard 2.0 for Gremlin.Net
TINKERPOP-2015 Allow users to configure the WebSocket connections
TINKERPOP-2016 Upgrade Jackson FasterXML to 2.9.5 or later to fix security vulnerability
TINKERPOP-2017 Check for Column in by()
TINKERPOP-2022 Cluster SSL should trust default ca certs by default
TINKERPOP-2023 Gremlin Server should not create self-signed certs (breaking)
TINKERPOP-2024 Gremlin Server Application archetype should connect via withRemote
TINKERPOP-2025 Change to SHA-256/512 and drop SHA-1 for releases
TINKERPOP-2026 Gremlin.Net.Driver should check ClientWebSocket.State before closing
TINKERPOP-2034 Register synchronizedMap() with Gryo
TINKERPOP-2035 Gremlin-JavaScript: Pass custom headers to the websocket connection
TINKERPOP-2040 Improve flexibility of GroovyTranslator to handle custom types
TINKERPOP-2045 Remove non-indy groovy dependencies
TINKERPOP-2055 Provide support for special number cases like Infinity in GraphSON
TINKERPOP-2056 Use NumberHelper in Compare
Fixed bug where path history was not being preserved for keys in mutations.
Bumped to httpclient 4.5.5.
Bumped to Groovy 2.4.15 - fixes bug with Lambda
construction.
Improved performance of GraphSON deserialization of Bytecode
.
Improved performance of traversal construction.
TINKERPOP-1755 No docs for ReferenceElements
TINKERPOP-1912 Remove MD5 checksums
TINKERPOP-1934 Bump to latest version of httpclient
TINKERPOP-1936 Performance enhancement to Bytecode deserialization
TINKERPOP-1944 JavaScript GLV: DriverRemoteConnection is not exported in the root module
TINKERPOP-1950 Traversal construction performance enhancements
TINKERPOP-1953 Bump to Groovy 2.4.15
Added a Lambda
class to Gremlin.Net that makes it possible to use Groovy and Python lambdas with Gremlin.Net.
Enums are now represented as classes in Gremlin.Net which allows to use them as arguments in more steps.
Bumped to Groovy 2.4.14.
Added checkAdjacentVertices
option to SubgraphStrategy
.
Modified GremlinDslProcessor
so that it generated the getAnonymousTraversalClass()
method to return the DSL version of __
.
Added the "Kitchen Sink" test data set.
Fixed deserialization of P.not()
for GraphSON.
Bumped to Jackson 2.9.4.
Improved performance of JavaTranslator
by caching reflected methods required for traversal construction.
Ensure that RemoteStrategy
is applied before all other DecorationStrategy
instances.
Added idleConnectionTimeout
and keepAliveInterval
to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients.
Fixed a bug where lambdas in gremlin-python
would trigger a failure if steps using python-only symbols were present (such as as_()
).
Fixed a bug in NumberHelper
that led to wrong min/max results if numbers exceeded the Integer limits.
Delayed setting of the request identifier until RequestMessage
construction by the builder.
ReferenceElement
avoids UnsupportedOperationException
handling in construction thus improving performance.
Improved error messaging for failed serialization and deserialization of request/response messages.
Fixed handling of Direction.BOTH
in Messenger
implementations to pass the message to the opposite side of the StarGraph
.
Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs.
Added IndexedTraverserSet
which indexes on the value of a Traverser
thus improving performance when used.
Utilized IndexedTraverserSet
in TraversalVertexProgram
to avoid extra iteration when doing Vertex
lookups.
Bumped to Netty 4.0.56.Final.
Fixed .NET GraphSON serialization of P.Within()
and P.without()
when passing a Collection
as an argument.
Fixed a bug in Gremlin Console which prevented handling of gremlin.sh
flags that had an "=" between the flag and its arguments.
Fixed bug where SparkMessenger
was not applying the edgeFunction
from MessageScope
.
Fixed a bug in ComputerAwareStep
that didn’t handle reset()
properly and thus occasionally produced some extra traversers.
Removed TraversalPredicate
class in Gremlin.Net. It is now included in the P
class instead.
TINKERPOP-1053 installed plugins are placed in a directory relative to where gremlin.sh is started
TINKERPOP-1509 Failing test case for tree serialization
TINKERPOP-1738 Proper functioning of GraphSONReader depends on order of elements in String representation
TINKERPOP-1758 RemoteStrategy should be before all other DecorationStrategies.
TINKERPOP-1855 Update Rexster links
TINKERPOP-1859 Complex instance of P not serializing to bytecode properly
TINKERPOP-1860 valueMap(True) result in error in gremlin-python
TINKERPOP-1862 TinkerGraph VertexProgram message passing doesn’t work properly when using Direction.BOTH
TINKERPOP-1867 union() can produce extra traversers
TINKERPOP-1872 Apply edgeFunction in SparkMessenger
TINKERPOP-1873 min() and max() work only in the range of Integer values
TINKERPOP-1874 P does not appear to be serialized consistently in GraphSON
TINKERPOP-1879 Gremlin Console does not resepect equal sign for flag argument assignments
TINKERPOP-1880 Gremlin.NET Strong name signature could not be verified. (HRESULT: 0x80131045)
TINKERPOP-1883 gremlinpython future will never return
TINKERPOP-1890 getAnonymousTraversalClass() is not being generated for Java DSLs
TINKERPOP-1891 Serialization of P.not() for gremlin-javascript
TINKERPOP-1892 GLV test failures for .NET
TINKERPOP-1894 GraphSONMessageSerializerV2d0 fails to deserialize valid P.not()
TINKERPOP-1896 gremlin-python lambdas error
TINKERPOP-1907 Fix failing GLV test for withSack() in .NET
TINKERPOP-1917 gx:BigDecimal serialization broken in Gremlin.Net on systems with ',' as decimal separator
TINKERPOP-1918 Scenarios fail because of wrong numerical types
TINKERPOP-1919 Gherkin runner doesn’t work with P.And() and P.Or() in Gremlin.Net
TINKERPOP-1920 Tests fail because P.Within() arguments are wrapped in an array in Gremlin.Net
TINKERPOP-1922 Gherkin features fail that contain P.not() in Gremlin.Net
TINKERPOP-1357 Centrality Recipes should mention pageRank and OLAP.
TINKERPOP-1489 Provide a Javascript Gremlin Language Variant
TINKERPOP-1586 SubgraphStrategy in OLAP
TINKERPOP-1726 Support WebSockets ping/pong keep-alive in Gremlin server
TINKERPOP-1842 iterate() missing in terminal steps documentation
TINKERPOP-1850 Range step has undocumented special values
TINKERPOP-1854 Support lambdas in Gremlin.Net
TINKERPOP-1857 GLV test suite consistency and completeness
TINKERPOP-1863 Delaying the setting of requestId till the RequestMessage instantiation time
TINKERPOP-1868 Support inject source step in Gremlin.Net
TINKERPOP-1870 n^2 synchronious operation in OLAP WorkerExecutor.execute() method
TINKERPOP-1877 Add new graph data for specialized testing scenarios
TINKERPOP-1884 Bump to Netty 4.0.56.Final
TINKERPOP-1885 Various Gremlin.Net documentation updates
TINKERPOP-1901 Enable usage of enums in more steps in Gremlin.Net
TINKERPOP-1908 Bump to Groovy 2.4.14
TINKERPOP-1911 Refactor JavaTranslator to cache all reflective calls
Added core GraphSON classes for Gremlin-Python: UUID
, Date
, and Timestamp
.
Documented the recommended method for constructing DSLs with Gremlin.Net.
Provided a method to configure detachment options with EventStrategy
.
Fixed a race condition in TinkerIndex
.
Fixed bug in handling of the long forms of -e
and -i
(--execute
and --interactive
respectively) for Gremlin Console.
Fixed bug in LambdaRestrictionStrategy
where traversals using Lambda
scripts weren’t causing the strategy to trigger.
Improved error messaging for bytecode deserialization errors in Gremlin Server.
Fixed an ArrayOutOfBoundsException
in hasId()
for the rare situation when the provided collection is empty.
Bumped to Netty 4.0.53
TraversalVertexProgram
profile()
now accounts for worker iteration in GraphComputer
OLAP.
Returned the Builder
instance from the DetachedEdge.Builder
methods of setOutE
and setOutV
.
Added test framework for GLVs.
Fixed bug in TraversalHelper.replaceStep()
where the step being replaced needed to be removed prior to the new one being added.
Added alias support in the .NET DriverRemoteConnection
.
Added a test for self-edges and fixed Neo4jVertex
to provided repeated self-edges on BOTH
.
Better respected permissions on the plugins.txt
file and prevented writing if marked as read-only.
Added getters for the lambdas held by LambdaCollectingBarrierStep
, LambdaFlatMapStep
and LambdaSideEffectStep
.
Fixed an old hack in GroovyTranslator
and PythonTranslator
where Elements
were being mapped to their id only.
Fixed an "attachement"-bug in InjectStep
with a solution generalized to StartStep
.
Truncate the script in error logs and error return messages for "Method code too large" errors in Gremlin Server.
Fixed a bug in LambdaRestrictionStrategy
where it was too eager to consider a step as being a lambda step.
ReferenceVertex
was missing its label()
string. ReferenceElement
now supports all label handling.
Fixed a bug where bytecode containing lambdas would randomly select a traversal source from bindings.
Deprecated GremlinScriptEngine.eval()
methods and replaced them with new overloads that include the specific TraversalSource
to bind to.
Added GraphHelper.cloneElements(Graph original, Graph clone)
to the gremlin-test
module to quickly clone a graph.
Added GremlinDsl.AnonymousMethod
annotation to help provide explicit types for anonymous methods when the types are not easily inferred.
Bumped to GMavenPlus 1.6.
Added better error message for illegal use of repeat()
-step.
Fixed a bug in RangeByIsCountStrategy
that led to unexpected behaviors when predicates were used with floating point numbers.
Bumped to Jackson 2.8.10.
Deprecated MutationListener.vertexPropertyChanged()
method that did not use VertexProperty
and added a new method that does.
Added an EmbeddedRemoteConnection
so that it’s possible to mimic a remote connection within the same JVM.
Supported interruption for remote traversals.
Allow the :remote
command to accept a Cluster
object defined in the console itself.
The Console’s plugin.txt
file is only updated if there were manually uninstalled plugins.
Fixed a bug in MatchStep
where mid-traversal where()
variables were not being considered in start-scope.
Generalized MatchStep
to locally compute all clauses with barriers (not just reducing barriers).
Ensured that plugins were applied in the order they were configured.
Fixed a bug in Neo4jGremlinPlugin
that prevented it from loading properly in the GremlinPythonScriptEngine
.
Fixed a bug in ComputerVerificationStrategy
where child traversals were being analyzed prior to compilation.
Fixed a bug that prevented Gremlin from ordering lists and streams made of mixed number types.
Fixed a bug where keepLabels
were being corrupted because a defensive copy was not being made when they were being set by PathRetractionStrategy
.
Cancel script evaluation timeout in GremlinExecutor
when script evaluation finished.
Added a recipe for OLAP traversals with Spark on YARN.
Added spark-yarn
dependencies to the manifest of spark-gremlin
.
TINKERPOP-1650 PathRetractionStrategy makes Match steps unsolvable
TINKERPOP-1731 Docker build does not appear to work for gremlin-dotnet
TINKERPOP-1745 Gremlin .NET: Use DateTimeOffset instead of DateTime to represent g:Date
TINKERPOP-1753 OrderStep not able to order by non-integer numbers
TINKERPOP-1760 OLAP compilation failing around ConnectiveStrategy
TINKERPOP-1761 GremlinExecutor: Timeout future not cancelled on successful script evaluation
TINKERPOP-1762 Make MatchStep analyze mid-clause variables for executing ordering purposes.
TINKERPOP-1764 Generalize MatchStep to localize all barriers, not just reducing barriers.
TINKERPOP-1766 Gremlin.Net: Closed connections should not be re-used
TINKERPOP-1782 RangeByIsCountStrategy doesn’t handle floating point numbers properly
TINKERPOP-1789 Reference elements should be represented by id and label (breaking)
TINKERPOP-1790 GraphSON 3.0 doc updates
TINKERPOP-1791 GremlinDsl custom step with generic end type produces invalid code in __.java
TINKERPOP-1792 Random TraversalSource Selection in GremlinScriptEngine
TINKERPOP-1795 Getting Lambda comparator message for .profile() step
TINKERPOP-1796 Driver connection pool SSL properties missing
TINKERPOP-1797 LambdaRestrictionStrategy and LambdaMapStep in by()
-modulation.
TINKERPOP-1798 MutationListener.vertexPropertyChanged oldValue should be a VertexProperty
TINKERPOP-1801 OLAP profile() step return incorrect timing
TINKERPOP-1802 hasId() fails for empty collections
TINKERPOP-1803 inject() doesn’t re-attach with remote traversals
TINKERPOP-1819 documentation query and description mismatch
TINKERPOP-1821 Consistent behavior of self-referencing edges
TINKERPOP-1825 Gremlin .NET: Constant() step has incorrect parameter defined
TINKERPOP-1830 Race condition in Tinkergraph index creation
TINKERPOP-1832 TraversalHelper.replaceStep sets previousStep to the wrong step
TINKERPOP-1846 LambdaRestrictionStrategy not triggering for Lambda scripts
TINKERPOP-1848 Fix g:Date assertion in python tests
TINKERPOP-1851 Gremlin long options for -e and -i are not working properly
TINKERPOP-1661 Docker-built documentation does not always point locally
TINKERPOP-1725 DotNet GLV: Make traversal generation deterministic
TINKERPOP-1734 DSL for Gremlin .NET
TINKERPOP-1746 Better error message on wrong ordering of emit()/until()/has()
TINKERPOP-1752 Gremlin.Net: Generate completely type-safe methods
TINKERPOP-1756 Provide a way to easily mock a RemoteConnection for tests
TINKERPOP-1759 Improve hashcode and equals for Traverser implementations
TINKERPOP-1768 Bump to Jackson 2.8.10
TINKERPOP-1770 Remote traversal timeout
TINKERPOP-1771 gremlin.bat doesn’t support paths containing spaces
TINKERPOP-1779 Bump to GMavenPlus 1.6
TINKERPOP-1784 Gremlin Language Test Suite
TINKERPOP-1785 Gremlin.Net should be strong-name signed
TINKERPOP-1786 Recipe and missing manifest items for Spark on Yarn
TINKERPOP-1787 Allow :remote command to accept a user defined Cluster instance
TINKERPOP-1806 Consistently use Gremlin.Net instead of Gremlin-DotNet
TINKERPOP-1807 Gremlin-Python doesn’t support GraphSON types g:Date, g:Timestamp and g:UUID
TINKERPOP-1808 Add ability to get the consumer in LambdaSideEffectStep
TINKERPOP-1811 Improve error reporting for serialization errors between gremlin-python and gremlin-server
TINKERPOP-1812 ProfileTest assumes that graph implementations will not add their own steps
TINKERPOP-1813 Subgraph step requires the graph API
TINKERPOP-1814 Some process tests require the graph API
TINKERPOP-1820 Include .NET GLV tests on TravisCI
TINKERPOP-1824 Update netty version to 4.0.52
TINKERPOP-1827 Gremlin .NET: Test Suite Runner
TINKERPOP-1829 Improve flexibility of detachment for EventStrategy
TINKERPOP-1833 DetachedEdge.Builder#setInV and setOutV doesn’t return the builder
TINKERPOP-1835 Bump Netty 4.0.53
TINKERPOP-1837 Gremlin .NET: Provide type coercion between IDictionary<K, V> instances
This release also includes changes from 3.1.8.
Bumped to Netty 4.0.50
Registered HashMap$TreeNode
to Gryo.
Fixed a lambda-leak in SackValueStep
where BiFunction
must be tested for true lambda status.
Fixed a bug in RangeByIsCountStrategy
that broke any ConnectiveStep
that included a child traversal with an optimizable pattern.
Allowed access to InjectStep.injections
for TraversalStrategy
analysis.
Exceptions that occur during result iteration in Gremlin Server will now return SCRIPT_EVALUATION_EXCEPTION
rather than SERVER_ERROR
.
AddEdgeStep
attaches detached vertices prior to edge creation.
Added graph element GraphSON serializers in Gremlin-Python.
Initialization scripts for Gremlin Server will not timeout.
Added Gremlin.Net.
ProfileTest
is now less stringent about assertions which will reduce burdens on providers.
GremlinExecutor
begins timeout of script evaluation at the time the script was submitted and not from the time it began evaluation.
Added Gremlin.Net.
ReferenceFactory
and DetachedFactory
now detach elements in collections accordingly.
Deprecated GryoLiteMessageSerializerV1d0
in favor of HaltedTraverserStrategy
.
Deprecated the useMapperFromGraph
configuration option for Gremlin Server serializers.
JavaTranslator
is now smart about handling BulkSet
and Tree
.
Added annotations to the traversal metrics pretty print.
EdgeOtherVertexStep
is no longer final and can be extended by providers.
EdgeVertexStep
is no longer final and can be extended by providers.
Deprecated Transaction.submit(Function)
.
Fixed HADOOP_GREMLIN_LIBS
parsing for Windows.
Improved GraphSON serialization performance around VertexProperty
.
Changed some tests in EventStrategyProcessTest
which were enforcing some unintended semantics around transaction state.
Added WsAndHttpChannelizer and SaslAndHttpBasicAuthenticationHandler to be allow for servicing Http and Websocket requests to the same server
Added deep copy of Bytecode
to DefaultTraversal.clone()
.
TINKERPOP-1385 Refactor Profiling test cases
TINKERPOP-1679 Detached side-effects aren’t attached when remoted
TINKERPOP-1683 AbstractHadoopGraphComputer on Windows
TINKERPOP-1691 Some EventStrategyProcessTest assume element state is synced in memory
TINKERPOP-1704 XXXTranslators are not being respective of BulkSet and Tree.
TINKERPOP-1727 Bytecode object shallow copied when traversals are cloned
TINKERPOP-1742 RangeByIsCountStrategy fails for ConnectiveSteps
TINKERPOP-1743 LambdaRestrictionStrategy does not catch lambdas passed to sack()
TINKERPOP-1744 Gremlin .NET: Exception from sync execution gets wrapped in AggregateException
TINKERPOP-741 Remove Options For Transaction Retry
TINKERPOP-915 Gremlin Server supports REST and Websockets simultanteously
TINKERPOP-920 Test case needed for ensuring same cardinality for key.
TINKERPOP-1552 C# Gremlin Language Variant
TINKERPOP-1669 EdgeVertexStep should be designed for extension
TINKERPOP-1676 Improve GraphSON 2.0 Performance (breaking)
TINKERPOP-1688 Include TraversalMetrics annotation in pretty print
TINKERPOP-1694 Deprecate useMapperFromGraph
TINKERPOP-1701 HaltedTraverserStrategy should recurse into collections for detachment.
TINKERPOP-1703 Make EdgeOtherVertexStep non-final
TINKERPOP-1708 Add a "Note on Scopes" document
TINKERPOP-1709 Add a list of all the steps that support by()/from()/to()/as()/option()
TINKERPOP-1710 Add a note on tree() by-modulation and uniqueness of tree branches.
TINKERPOP-1714 Gremlin Server scriptEvaluationTimeout should take into account request arrival time
TINKERPOP-1718 Deprecate GryoLiteMessageSerializerV1d0
TINKERPOP-1748 Callout comments break code snippets
TINKERPOP-1749 Bump to Netty 4.0.50
This release also includes changes from 3.1.7.
Fixed folding of multiple hasId()
steps into GraphStep
.
Added string performance options to StarGraph
.
Fixed a bug in until(predicate)
where it was actually calling emit(predicate)
.
Fixed inconsistency in GraphSON serialization of Path
where properties of graph elements were being included when serialized.
Improved performance and memory usage of GraphSON when serializing TinkerGraph
and graph elements.
Removed use of stream()
in DetachedEdge
and DetachedVertex
.
Deprecated a constructor in DetachedEdge
that made use of Pair
in favor of a new one that just uses the objects that were in the Pair
.
Improved error messaging on the g.addV(Object…)
when passing an invalid arguments.
Reduced memory usage for TinkerGraph deserialization in GraphSON by streaming vertices and edges.
Added the gremlin-archetype-dsl
to demonstrate how to structure a Maven project for a DSL.
Developed and documented patterns for Domain Specific Language implementations.
Removed the Groovy dependency from gremlin-python
and used Groovy Templates and the gmavenplus-plugin
to generate the python GLV classes.
Now using Groovy […]
map notation in GroovyTranslator
instead of new LinkedHashMap(){{ }}
.
Maintained type information on Traversal.promise()
.
Propagated exception to Future
instead of calling thread in RemoteConnection
.
Fixed a bug in RepeatUnrollStrategy
where LoopsStep
and LambdaHolder
should invalidate the strategy’s application.
Deprecated authentication.className
setting in favor of using authentication.authenticator
.
Added authentication.authenticationHandler
setting.
Added abstraction to authentication to allow users to plug in their own AbstractAuthenticationHandler
implementations.
Fixed a NullPointerException
bug in B_LP_O_S_SE_SL_Traverser
.
PathRetractionStrategy
now uses the marker-model to reduce recursive lookups of invalidating steps.
ProfileStrategy
now uses the marker-model to reduce recursive lookups of ProfileSideEffectStep
.
Mutating
steps now implement Scoping
interface.
Fixed a step id compilation bug in AddVertexStartStep
, AddVertexStep
, AddEdgeStep
, and AddPropertyStep
.
Added more details to Gremlin Server client side messages - exception hierarchy and stack trace.
Deprecated "Exception-Class" in the Gremlin Server HTTP protocol in favor of the new "exceptions" field.
De-registered metrics on Gremlin Server shutdown.
Added "help" command option on :remote config
for plugins that support that feature in the Gremlin Console.
Allowed for multiple scripts and related arguments to be passed to gremlin.sh
via -i
and -e
.
LABELED_PATH
requirement is now set if any step in the traversal is labeled.
Updated PathRetractionStrategy
to not run if the provided traversal contains a VertexProgramStep
that has a LABELED_PATH
requirement.
Added various metrics to the GremlinGroovyScriptEngine
around script compilation and exposed them in Gremlin Server.
Moved the caffeine
dependency down to gremlin-groovy
and out of gremlin-server
.
Improved script compilation in GremlinGroovyScriptEngine
to use better caching, log long compile times and prevent failed compilations from recompiling on future requests.
Synchronized script compilation.
Logged Script compilation times.
Prevented failed scripts from recompiling.
Logged warnings for scripts that take "too long" to compile.
Improved memory usage of the GremlinGroovyScriptEngine
.
Added cyclicPath().from().to().by()
support to GraphTraversal
.
Added simplePath().from().to().by()
support to GraphTraversal
.
Added path().from().to()
support to GraphTraversal
so sub-paths can be isolated from the current path.
Added FromToModulating
interface for use with to()
- and from()
-based step modulators.
Added Path.subPath()
which supports isolating a sub-path from Path
via to/from-labels.
Fixed NullPointerException
in GraphMLReader
that occurred when an <edge>
didn’t have an ID field and the base graph supported ID assignment.
Added ScopingStrategy
which will computer and provide all Scoping
steps with the path labels of the global Traversal
.
Split ComputerVerificationStrategy
into two strategies: ComputerVerificationStrategy
and ComputerFinalizationStrategy
.
Removed HasTest.g_V_hasId_compilationEquality
from process test suite as it makes too many assumptions about provider compilation.
Deprecated CustomizerProvider
infrastructure.
Deprecated PluginAcceptor
infrastructure.
Improved consistency of the application of bindings to GremlinScriptEngine
implementations in the BindingsGremlinPlugin
.
Fixed a bug in OLAP ComputerAwareStep
where end-step labels were not being appended to the traverser correctly.
Refactor SparkContext
handler to support external kill and stop operations.
Fixed an optimization bug in LazyBarrierStrategy
around appending barriers to the end of a Traversal
.
Fixed an optimization bug in PathRetractionStrategy
around appending barriers to the end of a Traversal
.
TraverserIterator
in GremlinServer is smart to try and bulk traversers prior to network I/O.
Improved error handling of compilation failures for very large or highly parameterized script sent to Gremlin Server.
Fixed a bug in RangeByIsCountStrategy
that changed the meaning of inner traversals.
Improved Gremlin-Python Driver implementation by adding a threaded client with basic connection pooling and support for pluggable websocket clients.
Changed GraphManager
from a final class implementation to an interface.
Updated GraphManager
interface to include methods for opening/instantiating a graph and closing a graph.
Implemented DefaultGraphManager
to include previous GraphManager
functionality and adhere to updated interface.
Deprecated GraphManager.getGraphs()
and added GraphManager.getGraphNames()
.
Deprecated GraphManager.getTraversalSources()
and added GraphManager.getTraversalSourceNames()
.
Fixed a bug so now users can supply a YAML with an empty staticVariableTypes
to be used by the FileSandboxExtension
TINKERPOP-1258 HasTest.g_V_hasId_compilationEquality makes GraphStep assumptions
TINKERPOP-1528 CountByIsRangeStrategy fails for a particular query
TINKERPOP-1626 choose() is buggy in OLAP
TINKERPOP-1638 count() is optimized away in where()
TINKERPOP-1640 ComputerVerificationStrategy gives false errors
TINKERPOP-1652 Disable PathRetractionStrategy strategy if VertexProgramStep has LABELLED_PATH requirement
TINKERPOP-1660 Documentation links should not link to TINKERPOP-xxxx branches
TINKERPOP-1666 NPE in FileSandboxExtension if staticVariableTypes is empty in supplied YAML file
TINKERPOP-1668 RepeatUnrollStrategy should not execute if there is a LoopStep used.
TINKERPOP-1670 End type lost when using promise()
TINKERPOP-1673 GroovyTranslator produces Gremlin that can’t execute on :remote
TINKERPOP-1675 RemoteStep#processNextStart() throws CompletionException instead of underlying exception
TINKERPOP-1681 Multiple hasId’s are or’d into GraphStep
TINKERPOP-761 Some basic mathematical functions / steps
TINKERPOP-786 Patterns for DSL Development
TINKERPOP-1044 ResponseMessage should contain server-side exception name.
TINKERPOP-1095 Create a custom ScriptContext
TINKERPOP-1266 Make memory available to benchmarks configurable
TINKERPOP-1303 add help for :remote config for Gephi Plugin
TINKERPOP-1340 docs do not state at what version an API was introduced (or deprecated)
TINKERPOP-1387 from and to modulators for path steps
TINKERPOP-1438 Consider GraphManager as an interface*(breaking)*
TINKERPOP-1453 Allow Gremlin-Python to handle asynchronous failure
TINKERPOP-1577 Provide support for Python3 or Python2 in the Docker builds.
TINKERPOP-1599 implement real gremlin-python driver
TINKERPOP-1614 Improve documentation for Graph.V() and Graph.E() on main docs page
TINKERPOP-1618 Remove groovy dependency from gremlin-python
TINKERPOP-1627 LazyBarrierStrategy should not append an end barrier.
TINKERPOP-1631 Fix visibility issues with the BindingsGremlinPlugin
TINKERPOP-1634 Deprecate old methods of GremlinGroovyScriptEngine customization
TINKERPOP-1642 Improve performance of mutating traversals
TINKERPOP-1644 Improve script compilation process and include metrics
TINKERPOP-1653 Allow multiple scripts with arguments to be passed to the Console
TINKERPOP-1657 Provide abstraction to easily allow different HttpAuth schemes
TINKERPOP-1663 Validate a maximum for the number of parameters passed to Gremlin Server
TINKERPOP-1665 Remove unittest from Gremlin-Python tests
TINKERPOP-1671 Default method for RemoteConnection.submitAsync throws exception from submit on calling thread instead of failing the future
TINKERPOP-1677 Bump Groovy to 2.4.11
TINKERPOP-1680 Add string performance options to StarGraph
This release also includes changes from 3.1.6.
Fixed a bug where PathProcessor.keepLabels
were not being pushed down into child traversals by PathRetractionStrategy
.
Added default MessagePassingReductionStrategy
for GraphComputer
that can reduce the number of message passing iterations.
Fixed a bug associated with user-provided maps and GroupSideEffectStep
.
GroupBiOperator
no longer maintains a detached traversal and thus, no more side-effect related OLAP inconsistencies.
Added ProjectedTraverser
which wraps a traverser with a List<Object>
of projected data.
Fixed an optimization bug in CollectingBarrierSteps
where the barrier was being consumed on each addBarrier()
.
OrderGlobalStep
and SampleGlobalStep
use ProjectedTraverser
and now can work up to the local star graph in OLAP.
SASL negotiation supports both a byte array and Base64 encoded bytes as a string for authentication to Gremlin Server.
Deprecated all test suites in gremlin-groovy-test
- Graph Providers no longer need to implement these.
Deprecated TinkerIoRegistry
replacing it with the more consistently named TinkerIoRegistryV1d0
.
Made error messaging more consistent during result iteration timeouts in Gremlin Server.
Fixed a memory leak in the classloader for the GremlinGroovyScriptEngine
where classes in the loader were not releasing from memory as a strong reference was always maintained.
PathRetractionStrategy
does not add a NoOpBarrierStep
to the end of local children as its wasted computation in 99% of traversals.
Fixed a bug in AddVertexStartStep
where if a side-effect was being used in the parametrization, an NPE occurred.
Fixed a bug in LazyBarrierStrategy
where profile()
was deactivating it accidentally.
Fixed a bug in RepeatUnrollStrategy
where stateful DedupGlobalStep
was cloned and thus, maintained two deduplication sets.
Added documentation around "terminal steps" in Gremlin: hasNext()
, next()
, toList()
, etc.
Added specific GraphSON serializers for RequestMessage
and ResponseMessage
in GraphSON 2.0.
Added CloseableIterator
to allow Graph
providers who open expensive resources a way to let users release them.
Fixed minor bug in gremlin-driver
where closing a session-based Client
without initializing it could generate an error.
Relieved synchronization pressure in various areas of TinkerGraphComputer
.
Fixed an optimization bug in OLAP-based DedupGlobalStep
where deduping occurred twice.
MemoryComputeKey
now implements Cloneable
which is useful for BiOperator
reducers that maintain thread-unsafe state.
TinkerGraphComputer
now supports distributed Memory
with lock-free partition aggregation.
TinkerGraph
Gryo and GraphSON deserialization is now configured to use multi-properties.
Changed behavior of ElementHelper.areEqual(Property, Property)
to not throw exceptions with null
arguments.
Added GryoVersion
for future flexibility when introducing a new verison of Gryo and moved serializer registrations to it.
Fixed Gryo serialization of ConnectiveP
instances.
Lessened the severity of Gremlin Server logging when it encounters two or more serializers addressing the same mime type.
Bumped to Netty 4.0.42.final.
Added ByteBuffer
, InetAddress
, Timestamp
to the list of Gryo supported classes.
Fixed Gryo serialization of Class
.
Fixed GraphSON serialization of enums like T
, P
, etc. where values were overriding each other in the GraphSON type registry.
Fixed a bug in Gremlin-Python around .()
and __.start()
.
Fixed a bug around long serialization in Gremlin-Python when using Python3.
Deprecated TraversalSource.withBindings()
as it is no longer needed in Gremlin-Java and never was needed for other variants.
Fixed a bug in Gremlin-Java Bytecode
where anonymous traversals were not aware of parent bindings.
Fixed a bug in Gremlin-Java GraphSON deserialization around P.within()
and P.without()
.
Converted Spark process suite tests to "integration" tests.
Fixed a bug in InlineFilterStrategy
having to do with folding HasContainers
into VertexStep
.
Deprecated HasContainer.makeHasContainers()
which was used to dissect AndP
and shouldn’t be used at the TinkerPop-level.
GraphTraversal.has()
now will try and fold-left HasContainer
if end step is a HasContainerHolder
.
Created explicit P
-predicate methods for GraphTraversal.hasXXX()
.
Fixed a bug in FilterRankStrategy
around where().by()
ordering.
Added another optimization in RangeByIsCountStrategy
, that removes count().is()
altogether if it’s not needed.
Fixed a OLAP MatchStep.clone()
-bug that occurs when the match()
is in a local child.
Added another optimization in RangeByIsCountStrategy
, that removes count().is()
altogether if it’s not needed.
Fixed a bug in RangeByIsCountStrategy
where labeled parents shouldn’t have the strategy applied to their children.
Fixed a bug in PathRetractionStrategy
where MatchEndStep
labels were being dropped when they shouldn’t be.
Added TinkerGraphCountStrategy
which translates g.V().map*.count()
patterns into direct Map.size()
calls in TinkerGraph
.
Added Path.head()
and Path.isEmpty()
with default method implementations.
Fixed a NoSuchElementException
bug with GroupXXXStep
where if the reduced TraverserSet
is empty, don’t add the key/value.
Fixed a NullPointerException
bug with profiling GroupSideEffectStep
in OLTP.
Improved ability to release resources in GraphProvider
instances in the test suite.
Factored GremlinPlugin
functionality out of gremlin-groovy and into gremlin-core - related classes were deprecated.
Added a force
option for killing sessions without waiting for transaction close or timeout of a currently running job or multiple jobs.
Deprecated Session.kill()
and Session.manualKill()
.
Added Traversal.promise()
method to allow for asynchronous traversal processing on "remote" traversals.
Deprecated RemoteConnection.submit(Bytecode)
in favor of submitAsync(Bytecode)
.
Added choose(predicate,traversal)
and choose(traversal,traversal)
to effect if/then-semantics (no else). Equivalent to choose(x,y,identity())
.
Removed ImmutablePath.TailPath
as it is no longer required with new recursion model.
Removed call stack recursion in ImmutablePath
.
Gremlin-Python serializes Bytecode
as an object (instead of a JSON string) when submit over the RemoteConnection
.
Fixed the handling of the DriverRemoteConnection
pass-through configurations to the driver.
IncidentToAdjacentStrategy
now uses a hidden label marker model to avoid repeated recursion for invalidating steps.
PathProcessorStrategy
can inline certain where(traversal)
-steps in order to increase the likelihood of star-local children.
SparkGraphComputer
no longer starts a worker iteration if the worker’s partition is empty.
Added ProjectStep.getProjectKeys()
for strategies that rely on such information.
Added VertexFeatures.supportsDuplicateMultiProperties()
for graphs that only support unique values in multi-properties.
Deprecated the "performance" tests in OptIn
.
Deprecated getInstance()
methods in favor of instance()
for better consistency with the rest of the API.
Block calls to "remote" traversal side-effects until the traversal read is complete which signifies an end to iteration.
Added Pick.none
and Pick.any
to the serializers and importers.
Added a class loader to TraversalStrategies.GlobalCache
which guarantees strategies are registered prior to GlobalCache.getStrategies()
.
Fixed a severe bug where GraphComputer
strategies are not being loaded until the second use of the traversal source.
The root traversal now throws regular NoSuchElementException
instead of FastNoSuchElementException
. (breaking)
Added a short sleep to prevent traversal from finishing before it can be interrupted during TraversalInterruptionComputerTest
.
Added support for SSL client authentication
TINKERPOP-1380 dedup() doesn’t dedup in rare cases
TINKERPOP-1384 Description of filter function in traversal documentation
TINKERPOP-1428 profile() throws NPE for union(group, group)
TINKERPOP-1521 Mutating steps don’t recognize side-effects
TINKERPOP-1525 Plug VertexProgram iteration leak on empty Spark RDD partitions
TINKERPOP-1534 Gremlin Server instances leaking in tests
TINKERPOP-1537 Python tests should not use hard-coded number of workers
TINKERPOP-1547 Two bugs found associated with MatchStep: Path retraction and range count.
TINKERPOP-1548 Traversals can complete before interrupted in TraversalInterruptionComputerTest
TINKERPOP-1560 Cache in GroovyClassLoader may continue to grow
TINKERPOP-1561 gremiln-python GraphSONWriter doesn’t properly serialize long in Python 3.5
TINKERPOP-1567 GraphSON deserialization fails with within('a')
TINKERPOP-1573 Bindings don’t work in coalesce
TINKERPOP-1576 gremlin-python calls non-existent methods
TINKERPOP-1581 Gremlin-Python driver connection is not thread safe.
TINKERPOP-1583 PathRetractionStrategy retracts keys that are actually needed
TINKERPOP-1585 OLAP dedup over non elements
TINKERPOP-1587 Gremlin Server Subgraph Cardinality Not Respected
TINKERPOP-1594 LazyBarrierStrategy does not activate with ProfileStep
TINKERPOP-1605 gremlin-console 3.2.3 -e can no longer take paths relative to current working directory
TINKERPOP-887 FastNoSuchElementException hides stack trace in client code
TINKERPOP-919 Features needs to specify whether 2 vertex properties with same key/value is allowed.
TINKERPOP-932 Add ability to cancel script execution associated with a Gremlin Server Session
TINKERPOP-1248 OrderGlobalStep should use local star graph to compute sorts, prior to reduction.
TINKERPOP-1261 Side-effect group().by() can’t handle user-defined maps
TINKERPOP-1292 TinkerGraphComputer VertexProgramInterceptors
TINKERPOP-1372 ImmutablePath should not use Java recursion (call stacks are wack)
TINKERPOP-1433 Add steps to dev docs to help committers get their keys in order
TINKERPOP-1434 Block calls to traversal side-effects until read is complete
TINKERPOP-1471 IncidentToAdjacentStrategy use hidden marker to avoid repeated recursion.
TINKERPOP-1473 Given PathRetractionStrategy, PathProcessorStrategy can be extended to support partial where() inlining.
TINKERPOP-1482 has(x).has(y) chains should be has(x.and(y))
TINKERPOP-1490 Provider a Future based Traversal.async(Function<Traversal,V>) terminal step
TINKERPOP-1502 Chained has()-steps should simply left-append HasContainers in Gremlin-Java.
TINKERPOP-1507 Pick.any and Pick.none are not in GraphSON or Gremlin-Python
TINKERPOP-1508 Add choose(predicate,trueTraversal)
TINKERPOP-1527 Do not override registered strategies in TraversalStrategies.GlobalCache
TINKERPOP-1530 Consistent use of instance()
TINKERPOP-1539 Create a ComplexTraversalTest with crazy nested gnarly traversals.
TINKERPOP-1542 Add Path.isEmpty() with a default implementation.
TINKERPOP-1562 Migrate ScriptEngine-related code to gremlin-core
TINKERPOP-1570 Bump to Netty 4.0.42
TINKERPOP-1582 TraversalOpProcessor does not support custom serializers
TINKERPOP-1584 Add gryo serializers to support types covered in GraphSON
TINKERPOP-1588 Added Terminal Steps section to the docs
TINKERPOP-1589 Re-Introduce CloseableIterator
TINKERPOP-1590 Create TinkerWorkerMemory and Partitioned Vertices
TINKERPOP-1600 Consistent use of base 64 encoded bytes for SASL negotiation
TINKERPOP-1602 Support SSL client certificate authentication
TINKERPOP-1606 Refactor GroupStep to not have the reduction traversal included in its BiOperator.
TINKERPOP-1610 Deprecate gremlin-groovy-test provider based tests
TINKERPOP-1617 Create a SingleIterationStrategy which will do its best to rewrite OLAP traversals to not message pass.
This release also includes changes from 3.1.5.
Restructured Gremlin-Python’s GraphSON I/O package to make it easier for users to register serializers/deserializers. (breaking)
Fixed a bug with TraversalOpProcessor
that was returning a final result prior to committing the transaction.
Fixed a bug in ConnectiveStrategy
where infix and/or was not correctly reasoning on choose()
HasNextStep
injections.
Increased performance of CredentialGraph
authentication.
Removed Java 8 stream usage from TraversalHelper
for performance reasons.
Fixed a bug in RepeatStep
where emit().as('x')
wasn’t adding the step labels to the emit-traverser.
Added GraphComputing.atMaster(boolean)
to allow steps to know whether they are executing at master or distributed at workers.
Fixed a bug in OLAP where DedupGlobalStep
wasn’t de-duping local master traversers.
Added HasContainerHolder.removeHasContainer()
-method with default UnsupportedOperationException
implementation.
TraversalSource.withComputer()
is simplified to add a VertexProgramStrategy
. Easier for language variants.
Fixed a Set
, List
, Map
bug in the various Translators
where such collections were not being internally translated.
Fixed a Bytecode
bug where nested structures (map, list, set) were not being analyzed for bindings and bytecode conversions.
Fixed a String
bug in GroovyTranslator
and PythonTranslator
where if the string has double-quotes it now uses """ """.
Added a default TraversalStrategy.getConfiguration()
which returns the configuration needed to construct the strategy.
Computer
instances can be created with Computer.create(Configuration)
and accessed via Computer.getConf()
.
Every TraversalStrategy
can be created via a Configuration
and a static MyStrategy.create(Configuration)
.
Added language-agnostic TraversalStrategy
support in Bytecode
.
Added PartitionStrategy.Builder.readPartitions()
and deprecated PartitionStrategy.Builder.addPartition()
.
A new version of LazyBarrierStrategy
has been created and added to the default strategies.
FilterRankStrategy
now propagates labels "right" over non-Scoping
filters.
Fixed a bug in ConnectiveP
where nested equivalent connectives should be inlined.
Fixed a bug in IncidentToAdjacentStrategy
where TreeStep
traversals were allowed.
Fixed a end-step label bug in MatchPredicateStrategy
.
Fixed a bug in MatchPredicateStrategy
where inlined traversals did not have strategies applied to it.
Fixed a bug in RepeatUnrollStrategy
where inlined traversal did not have strategies applied to it.
Fixed padding of prompt in Gremlin Console when the number of lines went beyond a single digit.
Fixed GraphSON 2.0 namespace for TinkerGraph
to be "tinker" instead of "gremlin".
Dropped serialization support in GraphSON 2.0 for Calendar
, TimeZone
, and Timestamp
.
Added TraversalHelper.copyLabels()
for copying (or moving) labels form one step to another.
Added TraversalHelper.applySingleLevelStrategies()
which will apply a subset of strategies but not walk the child tree.
Added the concept that hidden labels using during traversal compilation are removed at the end during StandardVerificationStrategy
. (breaking)
Added InlineFilterStrategy
which will determine if various TraversalParent
children are filters and if so, inline them.
Removed IdentityRemovalStrategy
from the default listing as its not worth the clock cycles.
Removed the "!" symbol in NotStep.toString()
as it is confusing and the NotStep
-name is sufficient.
Fixed a bug in TraversalVertexProgram
(OLAP) around ordering and connectives (i.e. and()
and or()
).
Added AbstractGremlinProcessTest.checkOrderedResults()
to make testing ordered results easier.
AbstractLambdaTraversal
now supports a bypassTraversal
where it is possible for strategies to redefine such lambda traversals.
Added an internal utility ClassFilterStep
which determines if the traverser object’s class is an instance of the provided class.
ConnectiveStep
extends FilterStep
and thus, is more appropriately categorized in the step hierarchy.
PropertyMapStep
supports a provided traversal for accessing the properties of the element. (breaking)
SubgraphStrategy
now supports vertex property filtering.
Fixed a bug in Gremlin-Python P
where predicates reversed the order of the predicates.
Added tests to DedupTest
for the dedup(Scope, String…)
overload.
Added more detailed reference documentation for IO formats.
Fixed a bug in serialization of Lambda
instances in GraphSON, which prevented their use in remote traversals.
Fixed a naming bug in Gremlin-Python where P.and
and P._or
should be P.and
and P.or_
. (breaking)
where()
predicate-based steps now support by()
-modulation.
Added Gryo serialization for Bytecode
.
Moved utility-based serializers to UtilSerializers
for Gryo - these classes were private and hence this change is non-breaking.
TraversalRing
returns a null
if it does not contain traversals (previously IdentityTraversal
).
Deprecated Graph.Exceptions.elementNotFoundException()
as it was not used in the code base outside of the test suite.
Fixed a JavaTranslator
bug where Bytecode
instructions were being mutated during translation.
Added Path
to Gremlin-Python with respective GraphSON 2.0 deserializer.
Traversal
and TraversalSource
now implement AutoCloseable
.
Added "keep-alive" functionality to the Java driver, which will send a heartbeat to the server when normal request activity on a connection stops for a period of time.
Renamed the empty.result.indicator
preference to result.indicator.null
in Gremlin Console
If result.indicator.null
is set to an empty string, then no "result line" is printed in Gremlin Console.
Deprecated reconnectInitialDelay
on the Java driver.
Added some validations to Cluster
instance building.
Produced better errors in readGraph
of GryoReader
and GraphSONReader
if a Vertex
cannot be found in the cache on edge loading.
VertexPrograms can now declare traverser requirements, e.g. to have access to the path when used with .program()
.
New build options for gremlin-python
where -DglvPython
is no longer required.
Added missing InetAddress
to GraphSON extension module.
Added new recipe for "Pagination".
Added new recipe for "Recommendation".
Added functionality to Gremlin-Server REST endpoint to forward Exception Messages and Class in HTTP Response
Gremlin Server TraversalOpProcessor
now returns confirmation upon Op
close
.
Added close
method Java driver and Python driver DriverRemoteTraversalSideEffects
.
TINKERPOP-1423 IncidentToAdjacentStrategy should be disabled for tree steps
TINKERPOP-1440 g:Path needs a GraphSON deserializer in Gremlin-Python
TINKERPOP-1457 Groovy Lambdas for remote traversals not serializable
TINKERPOP-1458 Gremlin Server doesn’t return confirmation upon Traversal OpProcessor "close" op
TINKERPOP-1466 PeerPressureTest has been failing recently
TINKERPOP-1472 RepeatUnrollStrategy does not semi-compile inlined repeat traversal
TINKERPOP-1476 TinkerGraph does not get typed with the right type name in GraphSON
TINKERPOP-1495 Global list deduplication doesn’t work in OLAP
TINKERPOP-1500 and/or infix and choose() do not work correctly.
TINKERPOP-1511 Remote client addV, V()
TINKERPOP-790 Implement AutoCloseable on TraversalSource
TINKERPOP-944 Deprecate Graph.Exceptions.elementNotFound
TINKERPOP-1189 SimpleAuthenticator over HttpChannelizer makes Gremlin Server pretty slow and consumes more CPU
TINKERPOP-1249 Gremlin driver to periodically issue ping / heartbeat to gremlin server
TINKERPOP-1280 VertexPrograms should declare traverser requirements
TINKERPOP-1330 by()-modulation for where()
TINKERPOP-1409 Make the "null" return in the gremlin console into something more understandable (breaking)
TINKERPOP-1431 Documentation generation requires tests to execute on gremlin-python
TINKERPOP-1437 Add tests for dedup(Scope) in DedupTest
TINKERPOP-1444 Benchmark bytecode→Traversal creation and implement GremlinServer cache if necessary.
TINKERPOP-1448 gremlin-python should be Python 2/3 compatible
TINKERPOP-1449 Streamline gremlin-python build
TINKERPOP-1455 Provide String-based withStrategy()/withoutStrategy() for language variant usage
TINKERPOP-1456 Support SubgraphStrategy.vertexProperties().
TINKERPOP-1460 Deprecate reconnectInitialDelay in Java driver
TINKERPOP-1464 Gryo Serialization for Bytecode
TINKERPOP-1469 Get rid of Stream-usage in TraversalHelper
TINKERPOP-1470 InlineFilterStrategy should try and P.or() has() children in OrSteps.
TINKERPOP-1486 Improve API of RemoteConnection
TINKERPOP-1487 Reference Documentation for IO
TINKERPOP-1488 Make LazyBarrierStrategy part of the default TraversalStrategies (breaking)
TINKERPOP-1492 RemoteStrategy or the RemoteConnection should append a lazy barrier().
TINKERPOP-1423 IncidentToAdjacentStrategy should be disabled for tree steps
TINKERPOP-1440 g:Path needs a GraphSON deserializer in Gremlin-Python
TINKERPOP-1457 Groovy Lambdas for remote traversals not serializable
TINKERPOP-1458 Gremlin Server doesn’t return confirmation upon Traversal OpProcessor "close" op
TINKERPOP-1466 PeerPressureTest has been failing recently
TINKERPOP-1472 RepeatUnrollStrategy does not semi-compile inlined repeat traversal
TINKERPOP-1495 Global list deduplication doesn’t work in OLAP
TINKERPOP-1500 and/or infix and choose() do not work correctly.
TINKERPOP-1511 Remote client addV, V()
This release also includes changes from 3.1.4.
Included GraphSON as a default serializer (in addition to Gryo, which was already present) in Gremlin Server if none are defined.
Added gremlin-python
package as a Gremlin language variant in Python.
Added Bytecode
which specifies the instructions and arguments used to construct a traversal.
Created an experimental GraphSON representation of Bytecode
that will be considered unstable until 3.3.0.
Added Translator
which allows from the translation of Bytecode
into some other form (e.g. script, Traversal
, etc.).
Added JavaTranslator
, GroovyTranslator
, PythonTranslator
, and JythonTranslator
for translating Bytecode
accordingly.
Added TranslationStrategy
to gremlin-test
so translators can be tested against the process test suite.
Added Traversal.Admin.nextTraverser()
to get the next result in bulk-form (w/ default implementation).
Added TraversalSource.getAnonymousTraversalClass()
(w/ default implementation).
Added GremlinScriptEngine
interface which specifies a eval(Bytecode, Bindings)
method.
Deprecated RemoteGraph
in favor of TraversalSource.withRemote()
as it is more technically correct to tie a remote traversal to the TraversalSource
than a Graph
instance.
GremlinGroovyScriptEngine
implements GremlinScriptEngine
.
Added GremlinJythonScriptEngine
which implements GremlinScriptEngine
.
Removed support for submitting a Java serialized Traversal
to Gremlin Server.
Removed a largely internal feature that supported automatic unrolling of traversers in the Gremlin Driver.
Made it possible to directly initialize OpProcessor
implementations with server Settings
.
Included GraphSON as a default serializer (in addition to Gryo, which was already present) in Gremlin Server if none are defined
Introduced GraphSON 2.0.
Deprecated embedTypes
on the builder for GraphSONMapper
.
Bumped to Netty 4.0.40.final.
Defaulted the gremlinPool
setting in Gremlin Server to be zero, which will instructs it to use Runtime.availableProcessors()
for that settings.
Changed scope of log4j dependencies so that they would only be used in tests and the binary distributions of Gremlin Console and Server.
Deprecated Io.Builder.registry()
in favor of the newly introduced Io.Builder.onMapper()
.
Added new recipe for "Traversal Induced Values".
Fixed a potential leak of a ReferenceCounted
resource in Gremlin Server.
Added class registrations for Map.Entry
implementations to GryoMapper
.
Added methods to retrieve Cluster
settings in gremlin-driver
.
Fixed a severe bug in SubgraphStrategy
.
Deprecated SubgraphStrategy.Builder.vertexCriterion()/edgeCriterion()
in favor of vertices()/edges()
.
Fixed a small bug in StandardVerificationStrategy
that caused verification to fail when withPath
was used in conjunction with ProfileStep
.
Added color preferences
Added input, result prompt preferences
Added multi-line indicator in Gremlin Console
TINKERPOP-810 store not visible
TINKERPOP-1151 slf4j-log4j12 / log4j is only required for testing (breaking)
TINKERPOP-1383 publish-docs.sh might publish to current too early
TINKERPOP-1390 IdentityRemoveStrategyTest fails randomly
TINKERPOP-1400 SubgraphStrategy introduces infinite recursion if filter has Vertex/Edge steps.
TINKERPOP-1405 profile() doesn’t like withPath()
TINKERPOP-1037 Gremlin shell output coloring
TINKERPOP-1226 Gremlin Console should :clear automagically after "Display stack trace."
TINKERPOP-1230 Serialising lambdas for RemoteGraph
TINKERPOP-1274 GraphSON Version 2.0
TINKERPOP-1278 Implement Gremlin-Python and general purpose language variant test infrastructure
TINKERPOP-1285 Gremline console does not differentiate between multi-line and single-line input
TINKERPOP-1334 Provide a way to pull gremlin.driver.Cluster connection settings.
TINKERPOP-1347 RemoteConnection needs to provide TraversalSideEffects. (breaking)
TINKERPOP-1373 Default gremlinPool to number of cores
TINKERPOP-1386 Bump to Netty 4.0.40.Final
TINKERPOP-1392 Remove support for java serialized Traversal (breaking)
TINKERPOP-1394 Fix links in Recipes doc
TINKERPOP-1396 Traversal Induced Values Recipe
TINKERPOP-1402 Impossible for graph implementations to provide a class resolver for Gryo IO
TINKERPOP-1407 Default serializers for Gremlin Server
TINKERPOP-1425 Use trailing underscores in gremlin-python
This release also includes changes from 3.1.3.
PathProcessor
steps now have the ability (if configured through a strategy) to drop Traverser
path segments.
MatchStep
in OLTP has a lazy barrier to increase the probability of bulking.
Added PathRetractionStrategy
which will remove labeled path segments that will no longer be referenced.
Added Path.retract()
to support retracting paths based on labels.
Optimized ImmutablePath
and MutablePath
equality code removing significant unnecessary object creation code.
Bumped to Groovy 2.4.7.
Added RepeatUnrollStrategy
to linearize a repeat()
-traversal if loop amount is known at compile time.
Fixed a bug in BranchStep
around child integration during clone()
.
Fixed a bug in AbstractStep
around label set cloning.
Added TraversalStrategyPerformanceTest
for verifying the performance gains of optimization-based traversal strategies.
TraversalExplanation.prettyPrint()
exists which provides word wrapping and GremlinConsole is smart to use console width to control toString()
.
TraversalOpProcessor
(RemoteConnection
) uses HaltedTraverserStrategy
metadata to determine detachment procedure prior to returning results.
Allow DFS paths in HADOOP_GREMLIN_LIBS
.
Added a safer serializer infrastructure for use with SparkGraphComputer
that uses KryoSerializer
and the new GryoRegistrator
.
Added HaltedTraverserStrategy
to allow users to get back different element detachments in OLAP.
Fixed a NullPointerException
bug around nested group()
-steps in OLAP.
Fixed a severe bug around halted traversers in a multi-job OLAP traversal chain.
Ensure a separation of GraphComputer
and VertexProgram
configurations in SparkGraphComputer
and GiraphGraphComputer
.
PeerPressureVertexProgram
now supports dynamic initial vote strength calculations.
Added EmptyMemory
for ease of use when no memory exists.
Updated VertexComputing.generateProgram()
API to include Memory
. (breaking)
ImmutablePath.TailPath
is now serializable like ImmutablePath
.
Added ConfigurationCompilerProvider
which allows fine-grained control of some of the internal GremlinGroovyScriptEngine
settings at the Groovy compilation level.
Introduced the application/vnd.gremlin-v1.0+gryo-lite
serialization type to Gremlin Server which users "reference" elements rather than "detached".
GryoMapper
allows overrides of existing serializers on calls to addCustom
on the builder.
Added a traversal style guide to the recipes cookbook.
Fixed a bug in master-traversal traverser propagation.
Added useful methods for custom VertexPrograms
to be used with program()
-step.
Increased the test coverage around traverser propagation within a multi-job OLAP traversal.
Added tests to validate the status of a transaction immediately following calls to close.
Added tests to ensure that threaded transactions cannot be re-used.
GraphFilter
helper methods are now more intelligent when determining edge direction/label legality.
Added GraphFilterStrategy
to automatically construct GraphFilters
via traversal introspection in OLAP.
Updated the Gephi Plugin to support Gephi 0.9.x.
Increased the testing and scope of TraversalHelper.isLocalStarGraph()
.
Changed signature of get_g_VXlistXv1_v2_v3XX_name
and get_g_VXlistX1_2_3XX_name
of VertexTest
to take arguments for the Traversal
to be constructed by extending classes.
Added VertexProgramInterceptor
interface as a general pattern for GraphComputer
providers to use for bypassing GraphComputer
semantics where appropriate.
Added SparkStarBarrierInterceptor
that uses Spark DSL for local star graph traversals that end with a ReducingBarrierStep
.
Added SparkInterceptorStrategy
which identifies which interceptor to use (if any) given the submitted VertexProgram
.
Added SparkSingleIterationStrategy
that does not partition nor cache the graph RDD if the traversal does not message pass.
Added more helper methods to TraversalHelper
for handling scoped traversal children.
Deprecated all "performance" tests based on "JUnit Benchmarks".
SparkGraphComputer
no longer shuffles empty views or empty outgoing messages in order to save time and space.
TraversalVertexProgram
no longer maintains empty halted traverser properties in order to save space.
Added List<P<V>>
constructors to ConnectiveP
, AndP
, and OrP
for ease of use.
Added support for interactive (-i
) and execute (-e
) modes for Gremlin Console.
Displayed line numbers for script execution failures of -e
and -i
.
Improved messaging around script execution errors in Gremlin Console.
Added "help" support to Gremlin Console with the -h
flag.
Added options to better control verbosity of Gremlin Console output with -Q
, -V
and -D
.
Deprecated the ScriptExecutor
- the -e
option to gremlin.sh
is now handled by Console
.
Traversal
now allows cancellation with Thread.interrupt()
.
Added a Gremlin language variant tutorial teaching people how to embed Gremlin in a host programming language.
TINKERPOP-1281 Memory.HALTED_TRAVERSER transience is not sound.
TINKERPOP-1305 HALTED_TRAVERSERS hold wrong information
TINKERPOP-1307 NPE with OLTP nested group() in an OLAP group() traversal
TINKERPOP-1323 ComputerVerificationStrategy fails for nested match() steps
TINKERPOP-1341 UnshadedKryoAdapter fails to deserialize StarGraph when SparkConf sets spark.rdd.compress=true whereas GryoSerializer works
TINKERPOP-1348 TraversalInterruptionTest success dependent on iteration order
TINKERPOP-818 Consider a P.type()
TINKERPOP-946 Traversal respecting Thread.interrupt()
TINKERPOP-947 Enforce semantics of threaded transactions as manual (breaking)
TINKERPOP-1059 Add test to ensure transaction opening happens at read/write and not on close (breaking)
TINKERPOP-1071 Enhance pre-processor output
TINKERPOP-1091 Get KryoSerializer to work natively. (breaking)
TINKERPOP-1120 If there is no view nor messages, don’t create empty views/messages in SparkExecutor
TINKERPOP-1144 Improve ScriptElementFactory
TINKERPOP-1155 gremlin.sh -e doesn’t log line numbers for errors
TINKERPOP-1156 gremlin.sh could use a help text
TINKERPOP-1157 gremlin.sh should allow you to execute a script and go interactive on error or completion
TINKERPOP-1232 Write a tutorial demonstrating the 3 ways to write a Gremlin language variant.
TINKERPOP-1254 Support dropping traverser path information when it is no longer needed.
TINKERPOP-1268 Improve script execution options for console (breaking)
TINKERPOP-1273 Deprecate old performance tests
TINKERPOP-1276 Deprecate serializedResponseTimeout
TINKERPOP-1279 Add Iterable<V> parameter constructor to ConnectiveP subclasses
TINKERPOP-1282 Add more compliance tests around how memory and vertex compute keys are propagated in chained OLAP.
TINKERPOP-1286 Add Recipes documentation
TINKERPOP-1288 Support gremlin.spark.skipPartitioning configuration.
TINKERPOP-1290 Create VertexProgramInterceptor as a pattern for GraphComputer strategies.
TINKERPOP-1293 Implement GraphFilterStrategy as a default registration for GraphComputer
TINKERPOP-1294 Deprecate use of junit-benchmarks
TINKERPOP-1297 Gephi plugin on Gephi 0.9.x (breaking)
TINKERPOP-1299 Refactor TraversalVertexProgram to make it easier to understand.
TINKERPOP-1308 Serialize to "reference" for Gremlin Server
TINKERPOP-1310 Allow OLAP to return properties as Detached
TINKERPOP-1321 Loosen coupling between TinkerPop serialization logic and shaded Kryo
TINKERPOP-1322 Provide fine-grained control of CompilerConfiguration
TINKERPOP-1328 Provide [gremlin-python] as an code executor in docs
TINKERPOP-1331 HADOOP_GREMLIN_LIBS can only point to local file system
TINKERPOP-1332 Improve .explain() Dialogue
TINKERPOP-1338 Bump to Groovy 2.4.7
TINKERPOP-1349 RepeatUnrollStrategy should unroll loops while maintaining equivalent semantics.
TINKERPOP-1355 Design HasContainer for extension
This release also includes changes from 3.1.2-incubating.
Bumped to Neo4j 2.3.3.
Renamed variable local
to fs
in HadoopGremlinPlugin
to avoid a naming conflict with Scope.local
. (breaking)
Added GraphTraversal.optional()
which will use the inner traversal if it returns results, else it won’t.
GroupStep
and GroupSideEffectStep
make use of mid-traversal reducers to limit memory consumption in OLAP.
Added GraphTraversal.program(VertexProgram)
to allow arbitrary user vertex programs in OLAP.
Added GraphTraversal.project()
for creating a Map<String,E>
given the current traverser and an arbitrary number of by()
-modulators.
HADOOP_GREMLIN_LIBS
can now reference a directory in HDFS and will be used if the directory does not exist locally.
Added gremlin-benchmark
module with JMH benchmarking base classes that can be used for further benchmark development.
TraversalStrategies.GlobalCache
supports both Graph
and GraphComputer
strategy registrations.
select("a","b").by("name").by("age")
-style traversals now work in OLAP with new PathProcessorStrategy
.
DedupGlobalStep
can now handle star-bound by()
-modulators and scoped keys on GraphComputer
.
Added Computer
which is a builder for GraphComputers
that is serializable.
PersistedOutputRDD
now implements PersistResultGraphAware
and thus, no more unneeded warnings when using it.
Renamed StandardTraversalMetrics
to DefaultTraversalMetrics
given the DefaultXXX
-convention throughout. (breaking)
Bumped to Apache Hadoop 2.7.2.
Fixed a bug around profiling and nested traversals.
Added gremlin.hadoop.defaultGraphComputer
so users can use graph.compute()
with HadoopGraph
.
Added gremlin.hadoop.graphReader
and gremlin.hadoop.graphWriter
which can handled XXXFormats
and XXXRDDs
.
Deprecated gremlin.hadoop.graphInputFormat
, gremlin.hadoop.graphOutputFormat
, gremlin.spark.graphInputRDD
, and gremlin.spark.graphOutputRDD
.
If no configuration is provided to HadoopPools
it uses the default configuration to create a pool once and only once per JVM.
Implemented RemoteGraph
, RemoteConnection
, and RemoteStrategy
.
Added validation to GryoMapper
Kryo identifiers before construction to prevent accidental duplicates.
Added GraphStep.addIds()
which is useful for HasContainer
"fold ins."
Added a static GraphStep.processHashContainerIds()
helper for handling id-based HasContainers
.
GraphStep
implementations should have g.V().hasId(x)
and g.V(x)
compile equivalently. (breaking)
Optimized ExpandableStepIterator
with simpler logic and increased the likelihood of bulking.
Optimized TraverserRequirement
calculations.
Step.addStart()
and Step.addStarts()
now take Traverser.Admin<S>
and Traverser.Admin<S>
, respectively. (breaking)
Step.processNextStart()
and Step.next()
now return Traverser.Admin<E>
. (breaking)
Traversal.addTraverserRequirement()
method removed. (breaking)
Fixed a hashCode()
bug in OrderGlobalStep
and OrderLocalStep
.
Added OrderLimitStrategy
which will ensure that partitions are limited before being merged in OLAP.
ComparatorHolder
now separates the traversal from the comparator. (breaking)
Bumped to Apache Spark 1.6.1.
If no Spark serializer is provided then GryoSerializer
is the default, not JavaSerializer
.
Added Operator.sumLong
as a optimized binary operator intended to be used by Memory
reducers that know they are dealing with longs.
Traversers from ComputerResultStep
are no longer attached. Attaching is only used in TinkerPop’s test suite via System.getProperties()
.
Fixed a hashCode()
/equals()
bug in MessageScope
.
Fixed a severe Traversal
cloning issue that caused inconsistent TraversalSideEffects
.
TraversalSideEffects
remain consistent and usable across multiple chained OLAP jobs.
Added MemoryTraversalSideEffects
which wraps Memory
in a TraversalSideEffects
for use in OLAP.
TraversalSideEffects
are now fully functional in OLAP save that an accurate global view is possible at the start of an iteration (not during).
Updated the TraversalSideEffects
API to support registered reducers and updated get()
-semantics. (breaking)
Split existing profile()
into ProfileStep
and ProfileSideEffectStep
.
The profile()
-step acts like a reducing barrier and emits TraversalMetrics
without the need for cap()
. (breaking)
Added LocalBarrier
interface to allow traversers to remain distributed during an iteration so as to reduce cluster traffic.
Added NoOpBarrierStep
as a LocalBarrier
implementation of LambdaCollectingBarrierStep(noOp)
.
AggregateStep
implements LocalBarrier
and thus, doesn’t needlessly communicate its barrier traversers.
Fixed an OLAP-based Barrier
synchronization bug.
Fixed a semantic bug in BranchStep
(and inheriting steps) where barriers reacted locally. (breaking)
Added MemoryComputeKey
for specification of Memory
keys in VertexProgram
. (breaking)
Added VertexComputeKey
for specification of vertex compute properties in VertexProgram
. (breaking)
Added and
, or
, and addAll
to Operator
.
Memory
API changed to support setting and adding values for reduction. (breaking)
Memory
keys can be marked as broadcast and only those values are sent to workers on each iterator.
Memory
keys can be marked transient and thus deleted at the end of the OLAP job.
Vertex compute keys can be marked transient and thus deleted at the end of the OLAP job.
VertexProgram
API changed to support MemoryComputeKey
and VertexComputeKey
. (breaking)
TraversalVertexProgram
able to execute OLAP and OLTP traversal sections dynamically within the same job.
Removed FinalGet
interface as all post processing of reductions should be handled by the reducing step explicitly. (breaking)
Simplified all SupplyingBarrierStep
implementations as they no longer require MapReduce
in OLAP.
Simplified all CollectingBarrierStep
implementations as they no longer require MapReduce
in OLAP.
Simplified all ReducingBarrierStep
implementations as they no longer require MapReduce
in OLAP.
All steps in OLAP that used MapReduce
now use Memory
to do their reductions which expands the list of legal traversals.
GroupStep
simplified with GroupHelper.GroupMap
no longer being needed. Related to the removal of FinalGet
.
OLAP side-effects that are no longer generated by MapReduce
are simply stored in ComputerResult.Memory
w/ no disk persistence needed. (breaking)
Added Generate
step interface which states that there could be a final generating phase to a side-effect or reduction (e.g. GroupStep
).
Barrier
step interface is now the means by which non-parallel steps communicate with their counterparts in OLAP.
Added MemoryComputing
step interface which states that the step uses MemoryComputeKeys
for its computation in OLAP.
Added PeerPressureVertexProgramStep
and GraphTraversal.peerPressure()
.
Added PureTraversal
for handling pure and compiled versions of a Traversal
. Useful in OLAP.
Added ScriptTraversal
which allows for delayed compilation of script-based Traversals
.
Simplified VertexProgram
implementations with a PureTraversal
-model and deprecated ConfigurationTraversal
.
Simplified script-based Traversals
via ScriptTraversal
and deprecated TraversalScriptFunction
and TraversalScriptHelper
.
Added TimesModulating
interface which allows the Step
to decide how a times()
-modulation should be handled.
Added ByModulating
interface which allows the Step
to decide how a by()
-modulation should be handled. (breaking)
Simplified the by()
-modulation patterns of OrderGlobalStep
and OrderLocalStep
.
Added GraphComputerTest.shouldSupportPreExistingComputeKeys()
to ensure existing compute keys are "revived." (breaking)
Added GraphComputerTest.shouldSupportJobChaining()
to ensure OLAP jobs can be linearly chained. (breaking)
Fixed a bug in both SparkGraphComputer
and GiraphGraphComputer
regarding source data access in job chains.
Expanded job chaining test coverage for GraphComputer
providers.
Added TraversalHelper.onGraphComputer(traversal)
.
MapReduce.map()
no longer has a default implementation. This method must be implemented. (breaking)
TraversalVertexProgram
can work without a GraphStep
start.
Added PageRankVertexProgramStep
and GraphTraversal.pageRank()
.
Added TraversalVertexProgramStep
to support OLAP traversal job chaining.
Added VertexProgramStrategy
which compiles multiple OLAP jobs into a single traversal.
Simplified the comparator model in OrderGlobalStep
and OrderLocalStep
.
Refactored TraversalSource
model to allow fluent-method construction of TraversalSources
.
Deprecated the concept of a TraversalSource.Builder
.
Removed the concept of a TraversalEngine
. All Traversal
modulations are now mediated by TraversalStrategies
. (breaking)
Added SideEffectStrategy
for registering sideEffects in a spawned Traversal
.
Added SackStrategy
for registering a sack for a spawned Traversal
.
Added RequirementsStrategy
and RequirementsStep
for adding dynamic TraverserRequirements
to a Traversal
.
Removed EngineDependentStrategy
.
Renamed step interface EngineDependent
to GraphComputing
with method onGraphComputer()
. (breaking)
Cleaned up various TraversalStrategy
tests now that TraversalEngine
no longer exists.
Added GraphFilter
to support filtering out vertices and edges that won’t be touched by an OLAP job.
Added GraphComputer.vertices()
and GraphComputer.edges()
for GraphFilter
construction. (breaking)
SparkGraphComputer
, GiraphGraphComputer
, and TinkerGraphComputer
all support GraphFilter
.
Added GraphComputerTest.shouldSupportGraphFilter()
which verifies all filtered graphs have the same topology.
Added GraphFilterAware
interface to hadoop-gremlin/
which tells the OLAP engine that the InputFormat
handles filtering.
GryoInputFormat
and ScriptInputFormat
implement GraphFilterAware
.
Added GraphFilterInputFormat
which handles graph filtering for InputFormats
that are not GraphFilterAware
.
Fixed a bug in TraversalHelper.isLocalStarGraph()
which allowed certain illegal traversals to pass.
Added TraversalHelper.isLocalProperties()
to verify that the traversal does not touch incident edges.
GraphReader
I/O interface now has Optional<Vertex> readGraph(InputStream, GraphFilter)
. Default UnsupportedOperationException
.
GryoReader
does not materialize edges that will be filtered out and this greatly reduces GC and load times.
Created custom Serializers
for SparkGraphComputer
message-passing classes which reduce graph sizes significantly.
TINKERPOP-951 Barrier steps provide unexpected results in Gremlin OLAP
TINKERPOP-1057 GroupSideEffectStep doesn’t use provided maps
TINKERPOP-1103 Two objects fighting for local variable name in Gremlin Console (breaking)
TINKERPOP-1149 TraversalXXXSteps Aren’t Providing SideEffects
TINKERPOP-1181 select(Column) should not use a LambdaMapStep
TINKERPOP-1188 Semantics of BarrierSteps in TraversalParent global traversals is wrong. (breaking)
TINKERPOP-1194 explain() seems broken
TINKERPOP-1217 Repeated Logging of "The HadoopPools has not been initialized, using the default pool"
TINKERPOP-570 [Proposal] Provide support for OLAP to OLTP to OLAP to OLTP
TINKERPOP-575 Implement RemoteGraph
TINKERPOP-813 [Proposal] Make the Gremlin Graph Traversal Machine and Instruction Set Explicit
TINKERPOP-872 Remove GroupCountStep in favor of new Reduce-based GroupStep
TINKERPOP-890 Remove the concept of branch/ package. (breaking)
TINKERPOP-958 Improve usability of .profile() step.
TINKERPOP-962 Provide "vertex query" selectivity when importing data in OLAP. (breaking)
TINKERPOP-968 Add first class support for an optional traversal
TINKERPOP-971 TraversalSource should be fluent like GraphComputer (breaking)
TINKERPOP-1016 Replace junit-benchmarks with JMH
TINKERPOP-1021 Deprecate Order.valueIncr, Order.valueDecr, Order.keyIncr, and Order.keyDecr (breaking)
TINKERPOP-1032 Clean up the conf/hadoop configurations
TINKERPOP-1034 Bump to support Spark 1.5.2
TINKERPOP-1069 Support Spark 1.6.0
TINKERPOP-1082 INPUT_RDD and INPUT_FORMAT are bad, we should just have one key.
TINKERPOP-1112 Create GryoSerializers for the Spark Payload classes.
TINKERPOP-1121 FileSystemStorage needs to be smart about /.
TINKERPOP-1132 Messenger.receiveMessages() Iterator should .remove().
TINKERPOP-1140 TraversalVertexProgramStep in support of OLAP/OLTP conversions.
TINKERPOP-1153 Add ByModulating and TimesModulating interfaces.
TINKERPOP-1154 Create a ScriptTraversal which is Serializable and auto-compiles.
TINKERPOP-1162 Add VertexProgram.getTransientComputeKeys() for removing scratch-data. (breaking)
TINKERPOP-1163 GraphComputer’s can have TraversalStrategies.
TINKERPOP-1164 ReducingBarriersSteps should use ComputerMemory, not MapReduce.
TINKERPOP-1166 Add Memory.reduce() as option to Memory implementations. (breaking)
TINKERPOP-1173 If no Serializer is provided in Configuration, use GryoSerializer by default (Spark)
TINKERPOP-1180 Add more optimized binary operators to Operator.
TINKERPOP-1192 TraversalSideEffects should support registered reducers (binary operators).
TINKERPOP-1193 Add a LocalBarrier interface.
TINKERPOP-1199 Use "MicroMetrics" as the mutator of the TraversalMetrics.
TINKERPOP-1206 ExpandableIterator can take a full TraverserSet at once — Barriers.
TINKERPOP-1209 ComparatorHolder should returns a Pair<Traversal,Comparator>. (breaking)
TINKERPOP-1210 Provide an OrderLimitStep as an optimization.
TINKERPOP-1219 Create a test case that ensures the provider’s compilation of g.V(x) and g.V().hasId(x) is identical (breaking)
TINKERPOP-1222 Allow default GraphComputer configuration
TINKERPOP-1223 Allow jars in gremlin.distributedJars to be read from HDFS
TINKERPOP-1225 Do a "rolling reduce" for GroupXXXStep in OLAP.
TINKERPOP-1227 Add Metrics for the TraversalOpProcessor
TINKERPOP-1234 program() step that takes arbitrary vertex programs
TINKERPOP-1236 SelectDenormalizationStrategy for select().by(starGraph) in OLAP.
TINKERPOP-1237 ProjectMap: For the Love of Die Faterland
TINKERPOP-1238 Re-use Client instances in RemoteGraph tests
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )