|
5 | 5 | ArangoSearchViewLinkOptions, |
6 | 6 | ArangoSearchViewPropertiesOptions, |
7 | 7 | CreateArangoSearchViewOptions, |
| 8 | + TierConsolidationPolicy, |
8 | 9 | View, |
9 | 10 | ViewProperties, |
10 | 11 | } from 'arangojs/view'; |
@@ -59,6 +60,12 @@ export interface ArangoSearchConfiguration { |
59 | 60 | * Wait at least this many commits before removing unused files in the data directory |
60 | 61 | */ |
61 | 62 | readonly cleanupIntervalStep?: number; |
| 63 | + |
| 64 | + /** |
| 65 | + * Specify options of the consolidation policy. If not specified, new views will use defaults |
| 66 | + * and existing views will not be changed. |
| 67 | + */ |
| 68 | + readonly consolidationPolicy?: TierConsolidationPolicy; |
62 | 69 | } |
63 | 70 |
|
64 | 71 | export function getRequiredViewsFromModel(model: Model): ReadonlyArray<ArangoSearchDefinition> { |
@@ -189,6 +196,8 @@ function getPropertiesFromDefinition( |
189 | 196 | cleanupIntervalStep: |
190 | 197 | performanceParams.cleanupIntervalStep ?? configuration?.cleanupIntervalStep ?? 2, |
191 | 198 |
|
| 199 | + consolidationPolicy: configuration?.consolidationPolicy, |
| 200 | + |
192 | 201 | primarySort: definition?.primarySort ? definition.primarySort.slice() : [], |
193 | 202 | }; |
194 | 203 |
|
@@ -278,7 +287,10 @@ export function isEqualProperties( |
278 | 287 | definitionProperties.consolidationIntervalMsec, |
279 | 288 | viewProperties.consolidationIntervalMsec, |
280 | 289 | ) && |
281 | | - isEqual(definitionProperties.cleanupIntervalStep, viewProperties.cleanupIntervalStep) |
| 290 | + isEqual(definitionProperties.cleanupIntervalStep, viewProperties.cleanupIntervalStep) && |
| 291 | + // only compare consolidationPolicy if it's configured |
| 292 | + (!definitionProperties.consolidationPolicy || |
| 293 | + isEqual(definitionProperties.consolidationPolicy, viewProperties.consolidationPolicy)) |
282 | 294 | ); |
283 | 295 | } |
284 | 296 |
|
|
0 commit comments