Cannot set thread_pool setting in Elastic Cloud user settings

Using ES v6.4.3

I'm getting a bunch of TransportService errors when writing a high volume of transactions. The exact error is:

StatusCodeError: 429 - {"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[instance-0000000002][10.44.0.71:19428][indices:data/write/bulk[s][p]]"}],"type":"es_rejected_execution_exception","reason":"rejected execution of org.elasticsearch.transport.TransportService$7@35110df8 on EsThreadPoolExecutor[name = instance-0000000002/write, queue capacity = 200, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@3fd60b4f[Running, pool size = 2, active threads = 2, queued tasks = 200, completed tasks = 1705133]]"},"status":429}

The general consensus seems to be bumping the queue_size so requests don't get dropped. As you can see in the error my queue_size is the default 200, and filled up. (I know simple bumping the queue_size is not a magic solution, but this is exactly what I need in this case)

So following this doc on how to change the elasticsearch.yml setting I try to add the queue_size bump here:

42%20PM

thread_pool.write.queue_size: 2000

And when I save I get this error:

'thread_pool.write.queue_size': is not allowed

I understand the user override settings blacklist certain settings, so if my problem is truly that thread_pool.write.queue_size is blacklisted, how can I access my elasticsearch.yml file to change it?

Thank you!

Dunno where you are getting that consensus from, but I would be confident in saying that it's not the best idea. Have a read of Any idea what these errors mean version 2.4.2 - #5 by jasontedor

If you are using the Elasticsearch Service then you can increase the size of the cluster when you are sending these requests, then downsize when done.
Or you can throttle things in your client when you get a 429.

1 Like

Hey thanks mark, yeah I've read that post on a couple other issue pages. I understand that just increasing size is not the complete solution because it does not address the root of the problem. For my specific situation I'm trying to migrate a large volume of data as quickly as possible so my preference is to bump up queue size while I complete my migration script then reset it back to what it was so my client can operate within its limits.

That being said, do you know I can access the proper elasticsearch.yml file, or is the user setting override the correct one and I'm not using the correct setting?

Thanks!

You can see what settings you can alter right here - https://www.elastic.co/guide/en/cloud/current/ec-add-user-settings.html#ec-es-elasticsearch-settings

If it's not listed, it's not alterable.

Okay thanks Mark

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.