# BulkInsert et paramétrage de elasticsearch.yml

**URL:** https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868
**Category:** Discussions en français
**Created:** [August 5, 2015, 9:25am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868 "2015-08-05T09:25:38Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Blured\_Derulb](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Blured\_Derulb](https://discuss.elastic.co/u/Blured_Derulb)
#### Post date: [August 5, 2015, 9:25am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/1 "2015-08-05T09:25:38Z")

</div>

Bonjour,

Pour un bulkInsert de 1000 requêtes  
...  
.setBulkActions(1000).setConcurrentRequests(1).build();

Faut il positionner le "threadpool.bulk.queue\_size" à 1000 pour éviter les erreurs du type

EsRejectedExecutionException[rejected execution (queue capacity 100) on org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase$1@3b031126]

?

Sans ça beaucoup de documents ne sont pas insérés.

A quoi sert le threadpool.bulk.size dans ce cas ? Est-ce la taille initiale du pool ?

Merci d'avance pour vos réponses.

Blured.

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [August 5, 2015, 9:41am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/2 "2015-08-05T09:41:03Z")

</div>

`threadpool.bulk.size` sert à indique combien de requêtes de type BULK elasticsearch peut traiter en parallèle. Quelque soit le nombre d'opération à l'intérieur de chaque requête de type bulk.

Je te déconseille de modifier cette valeur.

---

<div class="post-metadata">

### Author: ![Blured\_Derulb](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Blured\_Derulb](https://discuss.elastic.co/u/Blured_Derulb)
#### Post date: [August 5, 2015, 9:43am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/3 "2015-08-05T09:43:52Z")

</div>

Ok merci de ta réponse rapide. Concernant le queue\_size je suis dans le vrai ?

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [August 5, 2015, 10:19am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/4 "2015-08-05T10:19:37Z")

</div>

Désolé. Ma réponse est incorrecte. Je voulais parler de `threadpool.bulk.queue_size`.

D'une manière générale, ne pas toucher à `threadpool.bulk.*`.

---

<div class="post-metadata">

### Author: ![Blured\_Derulb](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Blured\_Derulb](https://discuss.elastic.co/u/Blured_Derulb)
#### Post date: [August 5, 2015, 10:30am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/5 "2015-08-05T10:30:39Z")

</div>

Mais si je n'y touche pas et que je tente d'insérer 50000 documents via ce type d'algo, j’obtiens des myriades d'erreurs de type :

```auto
EsRejectedExecutionException[rejected execution (queue capacity 100) on org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase$1@3b031126]
```

```auto
// initialisation du bulkProcessor
bulkProcessor = BulkProcessor.builder(client, new BulkProcessor.Listener() {
			
@Override
public void beforeBulk(long executionId, BulkRequest request) {
}

@Override
public void afterBulk(long executionId, BulkRequest request, BulkResponse response) {				
  if (response.hasFailures()) {
    for (BulkItemResponse item : response.getItems()) {
      LOGGER.error("Processing to index \"{}\" with type \"{}\" failed for entity id {} with message {}", item.getIndex(), item.getType(), item.getId(), item.getFailureMessage());
      LOGGER.error(response.buildFailureMessage());
   }
}

@Override
public void afterBulk(long executionId, BulkRequest request, Throwable afterBulk)     
{
  LOGGER.error("Error while index in ELS failure:"+afterBulk.getMessage(), afterBulk);
}
}).setBulkActions(5000).setConcurrentRequests(1).build();
```

```auto
// Exécution de N fois ce code (autant de fois que j'aurais d'enregistrement à insérer)
bulkProcessor.add(new IndexRequest(table, type).source(jsonBuilder()
 .startObject()
 .field(CODE,(intCode != null ? intCode.toString() : strCode))
 .field(HASH, newHash)
 .field(TEXT, text)
.endObject()));
```

Y aurait il quelque chose de déconnant dans ce code ?

A+,  
Blured.

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [August 5, 2015, 10:38am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/6 "2015-08-05T10:38:16Z")

</div>

Non. Comme ça, le code me semble correct.

D'autres informations sur la configuration de tes index ?  
As-tu mis énormément de replicas par exemple ?

---

<div class="post-metadata">

### Author: ![Blured\_Derulb](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Blured\_Derulb](https://discuss.elastic.co/u/Blured_Derulb)
#### Post date: [August 5, 2015, 11:07am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/7 "2015-08-05T11:07:37Z")

</div>

J'ai laissé tout par défaut sinon. Pour l'instant 1 serveur Elastic avec 12 indexes et dans chaque index une dizaines de types. Donc à priori il y a un seul replica.

---

<div class="post-metadata">

### Author: ![Blured\_Derulb](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Blured\_Derulb](https://discuss.elastic.co/u/Blured_Derulb)
#### Post date: [August 6, 2015, 9:57am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/8 "2015-08-06T09:57:22Z")

</div>

En fait il y a 29 indexes  
soit 145 shards

Peut être que ça joue ?

Veux-tu des traces particulières, genre \_search\_shards ou autres ?

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [August 6, 2015, 10:09am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/9 "2015-08-06T10:09:52Z")

</div>

si tu indexes dans un seul index à la fois, ça ne devrait pas poser de pb mais si effectivement tu surcharges ta machine en indexant partout, tu risques d'avoir ce genre d'erreur.

Si tu n'as pas besoin de 5 shards par index, commence par réduire ça en 1 shard.  
30 shards sur une machine me semble plus raisonnable.

---

<div class="post-metadata">

### Author: ![Blured\_Derulb](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Blured\_Derulb](https://discuss.elastic.co/u/Blured_Derulb)
#### Post date: [August 6, 2015, 10:14am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/10 "2015-08-06T10:14:27Z")

</div>

En effet, j'ai une série de data que j'indexe dans plusieurs index (un index par langue). Je vais essayer avec 1 shard par index...

---

<div class="post-metadata">

### Author: ![Blured\_Derulb](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Blured\_Derulb](https://discuss.elastic.co/u/Blured_Derulb)
#### Post date: [August 6, 2015, 10:28am UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/11 "2015-08-06T10:28:44Z")

</div>

C'était ça, trop de shard donc saturation du pool.

Merci !

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 6, 2017, 1:51pm UTC](https://discuss.elastic.co/t/bulkinsert-et-parametrage-de-elasticsearch-yml/26868/12 "2017-07-06T13:51:28Z")

</div>


