concurrent-example
Shows off that the grammes client can be used concurrently in goroutines.
Description
concurrent-example shows how the grammes client is able to be used concurrently in goroutines. It will add 25 vertices and then wait until all goroutines are finished. After the test is done you can examine the vertices in the Gremlin console if curious.
Prerequisites
- go 1.12
- Git
- Elastic Search
- Cassandra
Running
To run this test you will need a TinkerPop server running and a graph database to connect to locally. This example was tested while using JanusGraph which can be used by locating yourself to the root directory of the Grammes project.
cd $GOPATH/src/github.com/00security/grammes
After locating yourself here then you may change directory to the /scripts
folder.
cd scripts
Finally you may run the janusgraph.sh
script to begin a local instance of JanusGraph. This will begin the TinkerPop server for you as well.
./janusgraph.sh
For further instructions please find yourself to the root README.md file.
Steps
General steps
- Create a zap logger to help explain what's going on in the test and display the results.
- Creates a Grammes client that connects to a locally hosted TinkerPop server with a WebSocket.
- For testing this was created using JanusGraph. This can be run in the
/scripts
directory.
- Drop all of the possible interfering vertices that were already on the graph.
- Defer a drop of all the testing vertices. This is done as clean up.
Test specific steps
- Adds testing vertices to the graph concurrently
- Logs the vertex count