Skip to content

Optimize notary service #4077

@roman-khimov

Description

@roman-khimov

Is your feature request related to a problem? Please describe.

I'm always frustrated when requests cause too much overhead for the notary service. This leads to different errors like

error notary/notary.go:396 failed to finalize fallback transaction, waiting for the next block to retry {"hash": "7e6b7984f5fbf39852d5d4c43282715b407cbb9f9f635a3e033aa9999a85cb8e", "error": "failed to enqueue completed transaction: transaction queue is full"}

Describe the solution you'd like

The main problem there is locking. It's uses a very simple scheme which basically means we're processing things single-core including verification proofing. More fine-grained locking and data localization are needed to make OnNewRequest() work mostly concurrently (it's called this way) and newTxCallbackLoop() mostly independently of other processes.

Describe alternatives you've considered

Things work as is, but we have errors we can avoid sometimes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    I4No visible changesS3Minimally significantU3RegularenhancementImproving existing functionalityperformanceMore of something per second

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions