Hello Everyone,

I have been looking at the Explain and Profile implementations in gremlin-core 
and how to improve the flexibility of its output for Tinkerpop 4.0 for graph db 
providers.

My questions to the Tinkerpop db provider community are:

* is the default Explain and Profile output sufficient?
* have you had difficulty customizing the Explain or Profile implementations?
* can you provide an example of a customized Explain or Profile output that I 
could reference to help determine how I can improve the current implementation?

For Explain, I am thinking about modifying TraversalExplanation to allow 
providers to more easily group applied TraversalStrategies into intermediate 
traversals so that the output can contain the Original Traversal, 
X-Intermediate Traversals, and then Final Traversal based on how the provider 
decides to group the strategies.

For Profile, I am wondering if it would be useful to change Metrics from 
storing data in two maps into a single map, allowing db providers to specify 
custom metric aggregation logic via BinaryOperator (ie. sum, average, min, max, 
String concatenation), and then changing toString to dynamically determine the 
output table headers based on the keys of the metrics map. Or perhaps a more 
simpler approach would be better to allow injection of additional text before 
or after the default Profile output.

I am aware of the existing issue TINKERPOP-2128 which requests that Explain to 
work remotely and am taking this into consideration as well.

Thank you,

Andrea

Reply via email to