mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:06:18 +01:00 
			
		
		
		
	Fix for gitea putting everything into one request without batching and sending it to Elasticsearch for indexing as issued in #28117 This issue occured in large repositories while Gitea tries to index the code using ElasticSearch. I've applied necessary changes that takes batch length from below config (app.ini) ``` [queue.code_indexer] BATCH_LENGTH=<length_int> ``` and batches all requests to Elasticsearch in chunks as configured in the above config
This commit is contained in:
		| @@ -180,12 +180,18 @@ func (b *Indexer) Index(ctx context.Context, repo *repo_model.Repository, sha st | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if len(reqs) > 0 { | 	if len(reqs) > 0 { | ||||||
|  | 		esBatchSize := 50 | ||||||
|  |  | ||||||
|  | 		for i := 0; i < len(reqs); i += esBatchSize { | ||||||
| 			_, err := b.inner.Client.Bulk(). | 			_, err := b.inner.Client.Bulk(). | ||||||
| 				Index(b.inner.VersionedIndexName()). | 				Index(b.inner.VersionedIndexName()). | ||||||
| 			Add(reqs...). | 				Add(reqs[i:min(i+esBatchSize, len(reqs))]...). | ||||||
| 				Do(ctx) | 				Do(ctx) | ||||||
|  | 			if err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user