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
- Go to '...'
- Click on '....'
- Scroll down to '....'
- 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