|
|
DeviceSQL Data Specifications |
| |
Attribute |
|
Size |
| |
Database size |
|
4,398 Gigabytes |
| |
Number of records in a table |
|
274,877,906,944 |
| |
Record size |
|
- Paged Data: 64K
- In-Memory: Unlimited
- Memory-Persisted: Unlimited
|
| |
Number of tables per data application |
|
2048 |
| |
File size |
|
- 4 GB file or limited by the operating system file size constraints.
- 4.2 TB using Page Service with striped file Page Adapter
|
| |
Memory footprint for Runtime Services |
|
Min: 24KB
Max: Depends on application since it is converted to C code |
| |
Number of fields in a table |
|
2 billion |
| |
Number of indexes per table |
|
Unlimited |
| |
Number of bytes per index key |
|
- BTree: 64K
- In-Memory: Unlimited
|
| |
Number of tables referenced per transaction |
|
No limit |
DeviceSQL Language Specifications |
| |
Attribute |
|
Characteristics |
| |
Language |
|
SQL and Procedural SQL (similar to PL/SQL), with embedded extensions, including:
- Manage streams of data
- Table Types
- Control Structures (IF, THEN, ELSE, LOOP, WHILE, EXIT, …)
- Exporting DeviceSQL function name to C
- Importing of C Code as DeviceSQL function
- Choose storage location per table
|
| |
Table JOIN support |
|
Yes (INNER) |
| |
Cursor Support |
|
Internal and manual control (Open, Fetch, Close) |
| |
Exception Handling |
|
- Handle exceptions directly in functions/procedures
- Create and raise user-defined exceptions
- Pass error codes to C application code
|
| |
International Language Support |
|
Roman characters (ASCII) and Unicode (UTF-16) |
| |
APIs for Application calls |
|
Developer-defined API, Dynamic C API, Interpreted SQL API |
| |
Critical Section Support |
|
Important code sections can be protected within DeviceSQL code or from within C application code |
| |
Data Types |
|
- Simple Types: BOOLEAN, VARCHAR, NVARCHAR, SHORT, CSHORT, INT8, INT16, INT32, LONG, BIT8, BIT16, BIT32, DOUBLE, CDOUBLE, DATE, BINARY, TIMESTAMP, FLOAT64, PHONECHAR, POINTER, VECTOR_INT8, VECTOR_INT16, VECTOR_INT32, VECTOR_BIT8, VECTOR_INT16, VECTOR_INT32, VECTOR_DOUBLE,
- Complex types: RECORD, TABLE, STREAM, AGGREGATE
|
| |
Event Hooks |
|
- Available to run C functions and procedures
- Control maximum memory usage
- Interrupt long running queries
|
DeviceSQL Product Specifications |
| |
Functionality |
|
Values |
| |
Host Development Platforms |
|
Windows, Linux, Solaris |
| |
Target CPU |
|
Supports virtually any target CPU, including multicore CPUs, Commonly supported CPUs include:
- ARM, PowerPC, MIPS, SuperH, x86 and others
|
| |
Target OS |
|
DeviceSQL Runtime Services available for any target OS including Linux, VxWorks, Windows, u-ITron, QNX and others |
| |
Runtime Library Type |
|
Static Library (dynamic on demand) |
| |
IDEs Supported |
|
- Microsoft® Visual Studio™
- GNU development toolchain and command-line operation
- Wind River® Workbench
- ARM® RealView® Development Suite
- Renesas HEW
- QNX® Momentics® Development Suite
- Freescale® CodeWarrior™
|
| |
Transaction Support |
|
- COMMIT, ROLLBACK, and AUTOCOMMIT
- ACID compliance
- Create Read-Only or Read-Write Transactions
|
| |
Compression |
|
Compresses paged data. Algorithms available are:
Additional compression algorithms and methods are available from Encirq professional services |
| |
Communication |
|
Data Streams layer communication support for TCP sockets, FIFO and shared memory |
| |
Runtime Backup and Restore |
|
- Available, using SM_COPY, SM_OPEN, SM_CLOSE
- Defragmentation performed during backup
|
| |
Storage Management |
|
- Services-based (only use what is required)
- Store fixed and variable sized data
- Write to any persistent storage type, such as ROM, NVRAM, Flash, Disk, EEPROM
- Table data can reside in-memory, memory-persisted, and paged-in as needed
- Customizable abstraction layer
- Support permanent and temporary tables
- Multiple persistent file support
- Storage can be managed per table
- Each manager can be open/closed as needed
- Configurable tuning parameters, such as stripe size
|
| |
Index Management |
|
- Services-based (only use what is required)
- Several different index types (Hash, BTree, AVL)
- Reside in memory or paged-in as needed
- Create indexes using user-defined algorithms
- Configurable tuning parameters, such as hash bucket size
- Open and close indexes as required
- Create and drop using SQL syntax
|
| |
Memory Management |
|
- Memory Management service allows user-defined functions for controlling memory allocation and de-allocation
- Manage data entirely in memory (In-Memory)
- Load persistent data into memory at database open (Memory-Persisted)
- Load data into memory as needed (Paged)
- Parameters for constraining memory usage
- Configurable tuning parameters, such as buffer and page size
|
| |
Compaction Algorithms |
|
For data types, storage managers, and indexes |
| |
Memory Optimizations |
|
For SELECT query results, indexes, and paging of data |
| |
Thread-safe Support |
|
Native thread-safe or coded multiple thread access to shared data |
| |
Multi-Process Support |
|
- Multiple concurrent readers can access shared data from same database instance
- Processes can access separate database instances
|
|
|