Skip to content

Refactor TransportUpdateAction implementation to use TransportShardBulkAction instead of invoking client.bulk() #15264

@shwetathareja

Description

@shwetathareja

Describe the bug

Refactor the TransportUpdateAction implementation to use TransportShardBulkAction directly instead of invoking client.bulk() which adds another hop to call local transport and then it creates shard level request. This becomes even more expensive when there are conflicts during update and request has to be retried again via TransportBulkAction -> TransportShardBulkAction and adds latency overhead. The current implementation has other side effects like #15261 where it calls client.bulk() and results in un-necessary refreshes as it is triggered as bulk with single document and even if that document fails overall request is not considered as failure.

Related component

Indexing

To Reproduce

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

Update operation should invoke shard action directly and retries should be performed on the shard locally instead of re-triggering the request from TransportBulkAction

Additional Details

No response

Metadata

Metadata

Assignees

Labels

IndexingIndexing, Bulk Indexing and anything related to indexingbugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions