Solid Toolbar


        

SOLID Server FAQ

Also take a look at our SOLID JDBC Driver FAQ and SOLID Light Client FAQ.

Last update April 23, 1998
Feedback and comments

CONTENTS

  1. What is SOLID Server?
  2. How do I get started with SOLID?
  3. What is the difference between SOLID Desktop, SOLID Server and SOLID Web Engine?
  4. Where can I run SOLID?
  5. Administering SOLID Server
  6. Programming SOLID Server
  7. SOLID Client/Server Communication
  8. The SOLID Server Database engine
  9. Is SOLID Server Year 2000 compliant?
Back to home page

1. What is SOLID Server?

SOLID Server is a full-featured relational client/server DBMS. It is an ideal component to be embedded in mass-produced software and industrial applications.

SOLID Server features:

  • Ease of use, carefree administration
  • Automatic recovery, 24-hour operation
  • Scalability from single-user Windows to SMP RISC UNIX platforms
  • High performance within standards: SQL2, ODBC
  • Industrial strength transaction management
  • Support for all major operating systems and network protocols
  • Driver for UNIFACE 5.2, 6.1, 7.1, and 7.2
  • Compact size; minimum requirements are 386, 1MB RAM, 2MB disk

Back to table of contents

2. How do I get started with SOLID?

2.1 Is there an evaluation package of SOLID Server?

Yes, this evaluation package has the same features as the full product. A database that was created with this trial version may be used for a limited amount of days. When you buy a full license for your SOLID product, you will be able to continue using the database you created with the evaluation package.

You can download an evaluation package from our web site.

2.2 What is the Software Enable Key

The Software Enable Key (SEK) represents the individual license to use SOLID Server. It is a code string that you enter in the Setup program, and it defines the extent of the functionality of SOLID Server. It defines the number of users, the operating platform, and the network protocols.

2.3 Where can I buy SOLID Server?

SOLID Server is sold directly by Solid Information Technology Ltd. You can purchase SOLID Server directly from Solid Express Sales. Our contact information can be found here.

Compuware Corporation is a worldwide distributor of SOLID Server for UnifAce. UnifAce is Compuware's client/server application development environment.

2.4 What is SOLID Server pricing based on?

SOLID Server pricing is based on registered users, that is, individual users accessing a certain database server. The number of sessions is irrelevant.

SOLID Web Engine's pricing is based on price per web server accessing the database and additional per seat pricing for needed non-web-application users (i.e., non-browser users).

Solid Express Sales has more detailed pricing examples.

If you plan to bundle SOLID Server with your application or industrial product, please contact us directly for more detailed information about bundling prices.

2.5 What do I need to know to buy SOLID Server?

You need to know the operating system of your server and the number of users. All client modules and network protocols you may need are automatically included in all shipments. The SEK is the key that enables the appropriate modules and functionality.

3. What is the difference between SOLID Desktop, SOLID Server and SOLID Web Engine?

SOLID Desktop is a single-user database. SOLID Server (previously called SOLID Workgroup Server) is a multi-user version with per-user based pricing. The functionality of these two servers is exactly the same, but SOLID Desktop only allows client connections from the same computer.

SOLID Web Engine lets one web server access the Solid database from one machine. Your web server may then serve any number of users, and this does not affect the price of your SOLID Web Engine license.

Some pricing and licensing examples.

Back to table of contents

4. Where can I run SOLID?

4.1 I have used SOLID Server for Windows. What other operating systems are supported?

SOLID Server is currently available on following operating systems on the following product lines:

SOLID Desktop Windows, Windows 95,
Windows NT (Intel), OS/2,
DOS (client only)
SOLID Server Windows 95,
Windows NT(Intel),
Windows NT (Alpha),
Novell Netware, OS/2,
SCO UNIX, Linux (Intel),
IBM AIX, HP-UX,
SUN Solaris 2.5,
OpenVMS VAX,
OpenVMS Alpha,
Silicon Graphics IRIX 6.2

4.2 What Linux version is needed to run SOLID Server?

