Customers with large databases can have issues with the maven metadata rebuild with timeouts. Maven metadata can be rebuilt with the explicit task or as a side effect of snapshot removal tasks.
Currently this implementation uses an asynchronous Orient query where Orient is feeding results into the backing queue faster than the metadata code can process them. Ultimately once the limits of the backing queue are hit (defaults are size 128, timeout 1 minute) then an error is thrown:
One of the approaches to alleviate this issue without looking at larger re-writes is that we want to make these values configurable
- The MetadataRebuilder.browseGAVs query needs to ultimately use OrientAsyncHelper.asyncIterable with the bufferSize and timeoutSeconds options. This will require adding a StorageTx.browse that exposes these two params.
- Configuration option for the buffer size in browseGAVs query. Default should be 1000
- Configuration option for the timeout in the browseGAVs query. Default should be 60 seconds