From bcc52a01733b8154a1b85ff6f8eb52a2bd4e6b28 Mon Sep 17 00:00:00 2001 From: kimchy Date: Wed, 24 Feb 2010 20:45:15 +0200 Subject: [PATCH] add calibrateSizeByDeletes option in merge policies --- .../index/merge/policy/LogByteSizeMergePolicyProvider.java | 7 +++++-- .../index/merge/policy/LogDocMergePolicyProvider.java | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogByteSizeMergePolicyProvider.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogByteSizeMergePolicyProvider.java index 0d8990798a9..6f9faef9de3 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogByteSizeMergePolicyProvider.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogByteSizeMergePolicyProvider.java @@ -39,6 +39,7 @@ public class LogByteSizeMergePolicyProvider extends AbstractIndexShardComponent private final SizeValue maxMergeSize; private final int mergeFactor; private final int maxMergeDocs; + private final boolean calibrateSizeByDeletes; private final Boolean useCompoundFile; @Inject public LogByteSizeMergePolicyProvider(Store store) { @@ -49,9 +50,10 @@ public class LogByteSizeMergePolicyProvider extends AbstractIndexShardComponent this.maxMergeSize = componentSettings.getAsSize("maxMergeSize", new SizeValue((long) LogByteSizeMergePolicy.DEFAULT_MAX_MERGE_MB, SizeUnit.MB)); this.mergeFactor = componentSettings.getAsInt("mergeFactor", LogByteSizeMergePolicy.DEFAULT_MERGE_FACTOR); this.maxMergeDocs = componentSettings.getAsInt("maxMergeDocs", LogByteSizeMergePolicy.DEFAULT_MAX_MERGE_DOCS); + this.calibrateSizeByDeletes = componentSettings.getAsBoolean("calibrateSizeByDeletes", false); this.useCompoundFile = componentSettings.getAsBoolean("useCompoundFile", store == null || store.suggestUseCompoundFile()); - logger.debug("Using [LogByteSize] merge policy with mergeFactor[{}], minMergeSize[{}], maxMergeSize[{}], maxMergeDocs[{}] useCompoundFile[{}]", - new Object[]{mergeFactor, minMergeSize, maxMergeSize, maxMergeDocs, useCompoundFile}); + logger.debug("Using [LogByteSize] merge policy with mergeFactor[{}], minMergeSize[{}], maxMergeSize[{}], maxMergeDocs[{}] useCompoundFile[{}], calibrateSizeByDeletes[{}]", + new Object[]{mergeFactor, minMergeSize, maxMergeSize, maxMergeDocs, useCompoundFile, calibrateSizeByDeletes}); } @Override public LogByteSizeMergePolicy newMergePolicy(IndexWriter indexWriter) { @@ -62,6 +64,7 @@ public class LogByteSizeMergePolicyProvider extends AbstractIndexShardComponent mergePolicy.setMaxMergeDocs(maxMergeDocs); mergePolicy.setUseCompoundFile(useCompoundFile); mergePolicy.setUseCompoundDocStore(useCompoundFile); + mergePolicy.setCalibrateSizeByDeletes(calibrateSizeByDeletes); return mergePolicy; } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogDocMergePolicyProvider.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogDocMergePolicyProvider.java index e4bf7b9cbfa..bce1cb81af5 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogDocMergePolicyProvider.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/merge/policy/LogDocMergePolicyProvider.java @@ -36,6 +36,7 @@ public class LogDocMergePolicyProvider extends AbstractIndexShardComponent imple private final int minMergeDocs; private final int maxMergeDocs; private final int mergeFactor; + private final boolean calibrateSizeByDeletes; private final Boolean useCompoundFile; @Inject public LogDocMergePolicyProvider(Store store) { @@ -45,9 +46,10 @@ public class LogDocMergePolicyProvider extends AbstractIndexShardComponent imple this.minMergeDocs = componentSettings.getAsInt("minMergeDocs", LogDocMergePolicy.DEFAULT_MIN_MERGE_DOCS); this.maxMergeDocs = componentSettings.getAsInt("maxMergeDocs", LogDocMergePolicy.DEFAULT_MAX_MERGE_DOCS); this.mergeFactor = componentSettings.getAsInt("mergeFactor", LogDocMergePolicy.DEFAULT_MERGE_FACTOR); + this.calibrateSizeByDeletes = componentSettings.getAsBoolean("calibrateSizeByDeletes", false); this.useCompoundFile = componentSettings.getAsBoolean("useCompoundFile", store == null || store.suggestUseCompoundFile()); - logger.debug("Using [LogDoc] merge policy with mergeFactor[{}] minMergeDocs[{}], maxMergeDocs[{}], useCompoundFile[{}]", - new Object[]{mergeFactor, minMergeDocs, maxMergeDocs, useCompoundFile}); + logger.debug("Using [LogDoc] merge policy with mergeFactor[{}] minMergeDocs[{}], maxMergeDocs[{}], useCompoundFile[{}], calibrateSizeByDeletes[{}]", + new Object[]{mergeFactor, minMergeDocs, maxMergeDocs, useCompoundFile, calibrateSizeByDeletes}); } @Override public LogDocMergePolicy newMergePolicy(IndexWriter indexWriter) { @@ -57,6 +59,7 @@ public class LogDocMergePolicyProvider extends AbstractIndexShardComponent imple mergePolicy.setMergeFactor(mergeFactor); mergePolicy.setUseCompoundFile(useCompoundFile); mergePolicy.setUseCompoundDocStore(useCompoundFile); + mergePolicy.setCalibrateSizeByDeletes(calibrateSizeByDeletes); return mergePolicy; } }