OpenSearch/docs/plugins/store-smb.asciidoc

57 lines
1.9 KiB
Plaintext
Raw Normal View History

[[store-smb]]
=== Store SMB Plugin
The Store SMB plugin works around for a bug in Windows SMB and Java on windows.
:plugin_name: store-smb
include::install_remove.asciidoc[]
[[store-smb-usage]]
==== Working around a bug in Windows SMB and Java on windows
When using a shared file system based on the SMB protocol (like Azure File Service) to store indices, the way Lucene
open index segment files is with a write only flag. This is the _correct_ way to open the files, as they will only be
used for writes and allows different FS implementations to optimize for it. Sadly, in windows with SMB, this disables
the cache manager, causing writes to be slow. This has been described in
https://issues.apache.org/jira/browse/LUCENE-6176[LUCENE-6176], but it affects each and every Java program out there!.
This need and must be fixed outside of ES and/or Lucene, either in windows or OpenJDK. For now, we are providing an
experimental support to open the files with read flag, but this should be considered experimental and the correct way
to fix it is in OpenJDK or Windows.
The Store SMB plugin provides two storage types optimized for SMB:
`smb_mmap_fs`::
a SMB specific implementation of the default
{ref}/index-modules-store.html#mmapfs[mmap fs]
`smb_simple_fs`::
a SMB specific implementation of the default
{ref}/index-modules-store.html#simplefs[simple fs]
To use one of these specific storage types, you need to install the Store SMB plugin and restart the node.
Then configure Elasticsearch to set the storage type you want.
This can be configured for all indices by adding this to the `elasticsearch.yml` file:
[source,yaml]
----
index.store.type: smb_simple_fs
----
Note that setting will be applied for newly created indices.
It can also be set on a per-index basis at index creation time:
[source,js]
----
Update the default for include_type_name to false. (#37285) * Default include_type_name to false for get and put mappings. * Default include_type_name to false for get field mappings. * Add a constant for the default include_type_name value. * Default include_type_name to false for get and put index templates. * Default include_type_name to false for create index. * Update create index calls in REST documentation to use include_type_name=true. * Some minor clean-ups around the get index API. * In REST tests, use include_type_name=true by default for index creation. * Make sure to use 'expression == false'. * Clarify the different IndexTemplateMetaData toXContent methods. * Fix FullClusterRestartIT#testSnapshotRestore. * Fix the ml_anomalies_default_mappings test. * Fix GetFieldMappingsResponseTests and GetIndexTemplateResponseTests. We make sure to specify include_type_name=true during xContent parsing, so we continue to test the legacy typed responses. XContent generation for the typeless responses is currently only covered by REST tests, but we will be adding unit test coverage for these as we implement each typeless API in the Java HLRC. This commit also refactors GetMappingsResponse to follow the same appraoch as the other mappings-related responses, where we read include_type_name out of the xContent params, instead of creating a second toXContent method. This gives better consistency in the response parsing code. * Fix more REST tests. * Improve some wording in the create index documentation. * Add a note about types removal in the create index docs. * Fix SmokeTestMonitoringWithSecurityIT#testHTTPExporterWithSSL. * Make sure to mention include_type_name in the REST docs for affected APIs. * Make sure to use 'expression == false' in FullClusterRestartIT. * Mention include_type_name in the REST templates docs.
2019-01-14 16:08:01 -05:00
PUT my_index?include_type_name=true
{
"settings": {
"index.store.type": "smb_mmap_fs"
}
}
----
// CONSOLE