-
Notifications
You must be signed in to change notification settings - Fork 335
Open
Labels
128MB/3s128mb/6sT:investigateFurther investigation neededFurther investigation neededT:optimizationType: OptimizationType: OptimizationWS: v6needs:investigation
Description
Currently, comet holds a mutex for each ABCI call
celestia-core/abci/client/local_client.go
Lines 95 to 100 in 0f6a0e1
func (app *localClient) CheckTx(ctx context.Context, req *types.RequestCheckTx) (*types.ResponseCheckTx, error) { app.mtx.Lock() defer app.mtx.Unlock() return app.Application.CheckTx(ctx, req) }
For obvious reasons, this is terrible. We cannot process txs in the mempool while PrepareProposal
, ProcessProposal
, or FinalizeBlock
is being called. Even RPC queries can holdup consensus as we utilize the Query
method to generate inclusion proofs.
In theory, most of these we should be able to remove. The extent of work that is required to make this doable is TBD. afaik, this lock has always been included in comet. Some projects such as SEI have removed it
Metadata
Metadata
Assignees
Labels
128MB/3s128mb/6sT:investigateFurther investigation neededFurther investigation neededT:optimizationType: OptimizationType: OptimizationWS: v6needs:investigation
Type
Projects
Status
Needs Triage