@@ -51,29 +51,39 @@ public MergedSegmentWarmer(
5151
5252 @ Override
5353 public void warm (LeafReader leafReader ) throws IOException {
54- if (shouldWarm () == false ) {
55- return ;
56- }
57- // IndexWriter.IndexReaderWarmer#warm is called by IndexWriter#mergeMiddle. The type of leafReader should be SegmentReader.
58- assert leafReader instanceof SegmentReader ;
59- assert indexShard .indexSettings ().isSegRepLocalEnabled () || indexShard .indexSettings ().isRemoteStoreEnabled ();
54+ try {
55+ if (shouldWarm () == false ) {
56+ return ;
57+ }
58+ // IndexWriter.IndexReaderWarmer#warm is called by IndexWriter#mergeMiddle. The type of leafReader should be SegmentReader.
59+ assert leafReader instanceof SegmentReader ;
60+ assert indexShard .indexSettings ().isSegRepLocalEnabled () || indexShard .indexSettings ().isRemoteStoreEnabled ();
6061
61- long startTime = System .currentTimeMillis ();
62- SegmentCommitInfo segmentCommitInfo = ((SegmentReader ) leafReader ).getSegmentInfo ();
63- logger .trace (() -> new ParameterizedMessage ("Warming segment: {}" , segmentCommitInfo ));
64- indexShard .publishMergedSegment (segmentCommitInfo );
65- logger .trace (() -> {
66- long segmentSize = -1 ;
67- try {
68- segmentSize = segmentCommitInfo .sizeInBytes ();
69- } catch (IOException ignored ) {}
70- return new ParameterizedMessage (
71- "Completed segment warming for {}. Size: {}B, Timing: {}ms" ,
72- segmentCommitInfo .info .name ,
73- segmentSize ,
74- (System .currentTimeMillis () - startTime )
62+ long startTime = System .currentTimeMillis ();
63+ SegmentCommitInfo segmentCommitInfo = ((SegmentReader ) leafReader ).getSegmentInfo ();
64+ logger .info (() -> new ParameterizedMessage ("Warming segment: {}" , segmentCommitInfo ));
65+ indexShard .publishMergedSegment (segmentCommitInfo );
66+ logger .trace (() -> {
67+ long segmentSize = -1 ;
68+ try {
69+ segmentSize = segmentCommitInfo .sizeInBytes ();
70+ } catch (IOException ignored ) {}
71+ return new ParameterizedMessage (
72+ "Completed segment warming for {}. Size: {}B, Timing: {}ms" ,
73+ segmentCommitInfo .info .name ,
74+ segmentSize ,
75+ (System .currentTimeMillis () - startTime )
76+ );
77+ });
78+ } catch (Exception e ) {
79+ logger .warn (
80+ () -> new ParameterizedMessage (
81+ "throw exception during merged segment warmer, skip merged segment {} warmer" ,
82+ ((SegmentReader ) leafReader ).getSegmentName ()
83+ ),
84+ e
7585 );
76- });
86+ }
7787 }
7888
7989 // package-private for tests
0 commit comments