Class SparkseeConfig

java.lang.Object
com.sparsity.sparksee.gdb.SparkseeConfig

public class SparkseeConfig extends Object
Sparksee configuration class.

If not specified, 0 means unlimited which is the maximum available. For the pools that's the total cache size. For the cache unlimited means nearly all the physical memory of the computer.

For each field, there is a default value. This value can be overrided with values from a properties file (see SparkseeProperties class). Also, this settings can be overrided calling a specific setter.

For each field, it is shown its default value and the property to override this value:

Extent size: 4KB ('sparksee.storage.extentsize' at SparkseeProperties).

Pages per extent: 1 page ('sparksee.storage.extentpages' at SparkseeProperties).

Checksums enabled: true ('sparksee.storage.checksum' at SparkseeProperties).

Pool frame size: 1 extent ('sparksee.io.pool.frame.size' at SparkseeProperties).

Minimum size for the persistent pool: 64 frames ('sparksee.io.pool.persistent.minsize' at SparkseeProperties).

Maximum size for the persistent pool: 0 frames ('sparksee.io.pool.persistent.maxsize' at SparkseeProperties).

Minimum size for the temporary pool: 16 frames ('sparksee.io.pool.temporal.minsize' at SparkseeProperties).

Maximum size for the temporary pool: 0 frames ('sparksee.io.pool.temporal.maxsize' at SparkseeProperties).

Number of pools in the pool cluster: 0 pools ('sparksee.io.pool.clustersize' at SparkseeProperties). 0 or 1 means the clustering is disabled.

Maximum size for the cache (all pools): 0 MB ('sparksee.io.cache.maxsize' at SparkseeProperties).

License code: "" ('sparksee.license' at SparkseeProperties). No license code means evaluation license.

Log level: Info ('sparksee.log.level' at SparkseeProperties).

Log file: "sparksee.log" ('sparksee.log.file' at SparkseeProperties).

Cache statistics: false (disabled) ('sparksee.cache.statistics' at SparkseeProperties).

Cache statistics log file: "statistics.log" ('sparksee.cache.statisticsFile' at SparkseeProperties).

Cache statistics snapshot time: 1000 msecs [TimeUnit] ('sparksee.cache.statisticsSnapshotTime' at SparkseeProperties).

Recovery enabled: false ('sparksee.io.recovery' at SparkseeProperties).

Recovery log file: "" ('sparksee.io.recovery.logfile' at SparkseeProperties).

Recovery cache max size: 1MB ('sparksee.io.recovery.cachesize' at SparkseeProperties).

Recovery checkpoint time: 60 seconds [TimeUnit] ('sparksee.io.recovery.checkpointTime' at SparkseeProperties).

High-availability: false (disabled) ('sparksee.ha' at SparkseeProperties).

High-availability coordinators: "" ('sparksee.ha.coordinators' at SparkseeProperties).

High-availability IP: "" ('sparksee.ha.ip' at SparkseeProperties).

High-availability sync polling: 0 (disabled) [TimeUnit] ('sparksee.ha.sync' at SparkseeProperties).

High-availability master history: 1D (1 day) [TimeUnit] ('sparksee.ha.master.history' at SparkseeProperties).

Use of TimeUnit:

Those variables using TimeUnit allow for:

<X>[D|H|M|S|s|m|u]

where <X> is a number followed by an optional character which represents the unit: D for days, H for hours, M for minutes, S or s for seconds, m for milliseconds and u for microseconds. If no unit character is given, seconds are assumed.

Capture abort signals to dump the call stack ('sparksee.callstackdump' at SparkseeProperties) is enabled by default on most platforms.