SOLID Server for Linux is an ELF format binary. It requires that your kernel and libraries are in this binary format. SOLID Server has been successfully used in Linux versions 1.2.13 or newer and on version 2.0.X.

4.3 Is there a version for Windows 95?

Yes. SOLID Server is available for Windows 95 as a true 32-bit application.

4.4 How much resources does SOLID Server need?

SOLID Server is designed to use a minimal amount of resources on your server. The minimum amount of resources needed by SOLID Server in single user MS Windows are:

  • 1 MB of main memory and
  • 2 MB of disk space (plus the amount needed for your data).

On other platforms the minimum amount of main memory needed is slightly more - about 3 MB.

When the amounts of users, data, and transactions per second grow, more memory is needed. The amount of memory needed depends on the nature of the application. An idle connection occupies only 50 kB of memory in the server. When a connection is processing queries the amount needed for the connection grows dynamically. True memory needed for a connection varies usually between 100 and 500 kB per user.

4.5 Can SOLID Server for Windows be run in Windows subsystems?

The 16-bit Windows version of SOLID Server can also be run in WIN-OS/2, Windows NT or Windows 95.

4.6 Can multiple SOLID Servers be run in one computer?

Yes. You can start multiple SOLID Server server programs in one server computer. When running multiple server processes, a separate license is needed for every server.

To run multiple servers you need to:

  1. Install the second server in a separate directory
  2. Use different listening names for the servers
  3. On Windows 3.X you need to rename the other SOLID.EXE, for example, to SOLID2.EXE. This is because Windows memory management does not allow two instances of the same program to be executed simultaneously.

4.7 Does SOLID Server support symmetric multiprocessing?

Yes. SOLID Server is designed to take advantage of parallel processing by using native operating system threads when available.

This is why its performance can be improved by using multiple processors. In single-processor servers, SOLID Server efficiently uses multithreading to achieve parallelism. On non-threaded operating systems SOLID Server simulates its own threads thus balancing the load of concurrent operations. SOLID Server manages each simulated thread using its own non-preemptive scheduler.

4.8 May I run SOLID Server on Windows NT Workstation?

Yes, you may run SOLID Server either on Windows NT Server or Workstation. On both NT versions you may set up SOLID Server to run as a Windows NT service.

There is a significant price difference between NT Workstation and NT Server. For example, Microsoft SQL Server only runs on NT Server. You and your customers may choose to run SOLID Server in Windows NT Workstation and save money.

Back to table of contents

5. Administering SOLID Server

5.1 How long does it take to install SOLID Server?

SOLID Server can be installed in less than 10 minutes on all supported platforms. Express installation is fully automatic and will use the 'factory set' defaults for file locations. These defaults can be changed by the distributor of the software.

Manual installation will prompt for the location of logfiles and index files and the size of RAM allocated for cache.

5.2 How long does it take to create a new database?

When SOLID Server is started without an existing database, it will automatically create a new database. Creating a new database takes 30 to 60 seconds depending on the speed of the hardware.

5.3 How much disk space is consumed by this "empty" database?

A database containing only the system tables consumes approximately 450 kB of disk space.

5.4 Can backups be made online?

Backups can be made online. A backup of a database is a consistent view of the database from the moment the backup starts. In addition to making backups online, timed commands can be used to make backups automatically at desired times without any action from the user.

5.5 What types of media (disk, tape) can be used for backups?

Online backups can be made to any media offering a file I/O interface. This is normally a directory on your hard disk, but it can also be an optical disk that is visible as a disk to the operating system.

Offline backups can be made by making a copy of the database.

5.6 Does SOLID Server recover from system or power failures?

SOLID Server recovers fast, and fully automatically, up to the point of the last committed transaction. During start-up, the server checks whether the database was closed normally or abnormally. If the server was closed abnormally, the server engages a roll-forward recovery from the last checkpoint in the database. Recovery is performed by reading the transaction log. Because checkpoints are made automatically at fixed intervals, the recovery is fast.

5.7 After a system failure, how does the database reach the state it was in before the crash?

