| In-Memory
Database Driver
Available
for all versions of Clarion 6 and now Clarion 5.5!
Overview:
The Softvelocity Memory driver is a new file driver
technology that does not use physical tables for working
with data. This is due to a RAM-based technology known
as IMDD (In-Memory Database Driver). All data is stored
in Random Access Memory (RAM), which gives the driver
a number of unique properties. The driver is combined
with a powerful template and class. The template completely
automates the use of In-memory tables.
When
you use the "In-Memory Data Caching Support"
extension template, the Memory table doesn't even need
to be defined in your Data Dictionary. You just select
the table or tables that you want cached into "memory
tables," and the template generates a FILE declaration
that matches the physical file, generates the code to
cache the physical file into the memory file, and magically
replaces the use of the physical table with the cached
memory table. The beauty of the implementation is that
you can choose to make any table cached with just a
couple of mouse clicks, re-compile, and immediately
see the results. You don't have to re-create the procedure,
or change any code at all. Another benefit is that you
never have to worry about keeping the tables definitions
synchronized. Add a new column or Key to the physical
file, and the In-memory file definition is automatically
matched.
The
In-Memory driver has proven a very easy way to speed
up the most data intensive areas of your applications.
With the release of version 2, making use of cached
tables is as easy as dropping in a template and filling
in a few prompts.
Characteristics
of the driver:
- Extremely
high performance. Once data is loaded into the MEMORY
table, either at program startup or on-demand, all
access is virtually instantaneous.
- You
are also only limited by your machines memory capacity,
and because you can use VIEWs to populate MEMORY tables,
and can create VIEWs across multiple MEMORY tables,
you have the capacity of storing and working with
significant amounts of hierarchical data.
- The
MEMORY driver has a standard file driver interface,
so you can use Memory tables with any Clarion entity
or template that works with files (Browse, FileDrop,
Report, etc.), Including any 3rd party template!
- The
application developer can choose to locate highly
dynamic or frequently referenced tables in memory,
while leaving the less intensively used parts of the
database to be stored on much cheaper disk.
- Provides
highly exclusive data access. Storing data in a MEMORY
table you can be sure of its security and privacy.
Even two programs simultaneously running on the same
computer will each use their own data copy.
- It's
especially useful for WEB-enabled applications. In
addition all stored data will be automatically be
destroyed when application terminates and you will
never have any undeleted temporary files.
- As
MEMORY files are recreated each time an application
runs, you don't need to convert MEMORY tables after
a change to the record structure of your physical
file.
- Can
be used as a "Global" lookup table, but
unlike a global queue, you do not have to write code
to synchronize threaded access, because synchronization
is built into the driver.
- Instantaneous
access to data, even when changing the sort order
or applying filters.
- Like
an ALIAS structure, the MEMORY driver can emulate
the structure of any defined file in the dictionary,
but unlike the ALIAS, it can be modified with additional
columns and indexes without the need for conversion.
- You
use standard file processing statements with a MEMORY
file as you would with other file formats.
- Here
are just some possible tasks for the MEMORY driver.
- Use
it as a Temporary table for Parent-Child relations
where the end user makes all changes to the Child
in the Memory table. For example new order items can
be added and updated, and only when the invoice is
actually saved, write all the child records to the
physical file in a single transaction along with the
order record.
- Use
it as a buffer for receiving SQL query results. After
you have received the result set into the Memory table
you can do sorting, filtering, perform QBE/QBF requests
using standard browse box tools, without any additional
access to the SQL server. This approach can dramatically
reduce network traffic and frees server resources
as fast as possible.
- Using
the MEMORY driver allows you to minimize the number
of KEY and INDEX files in your physical tables. For
example if you have a rarely requested report that
requires a special index you can declare this index
in the MEMORY table but not in the physical table.
This way you can reduce required database resources
and speed up data I/O operations.
- You
can reduce key and index number in your physical tables
and also eliminate the need for file conversions.
When you need to add a new key or index for a Report
or Browse. Just add the new INDEX to the MEMORY table.
- You
can construct your Memory table using several data
sources, and the sources can combine data tables of
various formats. For example, you can load configuration
data from a mainframe file and combine it with additional
items from a local file.
|
|