Author:
Sparsity Technologies http://www.sparsity-technologies.com
  • Constructor Details

    • SparkseeConfig

      public SparkseeConfig(String path)
      Creates a new instance with a specific config file.

      The config file will be loaded using the global properties class and the file may be automatically overwritten with the config changes. If the file doesn't exists, it will be created.

      Parameters:
      path - [in] File path to the config file.
    • SparkseeConfig

      public SparkseeConfig(String path, String clientId, String licenseId)
      Creates a new instance with a specific config file and IDs.

      The config file will be loaded using the global properties class and the file may be automatically overwritten with the config changes. If the config file already exists, the client and license ids should have the same values as the given arguments. If the file doesn't exists, it will be created.

      Parameters:
      path - [in] File path to the config file.
      clientId - [in] The client identifier.
      licenseId - [in] The license identifier.
    • SparkseeConfig

      public SparkseeConfig()
      Creates a new instance.

      Values are set with default values.

  • Method Details

    • setRecoveryEnabled

      public void setRecoveryEnabled(boolean status)
      Enables or disables the recovery.

      Parameters:
      status - [in] If TRUE this enables the recovery, if FALSE then disables it.
    • setLicensePreDownloadDays

      public void setLicensePreDownloadDays(int days)
      Start trying to automatically download a new license at the specified number of days before expiration.

      Parameters:
      days - [in] Number of days before expiration or -1 if the license should never be downloaded.
    • getExtentPages

      public int getExtentPages()
      Gets the number of pages per extent.

      Returns:
      The number of pages per extent.
    • saveAll

      public boolean saveAll()
      Save all the current configuration settings in the specified config file.

      It will try to save the current configuration only if a config file was specified. The saved config file WILL CONATAIN all the modified settings including the secret ENCRYPTION KEYS. You should usually just use the Save method instead.

      Returns:
      Returns true if the config file is successfully written or false otherwise.
    • getAESKey

      public String getAESKey()
      Get the AES encryption key in a hexadecimal encoded string.

      Returns:
      The AES encryption Key as an hexadecimal string.
    • getPoolPersistentMaxSize

      public int getPoolPersistentMaxSize()
      Gets the maximum size for the persistent pool in number of frames.

      Returns:
      The maximum size for the persistent pool in number of frames.
    • getPoolTemporaryMinSize

      public int getPoolTemporaryMinSize()
      Gets the minimum size for the temporary pool in number of frames.

      Returns:
      The minimum size for the temporary pool in number of frames.
    • getCallStackDump

      public boolean getCallStackDump()
      Gets whether the signals will be captured to dump the call stack or not.

      Returns:
      TRUE if the signals must be captured, FALSE otherwise.
    • setRecoveryCacheMaxSize

      public void setRecoveryCacheMaxSize(int extents)
      Sets the maximum size for the recovery log cache in extents.

      Parameters:
      extents - [in] The maximum size for the recovery log cache in extents. A 0 sets the default value (extents up to 1MB).
    • setAESEncryptionEnabled

      public boolean setAESEncryptionEnabled(String keyInHex, String ivInHex)
      Enables storage encryption using AES with the given key and iv.

      The key and initialization vector will not be saved in the config file.

      Parameters:
      keyInHex - [In] The AES encryption Key as an hexadecimal string (8, 16 or 32 bytes).
      ivInHex - [In] The AES Initialization Vector as an hexadecimal string (16 bytes).
      Returns:
      Returns true if the encryption had been enabled with the given arguments or false otherwise.
    • setPluginsDir

      public void setPluginsDir(String dirPath)
      Sets the Plugins directory.

      Parameters:
      dirPath - [in] The plugins directory path.
    • getHighAvailabilityEnabled

      public boolean getHighAvailabilityEnabled()
      Gets whether high availability mode is enabled or disabled.

      Returns:
      TRUE if high availability mode is enabled, FALSE otherwise.
    • getPoolPersistentMinSize

      public int getPoolPersistentMinSize()
      Gets the minimum size for the persistent pool in number of frames.

      Returns:
      The minimum size for the persistent pool in number of frames.
    • setChecksumEnabled

      public void setChecksumEnabled(boolean status)
      Enables or disables the storage checksum usage.

      Parameters:
      status - [in] If TRUE this enables the checksum, if FALSE then disables it.
    • setPoolPersistentMinSize

      public void setPoolPersistentMinSize(int frames)
      Sets the minimum size for the persistent pool in number of frames.

      Parameters:
      frames - [in] The minimum size for the persistent pool in number of frames. It must be non-negative.
    • setCacheStatisticsEnabled

      public void setCacheStatisticsEnabled(boolean status)
      Enables or disables cache statistics.

      Parameters:
      status - [in] If TRUE this enables cache statistics, if FALSE this disables cache statistics.
    • setRecoveryCheckpointTime

      public void setRecoveryCheckpointTime(long microSeconds)
      Sets the delay time (in microseconds) between automatic checkpoints.

      Parameters:
      microSeconds - [in] The delay time (in microseconds) between automatic checkpoints. A 0 forces a checkpoint after each commited transaction.
    • setEncryptionDisabled

      public void setEncryptionDisabled()
      Disables storage encryption.

    • setRecoveryLogFile

      public void setRecoveryLogFile(String filePath)
      Sets the recovery log file.

      filePath[in] The recovery log file. Left it empty for the default log file (same as <database_file_name>.log)

      Parameters:
      filePath - [in] The recovery log file. Left it empty for the default log file (same as <database_file_name>.log)
    • setPoolFrameSize

      public void setPoolFrameSize(int extents)
      Sets the size of a pool frame in number of extents.

      Parameters:
      extents - [in] The size of a pool frame in number of extents. It must be non-negative.
    • getRecoveryLogFile

      public String getRecoveryLogFile()
      Gets the recovery log file.

      Returns:
      The recovery log file.
    • setHighAvailabilityEnabled

      public void setHighAvailabilityEnabled(boolean status)
      Enables or disables high availability mode.

      Parameters:
      status - [in] If TRUE this enables high availability mode, if FALSE this disables high availability mode.
    • getCacheStatisticsSnapshotTime

      public long getCacheStatisticsSnapshotTime()
      Gets the cache statistics snapshot time in microseconds.

      Useless if cache statistics are disabled.

      Returns:
      The cache statistics snapshot time in microseconds.
    • getExtentSize

      public int getExtentSize()
      Gets the size of a extent.

      Returns:
      The size of a extent in KB.
    • getSparkseeConfigFile

      public String getSparkseeConfigFile()
      Gets the config file path.

      Returns:
      Returns the configured path or an empty string
    • setExtentSize

      public void setExtentSize(int kBytes)
      Sets the size of the extents in KB.

      Parameters:
      kBytes - [in] The size of an extent in KB. An extent can have a size between 4KB and 64KB, and it must be a power of 2.
    • getPluginsDir

      public String getPluginsDir()
      Gets the Plugins directory.

      Returns:
      The pulgins directory.
    • setHighAvailabilityIP

      public void setHighAvailabilityIP(String ip)
      Sets the IP address and port of the instance.

      Parameters:
      ip - [in] The IP address and port of the instance.
    • getPoolTemporaryMaxSize

      public int getPoolTemporaryMaxSize()
      Gets the maximum size for the temporary pool in number of frames.

      Returns:
      The maximum size for the temporary pool in number of frames.
    • setInMemAllocSize

      public void setInMemAllocSize(long size)
      Sets the in-memory allocator size.

      Parameters:
      size - The size to set the in-memory allocator to
    • setHighAvailabilityMasterHistory

      public void setHighAvailabilityMasterHistory(long filePath)
      Sets the master's history log.

      Parameters:
      filePath - [in] The master's history log.
    • setTmpEnabled

      public void setTmpEnabled(boolean enabled)
      Sets whether to use temporary storage for computations or not.

      Parameters:
      enabled - True to use temporary storage for computation
    • getLogFile

      public String getLogFile()
      Gets the log file.

      Returns:
      The log file.
    • getTmpEnabled

      public boolean getTmpEnabled()
      Gets whether using temporary storage for computations is enabled.

      Returns:
      True if enabled
    • getPoolFrameSize

      public int getPoolFrameSize()
      Gets the size of a pool frame in number of extents.

      Returns:
      The size of a pool frame in number of extents.
    • getCacheStatisticsEnabled

      public boolean getCacheStatisticsEnabled()
      Gets whether cache statistics are enabled or disabled.

      Returns:
      TRUE if cache statistics are enabled, FALSE otherwise.
    • setHighAvailabilityCoordinators

      public void setHighAvailabilityCoordinators(String ip)
      Sets the coordinators address and port list.

      Parameters:
      ip - [in] The coordinators address and port list.
    • setHighAvailabilitySynchronization

      public void setHighAvailabilitySynchronization(long microSeconds)
      Sets the synchronization polling time.

      Parameters:
      microSeconds - [in] The synchronization polling time.
    • getClientId

      public String getClientId()
      Gets the client identifier.

      Returns:
      The client identifier.
    • getCacheStatisticsFile

      public String getCacheStatisticsFile()
      Gets the cache statistics log file.

      Useless if cache statistics are disabled.

      Returns:
      The cache statistics log file.
    • setSparkseeConfigFile

      public void setSparkseeConfigFile(String path)
      Sets the config file path.

      The file is not loaded in this operation, see the constructor options if you need to load the file. The config file may be automatically overwritten with the config changes. If the file doesn't exists, it will be created.

      Parameters:
      path - [in] File path to the config file.
    • save

      public boolean save()
      Save the current configuration in the specified config file.

      It will try to save the current configuration only if a config file was specified. This method will be automatically used when a Sparksee class downloads a new License.

      Returns:
      Returns true if the config file is successfully written or false otherwise.
    • setPoolPersistentMaxSize

      public void setPoolPersistentMaxSize(int frames)
      Sets the maximum size for the persistent pool in number of frames.

      Parameters:
      frames - [in] The maximum size for the persistent pool in number of frames. It must be non-negative.
    • getLogLevel

      public LogLevel getLogLevel()
      Gets the log level.

      Returns:
      The LogLevel.
    • setLicense

      public int setLicense(String key)
      Sets the license key.

      Parameters:
      key - [in] The license key. Returns -1 if the new key can't be used, 0 if it's the same license or 1 if the new license is applied.
    • getDownloadStatus

      public String getDownloadStatus()
      Gets a message with the license download result.

      It can be used when the DownloadLicense call failed.

      Returns:
      The log download result.
    • setLicenseId

      public void setLicenseId(String licenseId)
      Set the license identifier.

      If you don't have a license identifier, you may want to register at http://sparsity-technologies.com/#sparksee

      Parameters:
      licenseId - [in] The license identifier.
    • getLicense

      public String getLicense()
      Gets the license key.

      Returns:
      The license key.
    • getHighAvailabilityIP

      public String getHighAvailabilityIP()
      Gets the IP address and port of the instance.

      Returns:
      The IP address and port of the instance.
    • setAESEncryptionEnabled

      public boolean setAESEncryptionEnabled(int keySize)
      Enables storage encryption using AES and GENARATES a key and an iv.

      YOU MUST GET AND KEEP SAFE THE GENERATED KEY AND IV! The key and initialization vector will not be saved in the config file.

      Parameters:
      keySize - [In] The key size in bytes (8, 16 or 32).
      Returns:
      Returns true if the encryption had been enabled.
    • getInMemAllocSize

      public long getInMemAllocSize()
      Gets the in-memory allocator size.

      Returns:
      Returns the in-memory allocator size
    • getLicensePreDownloadDays

      public int getLicensePreDownloadDays()
      Get the number of days before expiration when a new license will be downloaded.

      Returns:
      Returns the number of days or -1 if it will never be automatically downloaded.
    • setCallStackDump

      public void setCallStackDump(boolean status)
      Sets whether the signals will be captured to dump the call stack or not.

      Parameters:
      status - [in] If TRUE signals must be captured.
    • downloadLicense

      public int downloadLicense()
      Try to download a license key Can be used to explicitly download a license when the autodownload is disabled (LicensePreDownloadDays == -1).

      Returns:
      Returns -1 if a valid license key couldn't be downloaded, 0 if the same license was downloaded or 1 if a different license is downloaded.
    • getRecoveryEnabled

      public boolean getRecoveryEnabled()
      Gets whether the recovery is enabled or disabled.

      Returns:
      TRUE if the recovery is enabled, FALSE otherwise.
    • getLicenseRequest

      public String getLicenseRequest()
      Get information useful to manually request a license.

    • setCacheStatisticsFile

      public void setCacheStatisticsFile(String filePath)
      Sets the cache statistics log file.

      Useless if cache statistics are disabled.

      Parameters:
      filePath - [in] The cache statistics log file.
    • getTmpFolder

      public String getTmpFolder()
      Gets the temporary folder used for temporary staging.

      Returns:
      The temporary folder path
    • getPoolPartitions

      public int getPoolPartitions()
      Gets the number of partitions in each PartitionedPool.

      Returns:
      The number of partitions in each PartitionedPool.
    • getHighAvailabilityCoordinators

      public String getHighAvailabilityCoordinators()
      Gets the coordinators address and port list.

      Returns:
      The coordinators address and port list.
    • getRecoveryCheckpointTime

      public long getRecoveryCheckpointTime()
      Gets the delay time (in microseconds) between automatic checkpoints.

      Returns:
      The delay time (in microseconds) between automatic checkpoints.
    • setLogFile

      public void setLogFile(String filePath)
      Sets the log file.

      Parameters:
      filePath - [in] The log file.
    • setExtentPages

      public void setExtentPages(int pages)
      Sets the number of pages per extent.

      Parameters:
      pages - [in] The number of pages. It must be at least 1 page and the page size must be greater than or equal to 4KB.
    • setClientId

      public void setClientId(String clientId)
      Set the client identifier.

      If you don't have a client identifier, you may want to register at http://sparsity-technologies.com/#sparksee

      Parameters:
      clientId - [in] The client identifier.
    • setLogLevel

      public void setLogLevel(LogLevel level)
      Sets the log level.

      Parameters:
      level - [in] The LogLevel.
    • getRecoveryCacheMaxSize

      public int getRecoveryCacheMaxSize()
      Gets the maximum size for the recovery log cache in extents.

      Returns:
      The maximum size for the recovery log cache in extents.
    • getChecksumEnabled

      public boolean getChecksumEnabled()
      Gets whether the storage checksum usage is enabled or disabled.

      Returns:
      TRUE if the checksum is enabled, FALSE otherwise.
    • getHighAvailabilitySynchronization

      public long getHighAvailabilitySynchronization()
      Gets the synchronization polling time.

      Returns:
      The Synchronization polling time.
    • getHighAvailabilityMasterHistory

      public long getHighAvailabilityMasterHistory()
      Gets the master's history log.

      Returns:
      The master's history log.
    • getLicenseId

      public String getLicenseId()
      Gets the license identifier.

      Returns:
      The license identifier.
    • getAESIV

      public String getAESIV()
      Get the AES initialization vector in a hexadecimal encoded string.

      Returns:
      The AES initialization vector as an hexadecimal string.
    • getEncryptionEnabled

      public boolean getEncryptionEnabled()
      Gets whether the storage encryption is enabled or disabled.

      Returns:
      TRUE if the encryption is enabled, FALSE otherwise.
    • setPoolPartitions

      public void setPoolPartitions(int pools)
      Sets the number of pools in each PartitionedPool.

      Parameters:
      pools - [in] The number of pools in each PartitionedPool. It must be non-negative.
    • getRollbackEnabled

      public boolean getRollbackEnabled()
      Gets whether the rollback is enabled or disabled.

      Returns:
      TRUE if the rollback is enabled, FALSE otherwise.
    • setPoolTemporaryMaxSize

      public void setPoolTemporaryMaxSize(int frames)
      Sets the maximum size for the temporary pool in number of frames.

      Parameters:
      frames - [in] The maximum size for the temporary pool in number of frames. It must be non-negative.
    • getCacheMaxSize

      public int getCacheMaxSize()
      Gets the maximum size for the cache (all pools) in MB.

      Returns:
      The maximum size for the cache (all pools) in MB.
    • setRollbackEnabled

      public void setRollbackEnabled(boolean status)
      Enables or disables the rollback.

      Parameters:
      status - [in] If TRUE this enables the rollback, if FALSE then disables it.
    • setTmpFolder

      public void setTmpFolder(String tmpFolder)
      Sets the temporary folder used for temporary staging.

      Parameters:
      tmpFolder - The temporary folder to set
    • setCacheStatisticsSnapshotTime

      public void setCacheStatisticsSnapshotTime(long microSeconds)
      Sets the cache statistics snapshot time.

      Useless if cache statistics are disabled.

      Parameters:
      microSeconds - [in] The cache statistics snapshot time in microseconds.
    • setCacheMaxSize

      public void setCacheMaxSize(int megaBytes)
      Sets the maximum size for the cache (all pools) in MB.

      Parameters:
      megaBytes - [in] The maximum size for the cache (all pools) in MB. It must be non-negative.
    • setPoolTemporaryMinSize

      public void setPoolTemporaryMinSize(int frames)
      Sets the minimum size for the temporary pool in number of frames.

      Parameters:
      frames - [in] The minimum size for the temporary pool in number of frames. It must be non-negative.
    • downloadExpected

      public boolean downloadExpected()
      Check if a new license will be automatically downloaded with the current settings.