graphprotocol / graphprotocol/graph-node
Make queries deterministic when using read replicas
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Rust
- Sterne
- 3.2k
- Forks
- 1.1k
- Ø Merge
- 4 T. 1 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
When graph-node uses a shard that has asynchronous read replicas, query results are not deterministic because the read replicas can trail behind the main database, usually up to 30s.
When we execute a GraphQL query, we determine the block at which to execute by looking at the main database; fetching the data for the query result might be done against one of the read replicas which can lag behind the main database, and so even though we claim that the query was executed against block 100, the data that we use for the result might only be up to block 99.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie damit, die Ausführung von GraphQL-Abfragen von der Blockauswahl in der Hauptdatenbank über das Abrufen aus Shards und read-replicas hinweg nachzuverfolgen. Reproduzieren Sie den Fall, in dem eine read-replica dem ausgewählten Block um einen oder mehrere Blöcke hinterherhinkt, und definieren und testen Sie anschließend ein Verhalten, das den gemeldeten Block und die zurückgegebenen Daten konsistent hält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- graphql, rust
- Bereich
- backend-api-design, databases, distributed-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100