During the next start-up, the database automatically starts a roll-forward recovery from the point of the previous checkpoint all the way to the last committed transaction. Only committed transactions will be recovered. The database accepts new connections only after it has finished the recovery.

5.8 Does SOLID Server support user privileges?

SOLID Server supports user privileges. User access is controlled by using user ids and passwords. Users can be granted different privileges for a database.

In addition to user privileges, SOLID Server supports role facilities. Roles can be created using the CREATE ROLE syntax and may contain any privilege that can be otherwise granted to a user. Users may be granted one or more roles therewith facilitating security and user maintenance.

The available privileges to grant on specified tables or columns are DELETE, INSERT, UPDATE, SELECT and on stored procedures EXECUTE and REFERENCES.

5.9 Is there a need for reorganizing a SOLID database frequently.

SOLID Server is designed to be run fully automatically. This design allows running the server 24 hours 7 days a week without making any administrative operations. One of the care-free characteristics is the fact that no reorganization is needed. This is possible because the server keeps the data organized.

5.10 Is there a need for updating SQL optimizer statistics?

No there is no need to do so. SOLID Server updates optimizer statistics dynamically. This means that the statistics are always up-to-date, and there is no need for an administrator or application to do any operations for updating statistics.

5.11 How can a developer obtain information from the SQL optimizer?

There are two built-in SQL diagnostic tools in the server. The SQL INFO facility writes optimizer statistics to a file on disk. This file can then be analyzed.

Another SQL diagnostic tool is the EXPLAIN PLAN facility. This tool shows a search graph for a given SQL statement.

5.12 I want to run my Windows database on another platform. How do I export my data to the server?

The database file format in SOLID Server is binary compatible. No conversion or import/export is needed when the database is transferred to another operating system. Porting can simply be made by copying the database file to another environment and starting SOLID Server in that environment.

Back to table of contents

6. Programming SOLID Server

6.1 Which programming interface is used in environments other than the MS Windows environment?

The native programming interface of SOLID Server is ODBC. It can be used in all environments with either static or dynamic libraries. There is also a native JDBC Driver for SOLID Server.

6.2 What standards are supported by Solid?

SOLID Server is designed to efficiently support all major SQL standards. Because SOLID Server adheres strictly to these standards, the user is not tied to any particular hardware, development tools, or system software. Not only have we implemented these standards, but we offer maximum performance within these standards.

The following SQL standards are supported:

ANSI 89 SQL Full Level 2 support
ANSI SQL 2 Entry Level Entry Level support; excluding support for embedded SQL and various programming languages.
ANSI SQL 2 Intermediate Level Supported Intermediate Level features; dynamic SQL, isolation levels, union join, date/time datatypes, variable length character strings
ANSI SQL 3 Draft User and role management, stored procedures (modified)
X/Open SQL Full support

6.3 Does SOLID Server support view definitions?

View definitions are fully supported by SOLID Server, including views with sub-queries or unions. Table views allow all data manipulation facilities provided that all NOT NULL columns of the original table are within the view definition.

6.4 Is there a single-user version of the product that offers applications (Windows) a similar interface as is used by the server version?

SOLID Server is continuously scaleable from a single-user MS Windows environment to large multi-user RISC UNIX systems. In all environments a uniform ODBC interface is available.

6.5 Is SOLID Server capable of handling Blobs?

SOLID Server is capable of handling Blobs efficiently and automatically. Blobs, or binary fields larger than a parametrized limit, can be stored to special file areas that have optimized block sizes for large files. When several Blob files are used, the system automatically selects the file with the best block size in which to store the Blob.

The Blob attributes are stored separately, preventing interference with the index file caching system. A typical Blob attribute may fill all available index blocks, forcing several read operations when retrieving index blocks back to memory. Therefore, a smaller disk cache is allocated for Blob data.

6.6 What are the facilities for data transformation?

Solid offers a data loader tool, SOLID SpeedLoader, which is capable of inserting character data from character format data files. SOLID SpeedLoader bypasses the SQL parser and uses direct writes to the database file when loading. This allows loading speeds of several 100 000 rows per hour.

