T.L.M.

and

BigQuery

What is BigQuery?

  • analytical database managed by Google
  • can store and process very very large datasets
  • it is very fast and expensive

Pricing

Pay per query

Pay flat fee

More data scanned for query, more cost

Pay for monthly  slots (computation power)

Why do we need it?

  • we don't have historical transactions and operations
  • third-party APIs are too slow, expensive or wrong
  • BigQuery hosts public datasets for ethereum and polygon

How do we use it?

Attempt to backfill live

Attempt to backfill for a year

  • triggered when we see a new wallet address in our system
  • slow because the dataset is not optimized for querying by wallet address
  • queries BigQuery for last year of data for ALL the wallets
  • inefficient use of BigQuery slots
  • fast because the data is optimized for time based queries

May 24 20:44:31.346 [INFO] Running backfill transactions cron
May 24 20:44:31.349 [INFO] Backfilling transactions from 2021-10-16 to 2021-10-09
May 24 20:44:33.130 [INFO] Processing BigQuery job:  wnIRuQQF16WWLgRQirnIneQFytl
May 24 20:45:17.148 [INFO] Fetch and save internal transactions executed map[count:100000 remaining:2361766]
May 24 20:45:34.848 [INFO] Fetch and save internal transactions executed map[count:100000 remaining:2261766]
May 24 20:45:54.230 [INFO] Fetch and save internal transactions executed map[count:100000 remaining:2161766]
...
...
...
May 24 21:00:26.924 [INFO] Fetch and save internal transactions executed map[count:100000 remaining:61766]
May 24 21:00:54.060 [INFO] Fetch and save internal transactions executed map[count:61766 remaining:0]

May 24 21:00:54.077 [INFO] Backfilling transactions from 2021-10-09 to 2021-10-02
May 24 21:00:55.489 [INFO] Processing BigQuery job:  0JzfWnUeriC8KCkN1Sud8rxUTj8
May 24 21:02:10.897 [INFO] Fetch and save internal transactions executed map[count:100000 remaining:2459893]
May 24 21:02:53.119 [INFO] Fetch and save internal transactions executed map[count:100000 remaining:2359893]
May 24 21:03:22.509 [INFO] Fetch and save internal transactions executed map[count:100000 remaining:2259893]
...
...
...

How does it look?

T.L.M.

and

BigQuery

T.L.M. and BigQuery

By Tarun Batra

T.L.M. and BigQuery

  • 387