graphprotocol / graphprotocol/graph-node
[Feature] Graceful shutdown
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.2k
- Forks
- 1.1k
- Avg merge
- 4d 1h
- Merged PRs (30d)
- 1
Description
Description
I'm using graph-node in kubernetes with a sql proxy to connect to postgresql.
When I do a replace of the graph-node, kubernetes sends a SIGTERM and will wait 30s before forcing a shutdown.
I'm waiting 30s in the SQL proxy to let the graph-node to finish its queries.
But the graph-node does not stop, It just sends errors because the database goes away and waits for kubernetes to force the kill of the pod.
A nice feature would be to permit a graceful shutdown of the graph-node.
It should stop indexing on SIGTERM, finish its sql queries and disconnect to the database.
More, it can prevent some unexpected issues in postgresql database like bad block caching.
An indexer node or query has actually the same behaviour.
Are you aware of any blockers that must be resolved before implementing this feature? If so, which? Link to any relevant GitHub issues.
No response
Some information to help us out
- Tick this box if you plan on implementing this feature yourself.
- I have searched the issue tracker to make sure this issue is not a duplicate.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how graph-node handles SIGTERM and how its indexing and query processes are stopped. Check the shutdown behavior with Kubernetes and the SQL proxy, then verify that indexing stops, in-flight SQL queries finish, and the PostgreSQL connection is disconnected before the 30-second termination window ends.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, postgresql, rust
- Domain
- backend, databases, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100