SQLlync

 

© 2007 by DataLync Ltd

Choosing the right resources can make all the difference. 
Choose
DataLync for your computer needs.

The SQLlync Database Management System development started in 1991.   At the time the only MS Windows based database products available cost more to license for multiple users than the end user software packages could be reasonably priced for (for small to medium size customers). The SQLlync DBMS was developed as a proprietary database management system to allow the creation of relatively inexpensive but powerful vertical line of business software packages for small to medium-sized businesses.  A secondary, but important aspect, is that DataLync has total control over capabilities and features of the basic DBMS program thus allowing any special customer application requirements to be met at any time.  The concept has been successful resulting in hundreds of commercial application packages based on the SQLlync Database Management System in use throughout the country.

Database Files 

The SQLlync Database Management System uses two database files to avoid support problems with customer's machines running out of file handles and or buffers.   The two-file model uses two copies of the data.   This has a performance advantage over circular journal file systems and achieves a form of fault tolerance when the two files are stored on different file systems.

The data file is broken up into pages.   The size of each page is a multiple of 4096 bytes.   This allows The SQLlync Database Management System to represent 44 bit page addresses in 32 bit quantities.   In the header of each page is a checksum that is updated each time the page is committed to disk.   Each time the page is read, the checksum is verified to ensure data integrity.   When checksums don't match, the corresponding page in the second file is tested.   If the second copy is valid, The SQLlync Database Management System replaces the invalid page in the main data file.

Data Optimized  

Data representation is optimized in the pages in that empty fields require zero storage space and text data is stored in a variable length format.  

Relational Model (hybrid and network combination)  

Each row in each table has an automatic unique key assigned when the record is created.   The key acts as a 32 bit compressed key, or a record pointer.   This makes it easy for applications (including SQLlync to reference records in a minimum amount of working memory.   The SQLlync Database Management System is highly optimized to handle queries where the compressed key is known.

Indexing 

The SQLlync Database Management System uses a four-layer index page schema.   The first three layers (X, Y, Z) use 4096 byte index pages.   The first X layer can reference 1,000 Y layer pages.   Each Y layer page in turn can reference 1,000 Z layer pages.   Each Z layer page references a D layer page that contains the actual data to compressed key info.   The D layer page is typically 16384 bytes in size.   Each index indexes one and only one column.   The query optimizer joins indexes on the fly based on the WHERE clause in a query.   Index joins are done with bitmaps to eliminate subset scanning.

Sorting 

The SQLlync Database Management System uses a scaling function to sort returned record sets.   This is something like a radix sort, but optimized by using Huffman box nodes to reduce memory requirements.   The nice thing about the sorter is that the larger the result set is, the more linear the scaling function becomes.   When the result set is too large to fit in main memory, the highly linear nature of the set minimizes any temp file I/O.  

Modified Structured Query Language (MSQL)  

The SQLlync Database Management System supports a subset of the SQL language.  SQLlync does not support data formatting select functions, nor does it support table joins in queries.   The reason for this is that our application layers can handle these functions more efficiently.   Experience shows that in a multi-user environment, the application in and out of the query phase should be as fast as possible.   Joins are better managed by the application because normally the application will break down and store the unique fragments from each table for display purposes.   Having the application deal with joins results in less memory requirements for both SQLlync and the application layer.

Client Communications 

The SQLlync Database Management System supports MS Windows DDE and TCP/IP sockets for communicating with applications.   With DDE, the application optionally uses DDE_POKE to bind parameters, DDE_EXECUTE to perform the query and DDE_REQUEST to retrieve result rows, and or query meta data.   The TCP/IP sockets protocol has all of the features of the DDE protocol, and allows for multiplexing application data cursors.

Typically, end user applications written for MS Windows don't access the TCP/IP protocol directly.   They go through a client proxy application called LyncSqlC.   LyncSqlC translates client application DDE requests in to socket requests and translates the SQLlync Database Management System results back to DDE responses.   Client applications written for Linux and FreeBSD use the TCP/IP socket protocol.

SQLlync System Versions 

The SQLlync Database Management System comes in three versions:

  • The Single User version that contains no record locking code and enforces the single user license by locking the file for exclusive use.
     
  • The Peer-to-Peer networking version, where every machine runs a local copy of SQLlync With a 10MB network, this version is good for up to five workstations in a true peer-to-peer network.  
     
  • The Client Server version runs on a dedicated machine running MS Windows, FreeBSD or Linux.   This version works well for wide area networks and for local networks with heavy loads.   The number of open socket limitations for any of the operating systems can be overcome by using the LyncSqlM program running on another machine to multiplex client connections.   LyncSqlM looks the SQLlync server version to other workstations, but acts like LyncSqlC in that it multiplexes and forwards traffic on to other machines.

The SQLlync Database Management System is a multi-platform system.

Data Replication  

The Client/Server version of the SQLlync Database Management System includes a protocol and support utilities for both real-time replication and batch mode replication.   Real-time replication reverts to batch mode when the real time link goes down.  

Application Development Tools 

DataLync has created application development tools specifically for use with the SQLlync Database Management System.  DElync is a “top level” application layer that uses SQLlync as its database system.  DElync encompasses numerous features that take advantage of the unique characteristics of SQLlync to provide powerful, user-friendly applications.

DDlync is the graphical form and report generation tool that couples with DElync to allow the rapid development of forms and reports for any given application.  One of the powerful aspects of the SQLlync Database Management System is that much of the relational “intelligence” of the application lies within the actual form or report thus allowing the application developer unprecedented control over the application structure. The report generating capability of DDlync provides a graphical developer tool that allows the creation of unique report structures not available in other systems.

Other tools include direct database structure analysis and data viewing, index analysis and correction and code operation tracing modules.     

Future Development 

DataLync is currently researching a new storage model that will eliminate the need for user-defined indexes.   The Helix storage model will also increase performance by reducing the amount of disk space required to represent the data.

[Home] [SRVAlync] [TIMElync] [SQLlync] [About] [Contact Us] [Internet]

vbar04