Skip to content

Commit e4ea4cc

Browse files
kh3raAditya Khera
authored andcommitted
Bug fixes
Signed-off-by: kh3ra <adityakh3ra@gmail.com>
1 parent 19af37a commit e4ea4cc

File tree

6 files changed

+25
-6
lines changed

6 files changed

+25
-6
lines changed

server/src/main/java/org/opensearch/common/settings/IndexScopedSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,10 @@ public final class IndexScopedSettings extends AbstractScopedSettings {
288288
IndexSettings.INDEX_DERIVED_SOURCE_SETTING,
289289
IndexSettings.INDEX_DERIVED_SOURCE_TRANSLOG_ENABLED_SETTING,
290290

291+
// Settings for merged segment warmer backpressure
292+
IndexSettings.INDEX_MERGED_SEGMENT_WARMER_PRESSURE_ENABLED,
293+
IndexSettings.INDEX_MERGED_SEGMENT_WARMER_MAX_CONCURRENT_WARMS_FACTOR,
294+
291295
// validate that built-in similarities don't get redefined
292296
Setting.groupSetting("index.similarity.", (s) -> {
293297
Map<String, Settings> groups = s.getAsGroups();

server/src/main/java/org/opensearch/index/IndexSettings.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -800,16 +800,16 @@ public static IndexMergePolicy fromString(String text) {
800800
"index.merged_segment_warmer.pressure.enabled",
801801
true,
802802
Setting.Property.Dynamic,
803-
Setting.Property.NodeScope
803+
Setting.Property.IndexScope
804804
);
805805

806806
public static final Setting<Double> INDEX_MERGED_SEGMENT_WARMER_MAX_CONCURRENT_WARMS_FACTOR = Setting.doubleSetting(
807807
"index.merged_segment_warmer.max_concurrent_warms_factor",
808-
0.5,
808+
0.5d,
809809
0,
810810
1,
811811
Setting.Property.Dynamic,
812-
Setting.Property.NodeScope
812+
Setting.Property.IndexScope
813813
);
814814

815815
public static final Setting<Boolean> INDEX_DERIVED_SOURCE_SETTING = Setting.boolSetting(
@@ -1121,6 +1121,8 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti
11211121
derivedSourceEnabled = scopedSettings.get(INDEX_DERIVED_SOURCE_SETTING);
11221122
derivedSourceEnabledForTranslog = scopedSettings.get(INDEX_DERIVED_SOURCE_TRANSLOG_ENABLED_SETTING);
11231123
scopedSettings.addSettingsUpdateConsumer(INDEX_DERIVED_SOURCE_TRANSLOG_ENABLED_SETTING, this::setDerivedSourceEnabledForTranslog);
1124+
this.mergedSegmentWarmerPressureEnabled = scopedSettings.get(INDEX_MERGED_SEGMENT_WARMER_PRESSURE_ENABLED);
1125+
this.maxConcurrentMergedSegmentWarmsFactor = scopedSettings.get(INDEX_MERGED_SEGMENT_WARMER_MAX_CONCURRENT_WARMS_FACTOR);
11241126
/* There was unintentional breaking change got introduced with [OpenSearch-6424](https://github.com/opensearch-project/OpenSearch/pull/6424) (version 2.7).
11251127
* For indices created prior version (prior to 2.7) which has IndexSort type, they used to type cast the SortField.Type
11261128
* to higher bytes size like integer to long. This behavior was changed from OpenSearch 2.7 version not to

server/src/main/java/org/opensearch/index/merge/MergedSegmentWarmerPressureService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public class MergedSegmentWarmerPressureService {
3535

3636
public MergedSegmentWarmerPressureService(IndexShard indexShard) {
3737
this.pressureSettings = new PressureSettings(indexShard);
38-
this.throttlePredicates = List.of(new ConcurrencyLimiterPredicate(indexShard, pressureSettings));
3938
this.logger = Loggers.getLogger(MergedSegmentWarmerPressureService.class, indexShard.shardId());
39+
this.throttlePredicates = List.of(new ConcurrencyLimiterPredicate(indexShard, pressureSettings));
4040
}
4141

4242
public boolean isEnabled() {
@@ -117,7 +117,7 @@ String name() {
117117
String rejectionMessage(MergedSegmentWarmerStats stats) {
118118
long maxAllowed = calculateMaxAllowedConcurrentWarms(indexShard.getMaxMergesAllowed());
119119
return super.rejectionMessage(stats) + String.format(
120-
Locale.ROOT,
120+
Locale.ROOT,
121121
"\nCurrent ongoing warms: %d, max allowed: %d",
122122
stats.getOngoingWarms(),
123123
maxAllowed
@@ -128,7 +128,6 @@ String rejectionMessage(MergedSegmentWarmerStats stats) {
128128
public boolean test(MergedSegmentWarmerStats statsSnapshot) {
129129
long onGoingWarms = statsSnapshot.getOngoingWarms();
130130
long maxAllowedWarms = calculateMaxAllowedConcurrentWarms(indexShard.getMaxMergesAllowed());
131-
132131
return maxAllowedWarms > onGoingWarms;
133132
}
134133
}

server/src/main/java/org/opensearch/rest/action/cat/RestIndicesAction.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,12 @@ protected Table getTableWithHeader(final RestRequest request, final PageToken pa
664664
"default:false;text-align:right;desc:total wallclock time spent sending merged segments by a primary shard"
665665
);
666666

667+
table.addCell(
668+
"merged_segment_warmer.total_rejected_warms",
669+
"alias:mswtrw,mergedSegmentWarmerTotalRejectedWarms;default:false;text-align:right;desc:UPDATE"
670+
);
671+
table.addCell("pri.merged_segment_warmer.total_rejected_warms", "default:false;text-align:right;desc:UPDATE");
672+
667673
table.addCell("refresh.total", "sibling:pri;alias:rto,refreshTotal;default:false;text-align:right;desc:total refreshes");
668674
table.addCell("pri.refresh.total", "default:false;text-align:right;desc:total refreshes");
669675

server/src/main/java/org/opensearch/rest/action/cat/RestNodesAction.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,10 @@ protected Table getTableWithHeader(final RestRequest request) {
307307
"merges.merged_segment_warmer.total_send_time",
308308
"alias:mswtst,mergedSegmentWarmerTotalSendTime;default:false;text-align:right;desc:total wallclock time spent sending merged segments by a primary shard"
309309
);
310+
table.addCell(
311+
"merged_segment_warmer.total_rejected_warms",
312+
"alias:mswtrw,mergedSegmentWarmerTotalRejectedWarms;default:false;text-align:right;desc:UPDATE"
313+
);
310314

311315
table.addCell("refresh.total", "alias:rto,refreshTotal;default:false;text-align:right;desc:total refreshes");
312316
table.addCell("refresh.time", "alias:rti,refreshTime;default:false;text-align:right;desc:time spent in refreshes");

server/src/main/java/org/opensearch/rest/action/cat/RestShardsAction.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,10 @@ protected Table getTableWithHeader(final RestRequest request, final PageToken pa
247247
"merges.merged_segment_warmer.total_send_time",
248248
"alias:mswtst,mergedSegmentWarmerTotalSendTime;default:false;text-align:right;desc:total wallclock time spent sending merged segments by a primary shard"
249249
);
250+
table.addCell(
251+
"merged_segment_warmer.total_rejected_warms",
252+
"alias:mswtrw,mergedSegmentWarmerTotalRejectedWarms;default:false;text-align:right;desc:UPDATE"
253+
);
250254

251255
table.addCell("refresh.total", "alias:rto,refreshTotal;default:false;text-align:right;desc:total refreshes");
252256
table.addCell("refresh.time", "alias:rti,refreshTime;default:false;text-align:right;desc:time spent in refreshes");

0 commit comments

Comments
 (0)