Version 1.3.1 of Rudiments, the C++ class library for developing systems and applications, is now available.
This patch release fixes a bug in the rpm spec file and a missing library dependency in the link command for librudiments-apache.
SQL Relay, Rudiments, and other firstworks technologies...
...release announcements, tutorials, and other news.
Version 1.3.1 of Rudiments, the C++ class library for developing systems and applications, is now available.
This patch release fixes a bug in the rpm spec file and a missing library dependency in the link command for librudiments-apache.
Version 1.8.0 of SQL Relay, the powerful connection pool, load balancer, query router, and database proxy, is now available.
This release mainly lays the groundwork for some future features, including a generic import/export framework. Some notable progress was also made on the JDBC driver, though it's still not finished. The most significant (finshed) new feature is an aes128 password encryption module.
There are some bugfixes as well. A long-standing issue with postgresql that could cause results from multiple open cursors to get confused has been resolved. A subtle error that could cause counting of bind variables on the client-side to hang has been fixed. A long-standing, but apparently obscure, issue that could cause tables from other MySQL schemas to be included in a "show tables" command has been fixed. As well as various other issues.
Full ChangeLog follows:
Version 1.3.0 of Rudiments, the C++ class library for developing systems and applications, is now available.
This release mainly featured integration of code from other projects. The remnants of the old firstworks project "stencil" have been merged in, as well as some MVC base classes from other projects. Some date-time parsing code from SQL Relay has been pushed down into the datetime class.
There are some new features as well - most notably an encryption framework and aes128 class. There are also sax/dom parsers for CSV, ini, and java-style properties files as well, similar to the xml/json sax/dom classes.
The logger classes have been refactored a bit, in back-incompatible ways. Thus the minor version bump.
Full ChangeLog follows:
Version 1.7.0 of SQL Relay, the powerful connection pool, load balancer, query router, and database proxy, is now available.
This release adds 2 significant features: support for the PostgreSQL client-server protocol, and a "replay" module to help automatically recover from deadlocks and lock-timeouts, but also has the usual assortment of minor bugfixes and internal changes.
SQL Relay has supported the MySQL client-server protocol for several minor releases, enabling MySQL applications to take advantage of SQL Relay's features by aiming SQL Relay at the database(s) and aiming the application at SQL Relay. It has been a server-only solution requiring no modification of the client application or even any installation of software on the client system.
Release 1.7.0 features similar support for the PostgreSQL client-server protocol. PostgreSQL applications can now take advantage of SQL Relay's features by aiming SQL Relay at the database(s) and aiming the application at SQL Relay. It is also a server-only solution requiring no modification of the client application or even any installation of software on the client system.
See the SQL Relay Configuration Guide for configuration details.
"How do I handle database deadlocks!?"
The answer is usually: figure out which queries are deadlocking and rewrite them to be less likely to deadlock. When that fails, the prescribed solution is to rewrite your application to detect the deadlock and either rerun the previous query (eg. with Oracle) or rerun all queries in the current transaction (eg. with MySQL).
While rewriting queries to be less likely to deadlock might be possible in some cases, rewriting applications to record queries and be able to replay entire transactions is unrealistic. It is especially unrealistic if you consider the trouble involved with doing an insert into a table with an auto-increment column, followed by updates that use the generated id.
But, while it might be unrealistic for applications, it's not terribly unrealistic for a database proxy like SQL Relay.
This release of SQL Relay provides a "replay" module, which can be configured to record and replay either the previous query, or previous transactions-worth of queries upon detecting a deadlock, lock timeout, or other condition. It even correctly rewrites the inserts that it records to handle auto-increment columns.
See the SQL Relay Configuration Guide for configuration details.
Full ChangeLog follows:
Version 1.2.2 of Rudiments, the C++ class library for developing systems and applications, is now available.
This is a minor bug-fix release. ChangeLog follows: