» Documentation

Installation

Requirements

  • OS: Windows XP and above. Both 32/64 bit versions are supported, but recommended 64 bit.
  • Memory: minimum 1 GB. Memory usage can be configured. The default installation commit 50 mb, which is too low for intense load.
  • Disk: Having RAID or multiple disks will benefit disk IO performance. In case with multiple disks, transaction log could be separated from data files.

Components

  • .NET provider - scimore.data.scimoreclient.dll, MSIL using .NET 2.0 framework.
  • GUI manager - manager.exe.
  • Client native access library - Scimore.Data.ScimoreClientNative.[x86/x64].dll
  • Server - scimoredb.exe
  • Agent - scimoreagent.exe

  • Installation MSI package contains all components. Download the latest [http://www.scimore.com/download/release/4.0/latest/ScimoreDB.4.0.msi] [http://www.scimore.com/download/release/4.0/latest/ScimoreDB_x64.4.0.msi].

  • Zip files containing: server, agent and .net provider. It's useful when installing new node, or .net provider using scripts. Download zip files, [http://www.scimore.com/download/release/4.0/latest/ScimoreDB.zip], [http://www.scimore.com/download/release/4.0/latest/ScimoreDB_x64.zip].

Installing Server

First, download v4.0 MSI and execute. Next, start ScimoreDb manager and try to connect to Server (default TCP connection: localhost, port: 999). You will see that Server will throw the error:

Node is in standby mode.All DML/DDL transactions will be aborted. Execute CREATE CLUSTER SQL command first, or add the node to the existing cluster.

It means that server is installed as stand-by node. In order to activate server, you must create a cluster. Open query window in manager (ignore the poping errors) and paste the following SQL:

CREATE CLUSTER endpoint('localhost:999')
COMMIT CLUSTER 

Now, the stand-by node has been converted to a cluster with a single node. From this moment, the restrictions to create database, query no longer apply.

Installing stand-by node(s)

To add node to the cluster or create a cluster, a set of stand-by nodes must be installed. To install stand-by node(s) follow steps:

Install a manager

Install a manager, in order to verify nodes have been installed. It can be installed with msi. However, during installation choose only manager feature, otherwise the msi will install node too. If you have already installed manager on other machine, skip the installation.

Download db node binaries

Download binaries zip file. Unpack scimoredb.exe, scimoreagent.exe and Scimore.Data.ScimoreClientNative.[x86/x64].dll to db node installation folder (any location).

Install db node service

Start command prompt as administrator and execute scimoredb.exe with the installation parameters:

scimoredb.exe -startup/instance=0 -startup/console=1 -startup/mode=1 -db/syslog="C:\data\db0" -db/systables="C:\data\db0" -db/data="C:\data\db0" -db/CachePages=10000 -net/endpoint="localhost:999" 

The parameters are:

  • -startup/instance={0,1,2} - instance id is the registry key to separate startup parameters of each DB on the same pc. HKEY_LOCALMACHINE\Software\Scimore\Nodes\[0] ... [2]. Also, instance id is added to the end of DB service name. {scimoredb-0,scimoredb-1,scimoredb-2}. Note; instance id's has nothing to do with the nodes enumeration in the cluster.

  • -startup/console=1 - start application as console. Otherwise application will try to start as service which does not exists yet.

  • -startup/mode=1 - install node.

  • -db/syslog="C:\data\db0" - place for transaction log. On successful installation "sysredo.log" file will be created. The default file size is 32mb. The transaction log space is re-used. When 32 mb is not enough, the file will grow in 8mb chunks. The database does not create the folder, therefore "C:\data\db0" must exist, and otherwise installation fails.

  • -db/systables="C:\data\db0" - place for system tables. Again, folder must be created before install.

  • -db/data="C:\data\db0" - folder for the user created databases.

  • -db/cachepages=10000 - number of the data pages to cache. Each page is 8kb, more you add better it is. The value can be changed in the registry, followed by service restart.

  • -net/endpoint="localhost:999" - parameter indicates the db nodes' connection attributes. The syntax is "server/ip:port". Only port is used. In this example, the db node will listed on all IPs on port 999.

If installation successful the service "scimoredb-0" will be created. Start it and try to connect. You should get the connection error (.. node is in stand-by mode..). Now, you are ready to [create a cluster][Cluster_management].

Uninstall node

To uninstall db node execute:

scimoredb.exe -startup/instance=0 -startup/mode=2 -startup/console=1 

Startup parameters

Database server settings can be specified as command line options and using the Windows registry. The sysconfig system table can be used to retrieve all settings and also be UPDATEd to set some of them.

Command Line Options

Command line options can be specified to the database executable in the form -/=. E.g.:

scimoredb.exe -startup/mode=1 -tran/maxlock=100 

Any settings specified on the command line take precedence over registry values.

Registry Values

Registry values for instances are found in the HKEY_LOCAL_MACHINE\SOFTWARE\Scimore\NODES\[id] registry key, where [id] is the unique identifier of the server instance on the local machine (as used to differentiate server instances running on the same machine where they are installed as a Windows service). Each instance has a registry keys inside this for each category, which, in turn, contain the registry string values for the settings, e.g. HKEY_LOCAL_MACHINE\SOFTWARE\Scimore\NODES\[2]\STARTUP\RECOVERY and HKEY_LOCAL_MACHINE\SOFTWARE\Scimore\NODES\[1]\NET\Endpoint.

You can use the standard Windows regedit program to browse and change these values.

Settings Overview

Listing of accepted configuration values. Source specifies the valid sources of the setting value: either command-line option or from the windows registry. All categories and key names are case insensitive.

Category - STARTUP

Key

Description

Values

Default

Source

CONSOLE, .

This will start up the database in debugging mode with console output

0 - Normal
1 - Console Mode

0

Command line

INSTANCE

Unique identifier for the server's configuration

no default value

Must be specified

Command line

MODE

Startup mode.

0 Run
1 - Install New Instance,
10 -Install new instance, but don't overwrite existing data files, if not exists new once will be created
2 - Uninstall,
20 - Uninstall, but don't delete data files

0

Command line

RECOVERY

Bit mask to specify recovery mode

1 - Perform redo, if necessary
2 - Perform recovery, if necessary
4 - Continue running after recovery, regardless of errors during recovery. This is theoretically never needed. However, if redo and recovery are failing and causing Scimore to not start up, specifying this bit will allow the server to run, but there may be some inconsistencies in data.

3

Command line

CPU

Number of CPU to use

0 - specifies that use all CPU's

Command line

Category - NET

Key

Description

Values

Default

Source

MaxConn

Maximum allowed connections

1000

Command line; Registry

Endpoint

Connection string used when using NET/Mode=1. This specifies the socket to listen on.

ip-address:port

Command line

Mode

Network startup mode

0 - Normal cluster mode
1 - Single instance mode

0

Command line;

Category - TRAN

Key

Description

Default

Source

MaxLocks

maximum allowed exclusive locks

1048576

Command line; Registry

LogBlocks

number of linked blocks (each 8Mb) in transaction log (redo.log). Used when installing node.

4

Command line

LogCheckpoint

Frequency in minutes of fuzzy checkpoint

5

Command line; Registry

Category - DB

Key

Description

Source

SysTables

Directory for system tables

Command line; Registry

SysLog

Directory for transaction log file

Command line; Registry

CachePages

Number of pages to cache; default 3000

Command line; Registry

Data

Default directory for user defined tables default

Command line; Registry

Category - SCHEDULE

Key

Description

Default

Source

QUANTLENTGH

The quant length in microseconds.

500

Command line; Registry

THROTTLE_HALF_DBPAGES

Number of page accesses "half-life" resource for exponential decay of query priority by half

5000

Command line; Registry

THROTTLE_HALF_PAGE_FAULTS

Page faults (need to write page to disk in order to read other page) "half-life" resource for exponential decay of query priority by half

1000

Command line; Registry

THROTTLE_HALF_QUANTS

Number of Quants "half-life" resource for exponential decay of query priority by half

2000

Command line; Registry

THROTTLE_HALF_NET_REQUESTS

Number of network IOs "half-life" resource for exponential decay of query priority by half

2000

Command line; Registry

THROTTLE_WEIGHT_DBPAGE

The throttling constant for page access

1

Command line; Registry

THROTTLE_WEIGHT_PAGE_FAULT

The throttling constant for page faults

10

Command line; Registry

THROTTLE_WEIGHT_QUANT

The throttling constant for number of Quants

10

Command line; Registry

THROTTLE_WEIGHT_NET_REQUEST

The throttling constant for network IOs

50

Command line; Registry

Query throttling use exponential decay "half-life", where the X-axis is the resource usage, computed by:

TransactionResources = THROTTLE_WEIGHT_DBPAGE*NUmberOfPageAccessByTransaction + THROTTLE_WEIGHT_PAGE_FAULT*NumberOfPageFaultsByTransaction + THROTTLE_WEIGHT_QUANT*NUmberOfQuantsByTransaction + THROTTLE_WEIGHT_NET_REQUEST*NumberOfNetworkIOsByTransaction 

Y-axis is the priority

and, decay curve controlled by half-life constant, computed:

Half_life_resource = THROTTLE_WEIGHT_DBPAGE*THROTTLE_HALF_DBPAGES + THROTTLE_WEIGHT_PAGE_FAULT*THROTTLE_HALF_PAGE_FAULTS + THROTTLE_WEIGHT_QUANT*THROTTLE_HALF_QUANTS +THROTTLE_WEIGHT_NET_REQUEST*THROTTLE_HALF_NET_REQUESTS 

Database scheduler periodically re-calculates each transaction's priorities, formula:

Priority = InitialPriority*pow(0.5,TransactionResources/Half_life_resource );