Another tool, SOLID Export, can be used for writing data from a SOLID Server to character format files. This tool is also capable of writing control files used by SOLID SpeedLoader. This option can be used for making data unload/load operations.

Another tool exists for writing the data dictionary definitions of a database. This utility renders the definitions as an SQL script, which can be used for creating other databases with the same data definitions.

6.7 How can I access SOLID Server from a web server?

SOLID Server can be accessed from a web server using several different methods. Since the needs for accessing a database from a web application differ greatly, no general answer can be given to the above question. To make your choice easier we have collected a list of recommendable tools:

The Common Gateway Interface (CGI)

The most popular way to interface to a web server is to use the Common Gateway Interface (CGI). This interface is a standard, platform independent interface for interacting with web servers. It is available in the most popular commercial and freeware web servers like Netscape, Apache, Microsoft, NCSA, etc. CGI is a specification on how data can be passed to external programs and how the results are sent back to the web server.

The choice of tools for implementing the external programs is up to the implementation. Some of the most common languages for making CGI programs, or scripts, are

  • Perl
  • C/C++
  • Python
  • PHP/FI
  • TCL

More information on web integration tools can be found on our Third Party Tools page.

See the CGI pages at NCSA for more information on how to write CGI scripts.

The FastCGI

FastCGI is a new, open extension to CGI that provides high performance for Internet applications. FastCGI is best viewed as a new implementation of CGI, designed to overcome CGI's performance problems.

The major implementation differences are:

  • FastCGI processes are persistent: after finishing a request, they wait for a new request instead of exiting.
  • Instead of using operating system environment variables and pipes, the FastCGI protocol multiplexes the environment information, standard input, output, and error over a single full-duplex connection. This allows FastCGI programs to run on remote machines, using TCP connections between the Web server and the FastCGI application.

For more information on using FastCGI see http://www.fastcgi.com

SOLID Server with Microsoft IIS

The Microsoft Internet Information Server has a built-in database connector, which allows writing code in HTML pages pointing to external data. The connector reads an associated text file containing database information and a SQL statement. The SQL statement is sent through an ODBC interface to a database server. Query results are returned to another HTML page.

6.8 May I use ODBC tools and application generators with SOLID?

SOLID Server's native programming interface is ODBC. The ODBC interface has been tested with several test tools and ODBC compatible applications.

Among the list of recommended tools are:

  • Microsoft tools including Access, Visual Basic, Query
  • Intersolv tools and libraries
  • Powersoft Powerbuilder
  • Borland Delphi
  • C/C++ languages
  • Gupta SQL Windows
  • Clarion for Windows

6.9 What level and what version of ODBC is supported by SOLID?

The SOLID ODBC Driver supports the Core level and Level 1. Part of Level 2 is also implemented (datatypes, functions, and scalar functions). For more information, see the list of currently supported ODBC functions. The ODBC driver complies to the ODBC 2.1 specification.

6.10 Is there an ODBC driver for Windows NT and for Windows 95?

Yes. There is also a 32-bit ODBC driver for Windows NT and Windows 95. In Windows NT and in Windows 95 an application may use either:

  • the 16-bit or the 32-bit ODBC driver when the application is a 16-bit application.
  • a 32-bit ODBC driver when the application is a 32-bit application.

6.11 May I use shared memory communication in Windows NT and in Windows 95?

Yes. You may use the shared memory to communicate both to a 16-bit and to a 32-bit server.

6.12 May I use UnifAce with SOLID Server?

Solid Information Technology has developed a UnifAce driver that is fully compatible with all current UnifAce versions (5.2, 6.1, 7.1, and 7.2). The driver is available on Windows, Windows 95, Windows NT and OS/2.

Additionally a selection of UNIX and OpenVMS platforms are supported. Please contact Solid sales to find out if your platform and UnifAce version are supported.

6.13 Do I need to run UnifAce Polyserver with SOLID?

Instead of using Polyserver you may use Solid's own communication software for communication between UnifAce and SOLID Server. SOLID communication software is available on seven different network protocols and is delivered with the standard edition as a part of the SOLID Server package.

