HQbird 2027 Server-Level Improvements (compared to Firebird)
Tools (HQCenter, HQMonitor, etc.) are described in other documents - see the Documentation section.
The tables contain only HQbird server-level features (plugins and core changes) that are not present in the regular (vanilla) Firebird of this version. HQbird features make it into vanilla Firebird in the next major version (if accepted by the project).
Firebird 5.0
| Feature | Essence | Parameter |
|---|---|---|
| Ngram index | Indexed substring search (LIKE '%search%') for VARCHAR and text BLOBs. |
- |
| Light-Weight Monitoring | Server state tracking without load. | MonitoringPlugin |
| Monitoring and prevention of too many DB connections | Protection against erroneous connection spikes. | WarnCountAttachments, MaxCountAttachments |
| Materialized Views | Materialized views (for BI and complex queries). CREATE MATERIALIZED VIEW. Uses bulk insert. |
|
| Table as query result | CREATE TABLE AS SELECT. Uses bulk insert. |
|
| Advanced trace options | Tracking conflicts (deadlocks) and changes (e.g., change audit). | - |
| Creating indexes under load | The index is created without blocking work with the table. CREATE INDEX ... CONCURRENTLY |
|
| On-the-fly query substitution | Queries are modified on the server side. The new text is visible in trace and MON$. | SqlSubstDirectory (directory with pairs of files: original / replacement) |
| BLOB cache in temporary space | BLOBs are 15-200% faster. | BlobTempSpace (0, 1 by default, 2) |
| Log of queries with large sorts | The query text is written to firebird.log. |
TempSpaceLogThreshold |
| External Datasource plugins: MySQL and ODBC | EXECUTE STATEMENT ... ON EXTERNAL to MySQL and ODBC. |
- |
| Streaming / CDC (Kafka, RabbitMQ, JSON, Mongo) | Sending data about INSERT/UPDATE/DELETE in the specified tables without SELECT. Based on replication. Provided on request. | - |
| Full-text search (Lucene UDR + plugin) | UDR - open source; plugin based on streaming. | - |
| Auto-correction of cache parameters in firebird.conf | Adjusts DefaultDbCachePages to the architecture in case of erroneous values in firebird.conf / databases.conf. |
DefaultDbCachePages, MinDbCachePages, MaxDbCachePages |
| Speeding up work with MON$ tables | Disables the collection of unnecessary data. | FillMonCompiledStatements, FillMonStatements, FillMonCallStack |
| HQbird version masking | Determines whether the HQbird-specific version string is returned in Firebird API calls. | HQbirdVersionString |
| Support for easy migration to v5 | Parameters in firebird.conf to recognize old style literals and describe COUNT(*) as INT for compatibility with legacy applications. |
LegacyTimeLiterals, LegacyIntForCount |
| GSSAPI/SSPI authentication to connect Linux servers | gssauth — auth plugin for authentication within Active Directory; supports both Windows and Linux servers and clients. |
- |
| Disable logging of INET errors | Sometimes useful. | DisableLogNetIOErrors |
| DB encryption (plugin) | AES256, 4-20% overhead, key transfer via fbclient.dll. On request. |
- |
Firebird 4.0
| Feature | Essence | Parameter |
|---|---|---|
| Light-Weight Monitoring | Server state tracking without load. | MonitoringPlugin |
| Monitoring and prevention of too many DB connections | Protection against erroneous connection spikes. | WarnCountAttachments, MaxCountAttachments |
| Advanced trace options | Tracking conflicts and changes. | - |
| JOIN optimizer | Implicit inner joins to explicit. | LeftJoinConversion = true |
| Prepared queries cache | Prepared queries in connection memory. | DSQLCacheSize (0 = off) |
| Multi-threaded backup, restore, sweep, index creation | Speedup up to 4-6x (backup, sweep), 2-4x (restore) on 8 cores and SSD. | - |
| On-the-fly query substitution | The new text is visible in trace and MON$. | SqlSubstDirectory (directory with pairs of files: original / replacement) |
| BLOB cache in temporary space | BLOBs are 15-200% faster. | BlobTempSpace (0, 1 by default, 2) |
| Log of queries with large sorts | The query text is written to firebird.log. |
TempSpaceLogThreshold |
| External Datasource plugins: MySQL and ODBC | EXECUTE STATEMENT ... ON EXTERNAL to MySQL and ODBC. |
- |
| Streaming / CDC (Kafka, RabbitMQ, JSON, Mongo) | Based on replication. On request. | - |
| Full-text search (Lucene UDR + plugin) | UDR - open source; plugin based on streaming. | - |
| Auto-correction of cache parameters in firebird.conf | Adjusts DefaultDbCachePages to the architecture in case of erroneous values in firebird.conf / databases.conf. |
DefaultDbCachePages, MinDbCachePages, MaxDbCachePages |
| HQbird version masking | Determines whether the HQbird-specific version string is returned in Firebird API calls. | HQbirdVersionString |
| DB encryption (plugin) | AES256, 4-20% overhead. On request. | - |
Firebird 3.0
| Feature | Essence | Parameter |
|---|---|---|
| Light-Weight Monitoring | Server state tracking without load. | MonitoringPlugin |
| Monitoring and prevention of too many DB connections | Protection against erroneous connection spikes. | WarnCountAttachments, MaxCountAttachments |
| Advanced trace options | Tracking conflicts and changes. | - |
| Native replication | Plugin; records without PK/UK can be excluded. | - |
| JOIN optimizer | Implicit inner joins to explicit. | LeftJoinConversion = true |
| Large sort optimizer | Refetch plan. 8192 or 16384 bytes recommended. | SortDataStorageThreshold |
| Prepared queries cache | Prepared queries in connection memory. | DSQLCacheSize (0 = off) |
| Multi-threaded backup, restore, sweep, index creation | Backup format as in vanilla. | - |
| Parallel data reading | make_dbkey() and shared snapshot. |
- |
| External connection pool | Parallel external queries to Firebird. | ExtConnPoolSize, ExtConnPoolLifeTime, ExtConnNoGarbageCollect |
| On-the-fly query substitution | The new text is visible in trace and MON$. | SqlSubstDirectory (directory with pairs of files: original / replacement) |
| BLOB cache in temporary space | BLOBs are 15-200% faster. | BlobTempSpace (0, 1 by default, 2) |
| Log of queries with large sorts | The query text is written to firebird.log. |
TempSpaceLogThreshold |
| External Datasource plugins: MySQL and ODBC | EXECUTE STATEMENT ... ON EXTERNAL to MySQL and ODBC. |
- |
| Full-text search (Lucene UDR + plugin) | UDR - open source; plugin based on streaming. | - |
| HQbird version masking | Determines whether the HQbird-specific version string is returned in Firebird API calls. | HQbirdVersionString |
| DB encryption (plugin) | AES256, 4-20% overhead. On request. | - |
Firebird 2.5
| Feature | Essence | Parameter |
|---|---|---|
| Light-Weight Monitoring | Server state tracking without load. | MonitoringPlugin |
| Native replication | First appeared here (later in vanilla 4.0). | - |
| Large sort optimizer | Refetch plan. | SortDataStorageThreshold |
| Multi-threaded backup, restore, sweep, index creation | First appeared here (later in vanilla 5.0). | - |
| Parallel data reading | make_dbkey() and shared snapshot, since HQbird 2.5. |
- |
| External connection pool | Parallel external queries to Firebird. | ExtConnPoolSize, ExtConnPoolLifeTime |
| On-the-fly query substitution | The new text is visible in trace and MON$. | SqlSubstDirectory (directory with pairs of files: original / replacement) |
| BLOB cache in temporary space | BLOBs are 15-200% faster. | BlobTempSpace (0, 1 by default, 2) |
| Log of queries with large sorts | The query text is written to firebird.log. |
TempSpaceLogThreshold |
| HQbird version masking | Determines whether the HQbird-specific version string is returned in Firebird API calls. | HQbirdVersionString |
Version not specified in the document
This feature is described without reference to a Firebird version. Verification against the User Guide is needed.
| Feature | Essence | Parameter |
|---|---|---|
| Transferring backups to Amazon S3 (plugin) | On request. | - |
Notes
- Version 3.0 for replication and 5.0 for
InlineSortThresholdare not explicitly named in the document: this is an inference from the text. - In vanilla 5.0, the query cache has an analogue called
MaxCompiledCache.