subgraphs icon indicating copy to clipboard operation
subgraphs copied to clipboard

#feature; All IDs to `Bytes`

Open melotik opened this issue 2 years ago • 2 comments

All IDs moved from type ID (which is a string) to Bytes.

Outcome:

This will speed up subgraph querying

Considerations:

  • This should not be too hard of a change, but it will propogate mapping changes and resyncs on all subgraphs using type ID. Will also take time to track and backfill. This kind of change will take a lot of time operationally.
  • Downstream dependencies assume that the ID will not change (assumptions are case sensitive). This will require coordination with other layers of the stack.

melotik avatar Mar 03 '23 21:03 melotik

Consideration: Maybe we can do this just for subgraphs that are having consistent query speed issues so we do not have to rebackfill everything at once and make the load lighter for us.

melotik avatar Mar 07 '23 17:03 melotik

Something to take into consideration with this change is that prior to graph-node version 0.30.0, you could not use less than and greater than filter on fields of type Bytes (see this changelog). Indexers running outdated graph nodes would therefore serve subgraphs with inconsistent schemas (id_gt would work for some indexers and not others). This would also break pagination in some cases, which relies on id filters.

Case in point, the Messari Uniswap V3 subgraph deployed to the Arbitrum network does not allow using the id_gt filter.

@melotik @bye43

cvauclair avatar Nov 10 '23 22:11 cvauclair