6.14 Are there functions in SOLID that I can use for converting strings to upper case or lower case? Is there a function in SOLID that will assign a NULL value to something else?

Yes. SOLID Server has a wealth of scalar functions, which are capable of handling strings, numeric values, time and dates, type conversion and a variety of system functions. These functions can be accessed from all application development tools using SQL.

6.15 Does SOLID Server support stored procedures?

SOLID Server supports stored database procedures. The syntax of stored procedures is similar to that specified in the Stored Procedure section in the SQL 3 draft. No proprietary extensions to the SQL syntax are necessary to support procedure logic. All standard SQL DDL and DML statements can be used in procedures.

Stored procedures have the following features:

  • passing and receiving parameters
  • local variables
  • cursors
  • if....then statements
  • while loops
  • calling other procedures
  • returning of multiple rows (new in SOLID Server 2.2)

6.16 Is there a need for recompiling procedures?

No. SOLID Server procedures are executed dynamically. This means that they are optimized when executed and thus no recompilation is needed.

6.17 Is there a sequencer in SOLID Server?

Yes. SOLID Server has a sequencer object. This object can be used for generating number sequences. The sequencer can be used, for example, for generating unique invoice numbers in an invoicing system.

There are two kinds of sequencers in Solid:

  • dense sequencer, will guarantee that there are no 'holes' in the sequence
  • sparse sequencer, the sequence may have 'holes'

6.18 How do I set a value to a sequence?

The value of a sequence can be set from a procedure using the following syntax:

EXEC SQL SEQUENCE <sequence_name>
 SET VALUE USING <value>;

For example, the following procedure could be used for setting a sequence value:

CREATE PROCEDURE "SET_SEQ_VALUE(VAL INTEGER)
BEGIN
 EXEC SQL SEQUENCE MY_SEQUENCE SET VALUE USING VAL;
END";

6.19 How do I receive error messages from a stored procedure?

Stored procedures have the variable SQLSUCCESS where the result code of the last executed EXEC SQL statement is stored. The value of this variable is 1 if the previous EXEC SQL has been executed successfully. Otherwise the value is 0.

If you want to return the error message of a failed EXEC SQL call, you should use the following syntax:

RETURN SQLERROR OF <cursor_name>

For example, you could use the following lines after each EXEC SQL statement to have an error message displayed after a failed statement. This example returns the error message from the cursor 'previous_cursor'.

IF NOT SQLSUCCESS THEN
  RETURN SQLERROR OF previous_cursor;
END IF;

In SOLID Server 2.2 the following statement can be used to decrease the need for IF NOT SQLSUCCESS THEN tests after every executed SQL statement in a procedure.

EXEC SQL WHENEVER SQLERROR [ROLLBACK [WORK],] ABORT

When this statement is included in a stored procedure, all return values of executed statements are checked for errors. If statement execution returns an error, the procedure is automatically aborted. Optionally the transaction can be rolled back.

6.20 How can I speed up inserts to SOLID Server?

Here are some points you should check to speed up large batch inserts or updates to SOLID Server.

  1. Check that you are not running in AUTOCOMMIT mode.
    SOLID ODBC Driver's default setting is AUTOCOMMIT. This is the standard setting according to the ODBC specification. To set your application not to run in autocommit mode call the SQLSetConnectOption function. For example, call:
    rc = SQLSetConnectOption
    (hdbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF);
  2. Do not use large transactions.
    It is suggested to COMMIT transactions after every 100-200 rows inserted.
  3. Use stored procedures .
    To further speed up inserts, the use of stored procedures is suggested. Using procedures gives an additional 10-20 % speed increase.
  4. Lower the MergeInterval parameter.
    The MergeIinterval parameter determines the frequence of writing data from SOLID Server's cache to disk. For large batch operations it is suggested to lower this value. This parameter should be set to approximately 100 when running large inserts.

In our experience suggestions 1 and 2 are the most important and also the most common mistakes made when running mass inserts. If you follow the first two rules, you should be able to insert several hundreds of rows per second. The actual value depends on your hardware.

