If you run 16 python processes, why do you run 20 Java threads and not 16? Most important is the bulk action size (how many requests are sent) and the concurrency (how many bulk requests are active), also the bulk request volume.
I recommend to control the concurrency, your code does not do it. It is not a question of actionGet() blocking. You push blindly data to the cluster no matter what other threads are doing. A more polite way would be to find out if a concurrency or volume threshold has been exceeded, so it can be decided if the client should wait for bulk responses before sending a new bulk request. All of this is solved by BulkProcessor. Regarding your exception message, you should post complete code (both python and Java). It is not possible to trace bugs in your code by looking at code fragments/pseudo code. Jörg On Sat, Mar 29, 2014 at 8:19 PM, <[email protected]> wrote: > By the way I can successfully run 16 python processes no problem. > So the server can handle concurrent bulk requests. > The problem is with my java code as it somehow starts threads indefinitely > > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAKdsXoHUiASSj5nU-PGvx%3DsTuHv7-MQswmLdVDNnmsdmwJBztw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
