Vertica configuration groups
Configuration groups support for single-instance vertica Change-Id: I325d46572645cccf2d46fcbd3a134515f198c91a
This commit is contained in:
parent
f200cf24df
commit
d1a6313079
423
specs/mitaka/vertica-configuration-groups.rst
Normal file
423
specs/mitaka/vertica-configuration-groups.rst
Normal file
@ -0,0 +1,423 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
Sections of this template were taken directly from the Nova spec template at:
|
||||
https://github.com/openstack/nova-specs/blob/master/specs/template.rst
|
||||
|
||||
============================
|
||||
Vertica Configuration Groups
|
||||
============================
|
||||
|
||||
Launchpad Blueprint:
|
||||
https://blueprints.launchpad.net/trove/+spec/vertica-configuration-groups
|
||||
|
||||
Problem Description
|
||||
===================
|
||||
|
||||
The Vertica guestagent currently does not support configuration groups for the
|
||||
single instance case.
|
||||
|
||||
Proposed Change
|
||||
===============
|
||||
|
||||
While Vertica has minimal required configuration as one of its design goals, it
|
||||
is nonetheless possible to configure a large number of parameters [1]_.
|
||||
|
||||
Databases in Trove and Vertica
|
||||
------------------------------
|
||||
|
||||
While Trove thinks of instances as being the parent of one or more databases,
|
||||
following the model of single-server MySQL, Vertica supports one or more nodes
|
||||
natively, and databases can span multiple nodes. Configuration options can
|
||||
also be applied at both the node and database level.
|
||||
|
||||
The Vertica guest agent currently does not support multiple Vertica databases
|
||||
for both the single instance and clustered cases, so only configuration
|
||||
options valid at the database level will be exposed.
|
||||
|
||||
Configuration Changes
|
||||
---------------------
|
||||
|
||||
Vertica recommends against writing configuration changes to a configuration
|
||||
file for version 7.1. It is unclear if this applies to 7.2, or has been
|
||||
remedied, but for the purposes of providing support for both 7.1 and 7.2,
|
||||
writing to this file will be avoided [3]_. Configurations can be applied with
|
||||
the use of the ALTER DATABASE command, and current configuration settings can
|
||||
be retrieved via the CONFIGURATION_PARAMETERS system view [2]_.
|
||||
|
||||
Vertica supports 360 different options as of Vertica 7.2.1. Options related to
|
||||
authentication and big data support have been excluded. For a complete list of
|
||||
the options that will be supported, see the Appendix section.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
None
|
||||
|
||||
Database
|
||||
--------
|
||||
|
||||
None
|
||||
|
||||
Public API
|
||||
----------
|
||||
|
||||
None
|
||||
|
||||
Public API Security
|
||||
-------------------
|
||||
|
||||
None
|
||||
|
||||
Python API
|
||||
----------
|
||||
|
||||
None (empty section added after merging)
|
||||
|
||||
CLI (python-troveclient)
|
||||
------------------------
|
||||
|
||||
None (empty section added after merging)
|
||||
|
||||
Internal API
|
||||
------------
|
||||
|
||||
CLI (python-troveclient)
|
||||
------------------------
|
||||
|
||||
This work will enable the following client commands:
|
||||
|
||||
* configuration-attach
|
||||
* configuration-create
|
||||
* configuration-default
|
||||
* configuration-delete
|
||||
* configuration-detach
|
||||
* configuration-instances
|
||||
* configuration-list
|
||||
* configuration-parameter-list
|
||||
* configuration-parameter-show
|
||||
* configuration-patch
|
||||
* configuration-show
|
||||
* configuration-update
|
||||
|
||||
Note that the configuration groups API is not currently supported for clusters,
|
||||
so only support for single-instance Vertica will be provided.
|
||||
|
||||
Guest Agent
|
||||
-----------
|
||||
|
||||
* Implement *update_overrides* and *apply_overrides* in the *manager* and
|
||||
*service* modules.
|
||||
|
||||
The following existing files will be updated:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
guestagent/datastore/experimental/vertica/manager.py
|
||||
guestagent/datastore/experimental/vertica/service.py
|
||||
guestagent/datastore/experimental/vertica/system.py
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Alex Tomic <atomic@tesora.com>
|
||||
|
||||
Milestones
|
||||
----------
|
||||
|
||||
mitaka-3
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
- provide support for viewing and modifying the vertica database-level
|
||||
configuration options
|
||||
|
||||
- implement configuration-related manager API calls:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def update_overrides(self, context, overrides, remove=False)
|
||||
def apply_overrides(self, context, overrides)
|
||||
|
||||
Upgrade Implications
|
||||
====================
|
||||
|
||||
None.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None.
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Unit tests will be added to validate implemented functions, and integration
|
||||
tests added or modified from the new scenario testing framework as needed.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
The datastore documentation should be updated to reflect the enabled features.
|
||||
|
||||
Dashboard Impact (UX)
|
||||
=====================
|
||||
|
||||
None.
|
||||
|
||||
Appendix
|
||||
========
|
||||
|
||||
The following is the list of parameters that will be supported:
|
||||
|
||||
ActivePartitionCount
|
||||
AddressCollectorInterval
|
||||
AdvanceAHMInterval
|
||||
AHMBackupManagement
|
||||
AllowNonAsciiNames
|
||||
AnalyzeRowCountInterval
|
||||
AnalyzeStatsPlanMaxColumns
|
||||
AnalyzeStatsSampleBands
|
||||
ARCCommitPercentage
|
||||
AuditConfidenceLevel
|
||||
AuditErrorTolerance
|
||||
BasicVerticaOptions
|
||||
BlockCacheSize
|
||||
BufferQueryOutputForPossibleRetry
|
||||
CachePositionIndex
|
||||
CascadeResourcePoolAlwaysReplan
|
||||
CatalogCheckpointChunkSizeKB
|
||||
CatalogCheckpointMinLogSizeKB
|
||||
CatalogCheckpointPercent
|
||||
CatalogDeindexRename
|
||||
CheckCRCs
|
||||
CheckDataTargetSortOrder
|
||||
ClusterRecoveryWait
|
||||
CollationExpansion
|
||||
CompressCatalogOnDisk
|
||||
CompressDistCalls
|
||||
CompressNetworkData
|
||||
ComputeApproxNDVsDuringAnalyzeStats
|
||||
ContainersPerProjectionLimit
|
||||
CopyFromVerticaWithIdentity
|
||||
DatabaseHeartbeatInterval
|
||||
DBDCorrelationSampleRowCount
|
||||
DBDCorrelationSampleRowPct
|
||||
DBDCountDistinctSampleRowCount
|
||||
DBDCountDistinctSampleRowPct
|
||||
DBDDeploymentParallelism
|
||||
DBDDynamicSampling
|
||||
DBDEncodingSampleRowCount
|
||||
DBDEncodingSampleRowPct
|
||||
DBDLargestTableRowCountBoundary
|
||||
DBDLogInternalDesignProcess
|
||||
DBDMaxConcurrencyForEncodingExperiment
|
||||
DBDRepLargeRowCountPct
|
||||
DBDRepSmallRowCountPct
|
||||
DBDSampleStorageBandCount
|
||||
DBDSkewDetectionSampleRowCount
|
||||
DBDSkewDetectionSampleRowPct
|
||||
DBDUseOnlyDesignerResourcePool
|
||||
DefaultIntervalStyle
|
||||
DefaultSessionLocale
|
||||
DisableInheritedPrivileges
|
||||
DisableLocalResegmentation
|
||||
DisableNodeDownOptimization
|
||||
DisablePrejoinProjections
|
||||
DisallowMars
|
||||
DiskSpacePollingInterval
|
||||
DMLCancelTM
|
||||
EEVerticaOptions
|
||||
EnableAccessPolicy
|
||||
EnableAllRolesOnLogin
|
||||
EnableApportionLoad
|
||||
EnableAutoDMLStats
|
||||
EnableBlockMemoryManager
|
||||
EnableCooperativeParse
|
||||
EnableDataCollector
|
||||
EnabledCipherSuites
|
||||
EnableEEThreadPool
|
||||
EnableEMMJMultiblockSIPS
|
||||
EnableExprsInProjections
|
||||
EnableForceOuter
|
||||
EnableGroupByProjections
|
||||
EnableJIT
|
||||
EnableNewPrimaryKeysByDefault
|
||||
EnableNewUniqueKeysByDefault
|
||||
EnableParallelHashBuild
|
||||
EnableParallelSort
|
||||
EnablePatternMatchingAnyRow
|
||||
EnablePlanStability
|
||||
EnablePlanStabilityLookup
|
||||
EnableResourcePoolCPUAffinity
|
||||
EnableRuntimePriorityScheduler
|
||||
EnableSSL
|
||||
EnableStorageBundling
|
||||
EnableStrictTimeCasts
|
||||
EnableTopKProjections
|
||||
EnableUDTProjections
|
||||
EnableUniquenessOptimization
|
||||
EnableVirtualCoreCount
|
||||
EpochMapInterval
|
||||
EscapeStringWarning
|
||||
EvaluateDeletePerformanceSampleStorageBandCount
|
||||
EvaluateDeletePerformanceSampleStorageCount
|
||||
ExcludeEphemeralNodesInQueries
|
||||
ExternalTablesExceptionsLimit
|
||||
FailoverToStandbyAfter
|
||||
FencedUDxMemoryLimitMB
|
||||
FilesPerProjectionLimit
|
||||
FlexTableDataTypeGuessMultiplier
|
||||
FlexTableRawSize
|
||||
ForceUDxFencedMode
|
||||
FsyncCatalogForLuck
|
||||
FsyncDataForLuck
|
||||
GBHashMemCapMB
|
||||
GlobalEEProfiling
|
||||
GlobalHeirUsername
|
||||
GlobalQueryProfiling
|
||||
GlobalSessionProfiling
|
||||
GroupGeneratorHashingEnabled
|
||||
HadoopConfDir
|
||||
HCatConnectionTimeout
|
||||
HCatParserName
|
||||
HCatSlowTransferLimit
|
||||
HCatSlowTransferTime
|
||||
HCatSourceName
|
||||
HCatWebserviceName
|
||||
HCatWebserviceVersion
|
||||
HistoryRetentionEpochs
|
||||
HistoryRetentionTime
|
||||
JavaBinaryForUDx
|
||||
JavaSideProcessMinHeapSizeMB
|
||||
KeepMinMaxOnAllColumns
|
||||
LGELagThreshold
|
||||
LoadMaxFinalROSCount
|
||||
LockTimeout
|
||||
LogHeartbeatInterval
|
||||
LowDiskSpaceWarningPct
|
||||
MaxAutoSegColumns
|
||||
MaxBundleableROSSizeKB
|
||||
MaxClientSessions
|
||||
MaxConstraintChecksPerQuery
|
||||
MaxDataCollectorFileSize
|
||||
MaxDesiredEEBlockSize
|
||||
MaxDVROSPerContainer
|
||||
MaxLogLineLength
|
||||
MaxMrgOutROSSizeMB
|
||||
MaxOptMemMB
|
||||
MaxOptMemMBInDBD
|
||||
MaxParsedQuerySizeMB
|
||||
MaxPartitionCount
|
||||
MaxQueryRetries
|
||||
MaxRecoverErrors
|
||||
MaxRecoverHistoricPasses
|
||||
MaxRefreshErrors
|
||||
MaxRefreshHistoricPasses
|
||||
MaxROSPerStratum
|
||||
MergeJoinInnerInitialMB
|
||||
MergeOutCache
|
||||
MergeOutInterval
|
||||
MinimumCatalogDiskMegabytes
|
||||
MinimumDataDiskMegabytes
|
||||
MinimumDataDiskTempMegabytes
|
||||
MinSortMergeJoinMB
|
||||
MoveOutInterval
|
||||
MoveOutMaxAgeEpochs
|
||||
MoveOutMaxAgeTime
|
||||
MoveOutSizePct
|
||||
NewEEGroupBySmallMemMB
|
||||
NewEEROSSubdivisionRows
|
||||
NewEEThreads
|
||||
NoRecoverShutdownWait
|
||||
OptVerticaOptions
|
||||
ParallelizeLocalSegmentLoad
|
||||
PatternMatchAllocator
|
||||
PatternMatchingMatchLimitRecursion
|
||||
PatternMatchingMaxPartition
|
||||
PatternMatchingMaxPartitionMatches
|
||||
PatternMatchingPerMatchWorkspaceSize
|
||||
PatternMatchingUseJit
|
||||
PatternMatchStackAllocator
|
||||
PinProcessors
|
||||
PinProcessorsOffset
|
||||
PreExcavatorReplicatedProjection
|
||||
PruneDataCollectorByTime
|
||||
PruneSystemTableColumns
|
||||
PurgeMergeoutPercent
|
||||
RangeWindowMaxMem
|
||||
ReapBeforeRecover
|
||||
RecoverByContainer
|
||||
RecoveryDirtyTxnWait
|
||||
ReflexiveMoveout
|
||||
RefreshByContainer
|
||||
RemoteInitiatorBufSize
|
||||
RemoveSnapshotInterval
|
||||
ReplayDeleteAlgorithmSwitchThreshold
|
||||
ResLowLimPctOfHighLim
|
||||
RestrictSystemTables
|
||||
ROSCacheBlocks
|
||||
ROSCacheLargeBlocks
|
||||
ROSPerStratum
|
||||
SaveDCEEProfileThresholdUS
|
||||
SecurityAlgorithm
|
||||
SegmentAutoProjection
|
||||
SegmentDataCollector
|
||||
SessionProfilingAgeOut
|
||||
SlowDeleteConsoleWarningLimit
|
||||
SlowDeleteSystemWarningLimit
|
||||
SmallROSSize
|
||||
SnapshotRetentionTime
|
||||
SnmpTrapDestinationsList
|
||||
SnmpTrapEvents
|
||||
SnmpTrapsEnabled
|
||||
SortCheckOption
|
||||
SortOrderReportLevel
|
||||
SortWorkerThreads
|
||||
SSLCA
|
||||
SSLCertificate
|
||||
SSLPrivateKey
|
||||
StandardConformingStrings
|
||||
StrictUDxParameterChecking
|
||||
SyslogEnabled
|
||||
SyslogEvents
|
||||
SyslogFacility
|
||||
SystemMonitorInterval
|
||||
SystemMonitorThreshold
|
||||
TerraceRoutingFactor
|
||||
TextIndexComputeDeletedTokens
|
||||
TextIndexMaxTokenLength
|
||||
TopKHeapMaxMem
|
||||
TransactionIsolationLevel
|
||||
TransactionMode
|
||||
TrustConstraintsAsUnique
|
||||
UDxFencedBlockTimeout
|
||||
UDxFencedCancelTimeout
|
||||
UDxFencedExternalProcedureTimeout
|
||||
UseModularHashForReseg
|
||||
UseOnlyResilientRedistribution
|
||||
UseRecoveringNodesInVirtualTableQueries
|
||||
UseSafeDecompression
|
||||
UseV50IntegerDivision
|
||||
UseZygoteForExternalProcedures
|
||||
WarnOnIncompleteStartupPacket
|
||||
WithClauseMaterialization
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
.. [1] https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/AdministratorsGuide/ConfiguringTheDB/ConfiguringTheDatabase.htm
|
||||
.. [2] https://my.vertica.com/docs/7.2.x/HTML/Content/Authoring/SQLReferenceManual/SystemTables/MONITOR/CONFIGURATION_PARAMETERS.htm
|
||||
.. [3] https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/AdministratorsGuide/ConfiguringTheDB/SettingandClearingConfigParameters.htm
|
Loading…
Reference in New Issue
Block a user