Back to table of contents

7. SOLID Client/Server Communication

7.1 What TCP/IP libraries are supported in workstations?

SOLID Server uses standard Windows Socket communication with TCP/IP. Tested Windows Sockets include Chameleon, Trumpet, DEC Pathworks, and Microsoft.

7.2 Is the WinSocket interface supported?

Yes. The WinSocket interface required is version 1.1.

7.3 Is the server able to serve both NetBIOS and TCP/IP workstations at the same time?

Yes. SOLID Server is able to simultaneously serve all communication protocols supported in the operating environment.

7.4 Can a workstation simultaneously have both NetBIOS and TCP/IP connections to servers?

Yes. Both SOLID Server and client are able to simultaneously use all communication protocols supported in the environment.

7.5 Are TSRs or DLLs used in communication in Windows 3.x?

Only DLLs. No TSRs are used.

7.6 Are there any limitations for Windows application generators (e.g., significant differences in the speed of communication interfaces, as with SQL Router)?

There are no known limitations. The ODBC interface, for example, is the native interface of the product and offers the most effective connection to the majority of application generators.

7.7 Is there a SOLID Server client available on DOS?

Yes. A SOLID client is available on DOS. The DOS client is a 32-bit version, and it uses the 4GW DOS extender. This client can be used in combination with Watcom C 10.X compiled programs. The programming interface is ODBC. This DOS client includes the NetBIOS and SPX/IPX network protocols.

Solid also offers the SOLID Light Client - a database client library specially designed for solutions with limited memory resources. Currently SOLID Light Client is available for DOS, VxWorks and Geos, the development environment being WindowsNT and Windows95. For more information, see the SOLID Light Client page.

Back to table of contents

8. The SOLID Server database engine

8.1 How is the space allocation of the database configured in the data management system: is it static or does it grow dynamically?

The database file grows dynamically up to a defined maximum size. If you want to increase the maximum size for the database, you either increase the maximum size of the database file, or you can define a new database file if you want to split the database onto several physical database files, which can reside on distinct disks. The initial size of a database is approximately 500 kBytes.

8.2 How is main memory allocation handled: is the memory allocated dynamically or statically?

Main memory is allocated dynamically according to the need. The maximum size of this area can be configured using the CacheSize parameter. In addition to this upper limit buffers for transactions processing are allocated dynamically when needed. This guarantees that the upper limit of the cache can not get exhausted.

8.3 How is allocation of disks maintained?

This operation requires editing one or two fields in the configuration file and can be performed remotely from a workstation with the SOLID Remote Control application.

8.4 Does SOLID Server require partitioning of the hard disk at installation?

SOLID Server uses the normal operating system's file handling for database and log files. This is why installing of SOLID Server and copying of databases are fast and straight forward operations.

8.5 Can the database and log files be located on separate disks?

The database, log, and BLOb files can all be located on different disks. In addition, the database files can be split to multiple files located on different disks.

8.6 What kind of features/tools are used for concurrency control?

The primary concurrency model of SOLID Server is a multiversioning and optimistic concurrency control method. In a multiversioning scenario, each transaction sees a consistent, unchanging view of the database precisely as it was when the transaction began. If the data that was not yet read is changed by another (later) transaction, a new version of the row is generated while the older transaction is still able to use the old version of the data. Old unneeded versions of the data are deleted automatically in batch processes, which run in the background.

The general advantage of the multiversioning model is that read transactions never need to restrict the access to the data from other transactions. This radically improves concurrency in typical mixed-load environments.

If needed, SOLID Server can also use pessimistic (row-level locking) or mixed concurrency control methods. Row-level locking can be turned on table by table, and a single transaction can use both concurrency control methods simultaneously. The concurrency control information can be changed dynamically within the ANSI SQL syntax without any proprietary extensions and is supported for both read only and read-write transactions. The following locks can be used: SHARED, INTENT and EXCLUSIVE.

SOLID Server offers fully SERIALIZABLE transactions. Serializability is achieved through a predicate validation scheme, in which, for example, lost updates and phantom problems cannot occur. Other isolation levels supported by SOLID Server are: COMMITTED READ, REPEATABLE READ, and QUERY CONSISTENCY.

