Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

check undefined when flushing without historical #1698

Merged
merged 2 commits into from
May 14, 2023

Conversation

bz888
Copy link
Contributor

@bz888 bz888 commented May 12, 2023

Description

More testing needed, with the implemented change, indexing is no longer stuck on
block: https://moonbeam.moonscan.io/tx/0xb37715da23703ba76370d788782f810478083876a678d3be88b8fbf5ce8924d2#eventlog

TODO:
Will write unit test for this.

Fixes #1697

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I have tested locally
  • I have performed a self review of my changes
  • Linked to any relevant issues
  • I have added tests relevant to my changes
  • My code is up to date with the base branch

@bz888 bz888 changed the title update fromBelowHeight function check undefined when flushing without historical May 14, 2023
@bz888 bz888 marked this pull request as ready for review May 14, 2023 22:19
@jiqiang90 jiqiang90 merged commit a8e0bf9 into main May 14, 2023
1 check passed
stwiname added a commit that referenced this pull request Jun 27, 2023
* Add support for near projects to the CLI (#1498)

* Add support for near projects to the CLI

* Update common near version

* Update near packages

* [SKIP CI] Prerelease

* Arranges commands in alphabetical order (#1495)

* [SKIP CI] Prerelease

* user process.env.USERPROFILE for windows platform (#1502)

* [SKIP CI] Prerelease

* add blockTime to NodeConfig (#1501)

* [SKIP CI] Prerelease

* [release] 20230131 (#1503)

* Worker use runtime service (#1491)

* draft

* update

* tidy up

* update

* working worker runtimes

* into base class

* clean up

* improve base on review

* [SKIP CI] Prerelease

* Check queue for lower blocks before processing fetched blocks (#1509)

* [SKIP CI] Prerelease

* Support array type in dictionary queries (#1510)

* [SKIP CI] Prerelease

* add flag query-limit (#1514)

* [SKIP CI] Prerelease

* Fix error with tempDsRecords being undefined (#1516)

* Fix error with tempDsRecords being undefined

* Fix schema not being used for metadata, sync dynamic-ds across workers

* Be smarter about reloading dynamic ds in workers

* [SKIP CI] Prerelease

* Update postgraphile enable table partitions (#1520)

* [SKIP CI] Prerelease

* `dictionary-optimisation` flag  (#1519)

* add flag, to orderby blockheight instead of pk

* add comment

* [SKIP CI] Prerelease

* [WIP] Feature/adding postgres ssl connection option (#1513)

* enable ssl option postgres

* Check DB_SSL Env Value , default is false

* adding ENV to pass in the Path to certificates

* adding SSL option for query pacakge.

* use args to pass the postgres ssl informations.

* load file content moved to comman package.

* Update packages/node-core/src/configure/NodeConfig.ts

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* Support Cockroach db (#1521)

* support cockroach db

* Update comment

* [SKIP CI] Prerelease

* ensure pgpool connection work with ssl (#1525)

* [SKIP CI] Prerelease

* Fix issue when use cockroach query service not support pgPartition (#1526)

* [SKIP CI] Prerelease

* [release] 20230221 (#1528)

* fix issue store getByField limit could potentially excess config limit (#1529)

* fix issue store getByField limit could potentially excess config limit

* Update packages/node-core/src/indexer/store.service.ts

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* typo

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* Abi codegen (#1532)

* draft

* fix abi name, add support for transaction

* Update packages/cli/src/template/abi-interface.ts.ejs

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* fix

* fix dependencies

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* Move enum under schema (#1527)

* need fix query get enum

* fix enum query, clean all enums

* add logic to handle original enum type

* fix check exclude constrain check missing schema and table (#1537)

* [SKIP CI] Prerelease

* manual prerelease node for node-core update (#1538)

* [SKIP CI] Prerelease

* resolution for sequelize and prerelease node (#1539)

* [SKIP CI] Prerelease

* fixed the version of sequelize and prerelease node (#1540)

* [SKIP CI] Prerelease

* improve force clean with deprecated enum (#1541)

* [SKIP CI] Prerelease

* Remove exclude constraint (#1543)

* deprecate exclude contraint

* remove unused

* [SKIP CI] Prerelease

* [release] 20230306 (#1544)

* [release] 20230307 (#1545)

* bump yarn.lock, update imports (#1546)

* [SKIP CI] Prerelease

* [release] 20230307 (#1547)

* increase wsProvider timeout (#1550)

* increase wsProvider timeout

* remove .mmr dir

* [SKIP CI] Prerelease

* Use performance.now instead of date for profiler. (#1549)

* add SmartBatchService and BlockSizeBuffer (#1506)

* add SmartBatchService and BlockSizeBuffer

* check memory usage before fetching a batch

* use v8 heap usage statistics

* set block to null after indexing

* extend smart batch service to workers

* make smart batch size injectible

* rebase

* bug fixes

* code cleanup

* assign workers based on free memory

* fix liniting

* cleanup code

* cleanup logs

* clear blocksizebuffer inside smartbatchservice

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* Fix build issue with profiler

* [SKIP CI] Prerelease

* fix abi codegen runtime validation (#1552)

* [SKIP CI] Prerelease

* [release] 20230309 Cli (#1553)

* Fix enum under schema not being escaped (#1555)

* [SKIP CI] Prerelease

* rename `--sponsored-dictionary` to `--dictionary-resolver` (#1559)

* renamed flag

* add missing tpyo

* [SKIP CI] Prerelease

* handle bigint in json.stringify (#1562)

* [SKIP CI] Prerelease

* add validation for `codegen`, grapql conflicts (#1564)

* add test for codegen with reserved keys

* wip validateEntityName fn

* update test, update logc

* remove logs

* [SKIP CI] Prerelease

* Fix codegen when abi is not valid (#1570)

* Fix codegen when abi is not valid

* Update packages/cli/src/controller/codegen-controller.ts

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* Fix block offset been reset to 1 (#1571)

* [SKIP CI] Prerelease

* remove blocking in process queueing (#1572)

* remove blocking in process queueing

* redefine locking pattern

* fix fetchedBlocks status

* [SKIP CI] Prerelease

* improve api error handling (#1576)

* [SKIP CI] Prerelease

* generate sourcemap for projects (#1569)

* improve error handling

* use inline-source-map

* revert api error handling

* beautify minified output from webpack

* code cleanup

* move terser plugin dependency to cli

* log warnings for unresolved stack trace

* get entry file from datasource

* alter convertStack prototype

* add ES2020 to lib compiler option

* update polkadot api to 10.1.4 (#1580)

* update polkadot api to 10.1.4

* update rest of dep

* [release] 20230329 (#1587)

* Multiple endpoints (#1551)

* allow multiple endpoints

* add response time based load balancing

* handle endpoint disconnects

* move fetchBlockBatches to apiService

* cleanup code

* move ConnectionPoolService to node-core

* fix order of module injection in indexermodule

* remove manually disconnecting api

* move api creation code to ApiConnection class

* code cleanup

* handle reconnection error

* change networkEndpoints to networkEndpoint

* change to use yarn build (#1589)

* test prerelease build (#1590)

* [SKIP CI] Prerelease

* [release] 20230330 (#1592)

* Upgrade `apollo-links` (#1593)

* [SKIP CI] Prerelease

* improve blockSize function (#1602)

* improve blockSize function

* add return type to blockSize

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* [release] 20230405 (#1603)

* Add evmChainId to metadata (#1607)

* [SKIP CI] Prerelease

* [release] 20230411 query (#1608)

* Update progress string (#1612)

* [SKIP CI] Prerelease

* Update the jsonField directive to have an option for disabling the index (#1613)

* Update the jsonField directive to have an option for disabling the index

* Clean up

* [SKIP CI] Prerelease

* [release] 20230414 utils (#1615)

* Fix workers fetching blocks out of order (#1616)

* Fix workers fetching blocks out of order

* Remove logging endpoints with api keys

* [SKIP CI] Prerelease

* [release] 20230417 (#1617)

* DB cache and various other improvements (#1561)

* store cache

* improve on flush cache

* draft storeCache service

* update

* minor change

* Updates

* add historical data to cache (#1557)

* add __block_range to creation

* add historical record to cache

* correct range

* Complete cached store methods (#1563)

* add __block_range to creation

add historical record to cache

correct range

cache store methods

start add tests

* fix set

* update

* WIP cache with workers support

* Fix up dynamic ds service, clean up

* Update store serialisation over workers

* Improve unfinalized blocks to work without tx

* Move all chain agnostic code from block dispatchers to node core

* Add comments about worker store conversion

* Fix rebase build issues

* Implement cache for metadata entity (#1565)

* Implement cache for metadata entity

* Clean up and exclude unfinalized blocks keys from metadata cache

* Clean up

* flush with cache stored records size (#1566)

* flush with cache stored records size

* update

* Lfu get cache (#1568)

* still need fix get/count logic

fix method for LFU getCache

* Update tests

* Fix and more tests

* Update base on review

* Fix

* Run all store operations through cache (#1567)

* Run all store operations through hash

* Log when cache flushed, flush cache on application shutdown

* Cache fixes

* Fix removeCache not being init

* POI cache fixes

* Fixes

* Fix caches being cleared after db operation and potential cache changes have happened

* Fix issues with injected store

* Clean up

* Fix tests from rebase

* Fix get cache not being used

* Rename function

* Fix reindex issues

* Fix casing of import

* Clean up, log if finalized is enabled

* parent 8b0b558 (#1574)

author Scott Twiname <skott.twiname@gmail.com> 1679452749 +1300
committer JQQQ <jiqiang90@hotmail.com> 1679461182 +1300

Clean up, log if finalized is enabled

Fix rebase build issues

parent 5e4ea5d
author Scott Twiname <skott.twiname@gmail.com> 1679013784 +1300
committer JQQQ <jiqiang90@hotmail.com> 1679460224 +1300

parent 5e4ea5d
author Scott Twiname <skott.twiname@gmail.com> 1679013784 +1300
committer JQQQ <jiqiang90@hotmail.com> 1679460210 +1300

parent 5e4ea5d
author Scott Twiname <skott.twiname@gmail.com> 1679013784 +1300
committer JQQQ <jiqiang90@hotmail.com> 1679460149 +1300

parent 5e4ea5d
author Scott Twiname <skott.twiname@gmail.com> 1679013784 +1300
committer JQQQ <jiqiang90@hotmail.com> 1679460101 +1300

parent 5e4ea5d
author Scott Twiname <skott.twiname@gmail.com> 1679013784 +1300
committer JQQQ <jiqiang90@hotmail.com> 1679460038 +1300

Run all store operations through hash

Log when cache flushed, flush cache on application shutdown

Fix removeCache not being init

Fixes

Fix issues with injected store

Clean up

Fix removeCache not being init

Fixes

Fix issues with injected store

Clean up

Fix tests from rebase

Fix get cache not being used

tidy up

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* Update metadata when dictionary skips large number of blocks (#1577)

* Update metadata when dictionary skips large number of blocks

* Bring back option to log sql

* Dynamic cache threshold and metrics (#1578)

* Bring back fetch service tests

* Fix build issues

* Tidy up

* Fix workers historical disabled (#1579)

* Fix imports in node core

* improve close record sql, and add flag max size for getCache (#1583)

* improve close record sql, and add flag max size for getCache

* Fix

* escape id string

* Flush data at specific block heights (#1582)

* Flush data at specific block heights

* Add test

* Fix value fromBelowHeight being empty

* Fix mergedRecords potentially being empty

* Fix flushableRecordCounter

* Change log to debug

* Fix dictionary validation

* fix reindex storeCache missing EventEmitterModule (#1585)

* Make flushing cache configurable (#1586)

* Add an index to Id field on entities with historical (#1588)

* Fix tests

* Fix possible infinite loop with cache and fix test (#1591)

* Fix possible infinite loop with cache and fix test

* Add some comments

* Fix more tests

---------

Co-authored-by: JQQQ <jiqiang90@hotmail.com>

* Connect historical option up to cache model option (#1596)

* Only run delete query if there is data to delete

* Add support for non-historical indexing with cache (#1597)

* Add support for non-historical indexing with cache

* Fix api test

* remove constraintDeferrableQuery from hasOne

* fix createUniqueIndexQuery

---------

Co-authored-by: JQQQ <jiqiang90@hotmail.com>

* Cache and worker related fixes (#1598)

* fix index name too long issue (#1599)

* hash the indexes, except pk indexes

* handle existed indexes

* update

* Remove store count function (#1600)

* support cockroach db with non-historical (#1604)

* support cockroach db with non-historical

* Add more comments

* move fetchBlocks to node-core (#1611)

* move fetchBlocks to node-core

* code cleanup

* code cleanup

* remove extra args from fetchBlock

* Fix making data serializable for store bulkCreate and bulkUpdate (#1622)

* Improve big int error in workers (#1619)

* improve error handling in workers

* Make bigint stringifiable in worker and main threads

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* fix type error (#1623)

* fix type error

* cast type

* Flush store cache in operational order (#1614)

* Init

* better log message

* tidy up

* Tidy up and test

* Update packages/node/src/yargs.ts

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* Update packages/node-core/src/indexer/storeCache/storeCache.service.ts

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* add benchmarking

* update benchmarking

* Tidy up

* test

* remove flag, use last flushed index, more tidy up

* make operationIndex required

* fix test

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* update default values

* fix missing indexes on cockroach db (#1624)

* fix getLatest() could be undefined

* Fix StoreOperation not pushing enums

---------

Co-authored-by: JQQQ <jiqiang90@hotmail.com>
Co-authored-by: Naveen V <velnaveen99@gmail.com>

* [SKIP CI] Prerelease

* Testing Framework (#1584)

* implement runTest

* check handler kind for running test

* implement testing service

* run tests in sandbox

* build test files through subql build

* run handlers in sandbox

* cleanup sandbox script and improve logging

* index data with `IndexerManager.indexData`

* use indexBlock() instead of indexData() for tests

* add getter _name to entities during codegen

* code cleanup

* improve logging

* improve logging

* bug fixes

* code cleanup

* improve logging

* indexBlock: get datasource from arguments

* move testingService to node-core

* code cleanup

* update ci

* code cleanup

* cleanup

* cleanup

* cleanup

* handle 0 test cases

* prevent calling getGqlType for 'contains' matcher (#1626)

* prevent calling getGqlType for 'contains' matcher

* get gqlType with ternary condition

* remove indexer module from testing module (#1628)

* remove indexer module from testing module

* cleanup

* cleanup

* Enable strict ts setting for node core (#1625)

* WIP enable strict ts setting for node core

* fix undefined in historicalMarkPreviousHeightRecordsBatch

* typo

* Update typescript, fix most strict related errors

* Strict changes for testing framework

* Runtime fixes

* change log level on cache poi

---------

Co-authored-by: JQQQ <jiqiang90@hotmail.com>

* fix prerelease (#1629)

* [SKIP CI] Prerelease

* [SKIPCI] fix testing publish order (#1630)

* fix missing @subql/testing in node-core (#1631)

* [SKIP CI] Prerelease

* manual prerelease for node-core fix (#1632)

* [SKIP CI] Prerelease

* Improve yargs descriptions (#1633)

* [SKIP CI] Prerelease

* Support tests from ./test and ./tests dirs, fix store blockheight issue

* Remove log

* [SKIP CI] Prerelease

* [release] 2.0.0 (#1627)

* release-2.0.0

* update

* update node changelog

* remove typescript from query dependency

* remove typescript from node dependency

* [SKIPCI] fix release

* [release] 2.0.0 republish (#1635)

* Fix ApiService abstract class, improve getting all DS (#1638)

* Fix ApiService abstract class, improve getting all DS

* Revert api import and minor test fixes

* [SKIP CI] Prerelease

* fix assertion error and pk index type (#1641)

* [SKIP CI] Prerelease

* fix workers crashes error (#1642)

* try to fix workers

* Fix dependency injection

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* WIP fix test part 1 (#1640)

* fix test part 1

* Update packages/node/src/indexer/fetch.service.ts

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* fix tests 20230426

* remove unused code

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* fix missing esModuleInterop (#1644)

* [SKIP CI] Prerelease

* Force flush cache with reindex command (#1645)

* [SKIP CI] Prerelease

* [release] 20230427 (#1646)

* [release] 20230427

* improve log

* Fix api not being defined, fix not using filter on datasources (#1647)

* [SKIP CI] Prerelease

* deprecate local mode (#1648)

* [SKIP CI] Prerelease

* [release] 20230427 patch (#1649)

* Add missing node-fetch dependency to lock down version (#1651)

* [SKIP CI] Prerelease

* postgres based mmr DB (#1618)

* postgres based mmr DB

* add mmr db store option to cli

* add mmr migrate

* bug fixes

* alter file based names

* make migration bidirectional

* cleanup and improve logging

* remove localMode and add mmr-path to args

* remove check for localMode in createProjectSchema

* improve error handling

* improve error handling for postgres mmr table

* improve error handling for mmr indexer

* Fix test, create db table same as other tables, tidy up

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* Extract ProjectService, FetchService and IndexerManager to base classes (#1643)

* Move bulk of project service logic to node core

* Allow overriding buildDictQueryFragment

* Improve visibility of dependencies on project service

* Extract base class from fetch service

* Fix error message

* Fix tests

* Create indexer manager base class

* [SKIP CI] Prerelease

* Move polkadot util imports to utils package, fix api type (#1653)

* Move polkadot util imports to utils package, fix api type

* remove duplicate log

---------

Co-authored-by: JQQQ <jiqiang90@hotmail.com>

* [SKIP CI] Prerelease

* manifest node with options (#1652)

* manifest node with options

* fix

* fix self import

* remove

* Use single version of class-* packages, extract base node-runner

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>

* [SKIP CI] Prerelease

* POI cache fixes (#1660)

* Add tests for cache poi and fix related issuess

* Add mutex around cachePoi

* [SKIP CI] Prerelease

* Add bulkRemove function to store (#1666)

* [SKIP CI] Prerelease

* fix postMmrDb.get and mmrMigrate node sort (#1669)

* [SKIP CI] Prerelease

* Fix indexed column check with historical (#1667)

* [SKIP CI] Prerelease

* Regenerate mmr (#1664)

* preparation

Unsafe mode and draft

bulkUpsert with poi mmr

move service to node-core

* tidy up, fix tests

* Fix gap mmr node missing issue, poiCache use plainPoiModel

* [SKIP CI] Prerelease

* Node core ds processor (#1658)

* Move ds processor to node core

* Clean up deps

* Move forceClean and meta to node-core

* Move configure logic to node core

* Move unfinalzied blocks to node-core

* Add missing logger

* Fix tests

* [SKIP CI] Prerelease

* Add interval to flush the store cache (#1670)

* Add interval to flush the store cache

* Fix infinite loop in nodeConfig

* [SKIP CI] Prerelease

* Remove support for manifest version <1.0.0 (#1659)

* Clean up deps

* Move forceClean and meta to node-core

* Remove support for manifest version <1.0.0

* Fix build issues

* Move sandbox back from node-core

* Move gauge providers into node core

* Tidy up indexer module

* Move FileType to core

* Remove tests for unsupported manifest versions

* [SKIP CI] Prerelease

* Fix Cache missing remove (#1675)

* Fix missing removeCache from flush

* tidy up

* [SKIP CI] Prerelease

* [release] 20230510 (#1673)

* [release] 20230510

* Update package.json

* Update node-core changelog

* Fix missing scheduler subcommands (#1677)

* Fix mmrRegen module missing scheduler

* Fix subcommands module missing scheduler

* [SKIP CI] Prerelease

* Extract dictionary meta validation so it can be overridden (#1679)

* Extract dictionary meta validation so it can be overridden

* Update type

* [SKIP CI] Prerelease

* [release] 20230511 (#1678)

* [release] 20230511

* Update node-core

* [release] 20230511 types (#1680)

* Fix metadata check, allow base indexer manager to parse abis with ethereum (#1682)

* [SKIP CI] Prerelease

* Move validate function to common (#1683)

* Move validate function to common

* Make prepareFilteredData async

* [SKIP CI] Prerelease

* Inject the chain id into sandboxes (#1684)

* [SKIP CI] Prerelease

* [release] 20230511 v2 (#1685)

* Fix flush init before metadata repo set (#1688)

* [SKIP CI] Prerelease

* [release] 20230512 (#1690)

* fix dictionary resolver type (#1692)

* [SKIP CI] Prerelease

* check undefined when flushing without historical (#1698)

* update fromBelowHeight function

* records check

* [SKIP CI] Prerelease

* Fix initial dictionary check before lastBufferedHeight is set (#1700)

* [SKIP CI] Prerelease

* Add DS to FilterTypeMap, remove redundant code (#1703)

* [SKIP CI] Prerelease

* cleanup

---------

Co-authored-by: Scott Twiname <skott.twiname@gmail.com>
Co-authored-by: seandotau <seandotau@gmail.com>
Co-authored-by: Jay Ji <jiqiang90@hotmail.com>
Co-authored-by: Ben <89335033+bz888@users.noreply.github.com>
Co-authored-by: Darwin Subramaniam <darwinsubramaniam@googlemail.com>
Co-authored-by: HZHAIX <zhaihaohk@gmail.com>
Co-authored-by: James Bayly <46693720+jamesbayly@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

flushing when historical is disabled
2 participants