blob: 06f9f7b7c2e6712f2b57df1f5c76e334ddabad67 [file] [log] [blame]
//-
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
include /app/helpers/jade/mixins
-var form = 'memoryConfiguration'
-var model = 'backupItem.memoryConfiguration'
-var memoryPolicies = model + '.memoryPolicies'
.panel.panel-default(ng-if='$ctrl.available("2.0.0")' ng-form=form novalidate)
.panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
ignite-form-panel-chevron
label Memory configuration
ignite-form-field-tooltip.tipLabel
| Page memory is a manageable off-heap based memory architecture that is split into pages of fixed size#[br]
| #[a(href="https://apacheignite.readme.io/docs/page-memory" target="_blank") More info]
ignite-form-revert
.panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
.settings-row
+number-min-max('Page size:', model + '.pageSize', '"MemoryConfigurationPageSize"',
'true', '2048', '1024', '16384', 'Every memory region is split on pages of fixed size')
.settings-row
+number('Concurrency level:', model + '.concurrencyLevel', '"MemoryConfigurationConcurrencyLevel"',
'true', 'availableProcessors', '2', 'The number of concurrent segments in Ignite internal page mapping tables')
.settings-row
+ignite-form-group
ignite-form-field-label
| System cache
ignite-form-group-tooltip
| System cache properties
.group-content
.details-row
+number('Initial size:', model + '.systemCacheInitialSize', '"systemCacheInitialSize"',
'true', '41943040', '10485760', 'Initial size of a memory region reserved for system cache')
.details-row
+number('Maximum size:', model + '.systemCacheMaxSize', '"systemCacheMaxSize"',
'true', '104857600', '10485760', 'Maximum size of a memory region reserved for system cache')
.settings-row
+ignite-form-group
ignite-form-field-label
| Memory policies
ignite-form-group-tooltip
| Memory policies configuration
.group-content
.details-row
+text('Default region name:', model + '.defaultMemoryPolicyName', '"defaultMemoryPolicyName"',
'false', 'default', 'Name of the memory policy that defines the default memory region')
.details-row(ng-hide='(' + model + '.defaultMemoryPolicyName || "default") !== "default"')
+number('Default region size:', model + '.defaultMemoryPolicySize', '"defaultMemoryPolicySize"',
'true', '0.8 * totalMemoryAvailable', '10485760',
'Size of the memory policy that defines the default memory region')
.details-row(ng-init='memoryPoliciesTbl={type: "memoryPolicies", model: "memoryPolicies", focusId: "name", ui: "memory-policies-table"}')
+ignite-form-group()
ignite-form-field-label
| Configured policies
ignite-form-group-tooltip
| List of configured policies
ignite-form-group-add(ng-click='tableNewItem(memoryPoliciesTbl)')
| Add Memory policy configuration
.group-content-empty(ng-if=`!(${memoryPolicies} && ${memoryPolicies}.length > 0)`)
| Not defined
.group-content(ng-show=`${memoryPolicies} && ${memoryPolicies}.length > 0` ng-repeat=`model in ${memoryPolicies} track by $index`)
hr(ng-if='$index != 0')
.settings-row
+text-enabled-autofocus('Name:', 'model.name', '"MemoryPolicyName" + $index', 'true', 'false', 'default', 'Memory policy name')
+table-remove-button(memoryPolicies, 'Remove memory configuration')
.settings-row
+number('Initial size:', 'model.initialSize', '"MemoryPolicyInitialSize" + $index',
'true', '268435456', '10485760', 'Initial memory region size defined by this memory policy')
.settings-row
+number('Maximum size:', 'model.maxSize', '"MemoryPolicyMaxSize" + $index',
'true', '0.8 * totalMemoryAvailable', '10485760', 'Maximum memory region size defined by this memory policy')
.settings-row
+text('Swap file path:', 'model.swapFilePath', '"MemoryPolicySwapFilePath" + $index', 'false',
'Input swap file path', 'An optional path to a memory mapped file for this memory policy')
.settings-row
+dropdown('Eviction mode:', 'model.pageEvictionMode', '"MemoryPolicyPageEvictionMode"', 'true', 'DISABLED',
'[\
{value: "DISABLED", label: "DISABLED"},\
{value: "RANDOM_LRU", label: "RANDOM_LRU"},\
{value: "RANDOM_2_LRU", label: "RANDOM_2_LRU"}\
]',
'An algorithm for memory pages eviction\
<ul>\
<li>DISABLED - Eviction is disabled</li>\
<li>RANDOM_LRU - Once a memory region defined by a memory policy is configured, an off - heap array is allocated to track last usage timestamp for every individual data page</li>\
<li>RANDOM_2_LRU - Differs from Random - LRU only in a way that two latest access timestamps are stored for every data page</li>\
</ul>')
.settings-row
+number-min-max-step('Eviction threshold:', 'model.evictionThreshold', '"MemoryPolicyEvictionThreshold" + $index',
'true', '0.9', '0.5', '0.999', '0.05', 'A threshold for memory pages eviction initiation')
.settings-row
+number('Empty pages pool size:', 'model.emptyPagesPoolSize', '"MemoryPolicyEmptyPagesPoolSize" + $index',
'true', '100', '10', 'The minimal number of empty pages to be present in reuse lists for this memory policy')
.settings-row
+checkbox('Metrics enabled', 'model.metricsEnabled', '"MemoryPolicyMetricsEnabled" + $index',
'Whether memory metrics are enabled by default on node startup')
//- Since ignite 2.1
.div(ng-if='$ctrl.available("2.1.0")')
.settings-row
+number('Sub intervals:', 'model.subIntervals', '"MemoryPolicySubIntervals" + $index',
'true', '5', '1', 'A number of sub-intervals the whole rate time interval will be split into to calculate allocation and eviction rates')
.settings-row
+number('Rate time interval:', 'model.rateTimeInterval', '"MemoryPolicyRateTimeInterval" + $index',
'true', '60000', '1000', 'Time interval for allocation rate and eviction rate monitoring purposes')
.col-sm-6
+preview-xml-java(model, 'clusterMemory')