Transactions can be defined using the SET TRANSACTION statement. The following options are available: READ ONLY, READ WRITE, CHECK WRITESET, CHECK READSET. Transactions are ended with the COMMIT WORK or ROLLBACK statements.

8.7 Does SOLID Server support data integrity features?

Declarative entity integrity is supported by SOLID Server in the CREATE TABLE statement. Constraints available are NOT NULL, NOT NULL UNIQUE, PRIMARY KEY, FOREIGN KEY, and CHECK.

Declarative referential integrity is supported by SOLID Server as described in the SQL 89 standards.

8.8 Does SOLID Server support serializable transactions?

For truly serializable transactions, SOLID Server uses optimistic predicate validation. Truly serializable transactions are free from the following common anomalies: dirty read, lost update, and phantoms.

Data management systems based on locking, that is, pessimistic concurrency control, are able to offer similar serialization and consistency only by locking all accessed tables.

The default isolation level of SOLID Server is write set validation. Write set validation behaves in the same way as repeatable read, except that it also prevents phantom row problems. An application may change the isolation level from the default to serializable or to committed read.Since concurrency control in SOLID Server is managed on the row level, there is no need to manage page or table level locking. This also prevents deadlock situations.

8.9 Does SOLID Server support row-level locking?

If needed, SOLID Server may be set to use pessimistic (row-level locking). Row-level locking can be turned on table by table, and a single transaction can use both concurrency control methods simultaneously. The concurrency control information can be changed dynamically within the ANSI SQL syntax without any proprietary extensions and is supported for both read-only and read-write transactions. The following locks can be used: SHARED, INTENT, and EXCLUSIVE.

8.10 What is multiversioning used for?

The true multiversioning offered by SOLID Server is used, for example, in queries. Within one transaction, this allows a consistent view of the database; apart from the changes of this specific transaction, the view of the database remains unchanged through the whole transaction.

8.11 Can a single SOLID Server process have different database parameter settings for transaction management and adhoc type reporting?

An advantage of the optimistic transaction management used in SOLID Server is the ability to serve both long queries and fast-paced transaction management parallelly without difficulty. The system also allocates CPU and other hardware resources dynamically, according to the specific needs of the user.

If some of the tables are mainly used for OLTP-type of applications and others mainly for queries, the usage of these tables can be optimized separately. One database can use different types of optimizations parallelly without problems.

8.12 How many processes does SOLID Server create on a UNIX or Windows NT system?

SOLID Server on a UNIX platform creates only one process. This process is simply called solid. By running on a single process the server avoids context-switches created by the server itself.

SOLID Server achieves parallelism by using threads. A thread is a light-weight process that runs within a process. Several threads can be run in a single process. When SOLID Server runs in a system that does not provide threads, SOLID uses its own internal scheduler to create virtual threads.

8.13 What is the Bonsai tree?

The Bonsai Tree is a small index tree that is kept in the main memory. All delete, insert, and update operations are written to the Bonsai Tree. Read more about Solid's Bonsai technology in the Database Engine section of the SOLID Server Technical Description.

9. Is SOLID Server Year 2000 compliant?

Solid has designed and tested all its products to be completely Year 2000 Compliant. In SOLID Server, data defined as DATE are stored in a numeric format that includes complete millennium information. All date functions use this information. Also, leap years are handled correctly (e.g., SOLID Server accepts 29 February 2000 as a valid date). Consequently, SOLID Server is capable of correctly calculating, comparing, and sorting DATE information that includes dates both before and after the millennium shift. It is to be noted that the information herein is valid only if the operating environment in which SOLID Server is used is Year 2000 Compliant.

Back to table of contents

If you didn't find the answer you were looking for, please contact us for further information.

NOTICE!
The information above does not constitute a specific warranty of any kind
but is presented for information only.

Home

Company | Products | Support | Search | Free Eval Packs
Copyright © 1992-1998 Solid Information Technology Ltd. All rights reserved.