- Newest
- Most votes
- Most comments
Hi, basky,
I reached out to the Gremlin expert on our team, and there are a couple of things that may not be reflected on the execution time from the Gremlin profile.
-
Results serialization time
After query execution is complete, it requires Neptune to serialize the results into transferrable format, like GraphSON, GraphBinary, etc, to send back to the client. This serialization time is not counted in the profile by default.
However, as described in https://docs.aws.amazon.com/neptune/latest/userguide/gremlin-profile-api.html , the client can add a param and specify a serializer then Neptune returns the time took for serialization too. The query may take longer time because Neptune materializes all dict Ids in solutions. -
Lock conflicting for read-write queries.
If you have read-write queries in the mix, there are chances some queries need to wait for other queries to release locks if they are trying to access rows in certain range. This lock-waiting time may increase the query execution time as well.
If there are no read-write queries, then this may not affect the throughput. Since all read-only queries use shared lock, and there should be no waiting on locks between them. -
Network round trip time between a client and Neptune server
This of course doesn’t show up in query profile. Neptune has no idea how long it took for the client to reach to Neptune. But in your cases, if you can submit enough queries to the Neptune server, hopefully this does not affect much on the throughputs.
Relevant content
- asked 2 years ago
- AWS OFFICIALUpdated 4 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 3 months ago
- AWS OFFICIALUpdated 3 months ago