- Version History
- 4.0-beta - Published 23th August 2012
- 3.10.0 - Published 5th May 2011
- 3.9.1 - Published 22nd December 2010
- 3.9.0 - Published 15th November 2010
- 3.8.0 - Published 29th April 2010
- 3.7 - Published 25th March 2010
- 3.6 - Published 3rd September 2009
- 3.5 - Published 10th July 2009
- 3.0 - Published 17th November 2008
4.0-beta - Published 23th August 2012¶
As you see in the new major version number, there are some bigger changes upcoming for the new version 4 of SQLSpaces. This time we decided to release a beta version, because there are already so many new features and bugfixes in it and it is (at least for our projects) stable enough to be used. However, there are still some nice features to come in the final 4.0.
Be careful: This is now the first release that is not fully backwards-compatible! Check the section "Changes" below!
- Update operations that do not find a given id will now only return false. They won't throw an exception anymore.
- The table structure has changed slightly. If you upgrade from a version before 2012 you need to run this upgrade-script.
- JSON is now the new message format. Up to now the messages between clients and server were XML documents, but JSON is faster and smaller. JSON is now the default protocol, but XML is still supported. Note: The new client now uses JSON by default and thus is not compatible to a pre-v4.0 SQLSpaces server. The other way around (pre-v4 client with a v4 server) is no problem. However, it is possible to manually configure the client to use XML again to be compatible with older servers. Check the Configuration class for details.
- The web workbench is now completely re-implemented. Take a look at it. Now you have a much more powerful investigator that has a live view on the spaces. You can also change tuples, create new ones, etc.
- Versioning is now optional. It is still the default to have all the tables to have versioning support, but you can switch it off to have simpler and faster tables. Note: Iterative read-alls are not supported without versioning and are mapped internally to normal read-alls.
- Big performance enhancements in handling of bigger tuple collections by optimizing the internal SQL queries.
- Added more Javadoc comments.
- Now JDK7 compatible
- Several critical bugs in the server were fixed, among others concerning the callback handling and the readFirst/takeFirst/... commands
- Fixed some bugs in the Android client
- Fixed some bugs in the Prolog client (linebreaks and non-ASCII chars in UTF-8 are now correctly handled)
- Transactions are now handling blocking commands, callbacks etc. correctly. Before there were some violations of the ACID principle w.r.t. these operations.
- The SSL connection now doesn't mess around with the global keystore of Java anymore.
3.10.0 - Published 5th May 2011¶
Besides the obligatory bugfixes, we have also some nice new features in this new version. They mainly concern the web modules (Investigator and Vizard) and and Shell.
We are currently heavily working on the proper documentation of our code. We are almost finished, so you can already find Javadoc in most of the code. Especially in IDEs this should be very handy to have the doc right at hand.
We also added a new section to this page called "Showcases". Here we will put some nice code examples and videos to give visitors an impression of the SQLSpaces power without reading documentation first ... Check it out!
Finally, we added another new section called "Testimonials", where we will collect experiences of other SQLSpaces users.
- Upgraded the Vizard to JavaFX 1.3 and extended its features. Now you can visualize only specific spaces and you can decide whether you want to see only new tuples or really all.
- The Investigator can now be used to easily exchange the contents of servers. There are three new buttons for importing and exporting tuples in a simple plain xml format.
- The Investigator now supports pagination so that you don't see all 100.000 tuples in a space right on one HTML page.
- The Shell can also shut down the server now. Moreover a watch command can be used to monitor actions in the space in real-time. This is e.g. nice if you want to see only the newest tuple arriving in a space. Also look at the "ps" command in the shell. It has been extended by some statistics about each connection.
- The RemoteAdminClient (which was actually rather used internally until now) can now be used to remotely shut down the server. This is particularly interesting, if you don't want to hardlink your code to the AGPL licensed server, but still need a way to control the server programmatically.
- Fixed some PostgreSQL related bugs.
- Fixed some bugs in the Prolog client that made multi-threaded Prolog applications freeze.
- Fixed severe bugs in the web-service bundle. Moreover, the web-service now also supports the more performance-oriented operations like readFirst, delete, count etc.
- Fixed some bugs in the webserver, e.g. there was a problem that not both web modules (Investigation and Web Services) could be deployed. Also the http session now doesn't timeout that quickly.
- Updated many internal libs (Jetty, HSQLDB, MySQL connector, MyFaces, ...).
3.9.1 - Published 22nd December 2010¶
This time, we put a small christmas service release under the christmas tree. Its main focus lies on fixing two severe bugs.
An important thing to notice is that the configuration file has slightly changed: Previously there were keys like "db.mysql.host" or "db.mysql.port". These are now called "db.host" or "db.port" and also affect the PSQL configuration. The previous keys are still being interpreted, but are deprecated and support for them will be removed in one of the next versions!
- The PostgreSQL backend is fixed. This one was developed for version 8.4 and if it does not work for later versions, please tell us.
- The web-based investigation is now working again under Windows. There was a problem in unpacking the war in our embedded Jetty. Now with Jetty 7 this is fixed.
3.9.0 - Published 15th November 2010¶
And here comes another new version of the SQLSpaces. As always it is completely backwards compatible, so you can just replace the jars and everything should (!) work ;-) For now, we have decided to call this version 3.9 and not 4.0, because it is more of a evolution than a revolution. So be prepared for a great, new, shiny and innovative version 4.0! (And if you have any ideas what we could improve/extend, just drop us a mail!)
- SQLSpaces Shell (sssh)
For experienced users we introduced a bash-like shell to easily investigate and change the state of the server. Look at the documentation of the sssh to learn more about it.
- More sophisticated Query Commands
In case you are dealing with real huge amounts of data, you can now use new query commands that are especially designed for this case. Normally, the returning tuple in the read and take case is randomized if there is more than one match. Now you can use readFirst or takeFirst to skip this randomization. Moreover, if you are not interested in the content of a tuple, you can use delete/deleteFirst/deleteAll instead of take and you can use count instead of readAll if you just want to know the amount of matches. Large amounts of tuples (or large tuples) are then processed much faster.
- Import / Export Functionality
The TupleSpace class now has import and export methods to dump and reinsert all tuples of one space into/from files. This can be used to easily copy the contents of a space from one server to the other. This functionality will probably be also available from the Investigator in the next version.
If you are using SQLSpaces in a scientific context, we compiled a list of our publications so that you can easily cite them. Moreover, there you can look at our previous usage scenarios.
- The local mode was made more robust and some errors there were fixed.
- HSQLDB now works correctly with nulltuple queries.
- Fixed some memory leaks and concurrency problems (esp. affecting the waitToXXX methods) in the server.
- Made the connection pooler more robust in case of temporary connection losses.
- Fixed a bug that only appeared in the Spanish version (really! ;) ).
3.8.0 - Published 29th April 2010¶
Again, this version is completely backwards compatible and contains bugfixes and performance enhancements. The main focus this time lies on the handling of large amounts of data.
- Slicing for large return sets
The querying of the database has been completeley exchanged. Especially if you have readAll or takeAll queries that return more than 500.000 tuples, the SQLSpaces server works more memory-efficient and faster by splitting up the SELECT into several SELECTs with LIMITs.
- New method: Iterative readAll
If you have readAll with many results and don't want to blow the memory, you can now use the new readAll(Tuple t, int windowsize) method that returns an iterator (compatible with for-each). This iterator uses the given window size to successively fetch the results from the server.
- DB libs update
HSQLDB support was moved to from version 1.8 to 2. MySQL connector was updated.
- New translations for Investigator
There are many new localizations for the web-interface.
- Nulltuple takeAll had a very slow procession. Now you can delete a whole space much faster.
- Long binary fields were cropped after a certain length.
- Certain strings in fields were not correctly escaped, which lead to a server error.
- ASCII control characters caused problems on the server, but they are now replaced by blanks.
3.7 - Published 25th March 2010¶
This version is completely backwards compatible and contains quite some bugfixes for critical problems, so we highly recommend to update.
- Investigator and Vizard decoupled
Now they don't use internal VM calls anymore, but the so-called remote-admin channel. That way they can be deployed in a tomcat without the need for a shared Java memory.
- New Client for Android
The code for the client was adapted so that it now also runs on the android platform. No further jars needed, just use the default sqlspaces-client and -commons jar. Successfully tested on HTC Dream and HTC Magic.
- XMPP Tunneling
The XML protocol can now also be tunneled over XMPP. Just configure SQLSpaces and the XMPP server and put the new XMPP-Jars in the classpath.
- Vital Signs Monitor
The Vital Signs Monitor is a background thread that regularly checks important values of the server like: amount of database connections and SQLSpaces connections, memory usage, internal locks, etc.
- Inverse Fields
This new field type enables you to specify tuple templates with fields that should not match a certain string.
- Wildcard interpretation threw an exception in certain cases.
- Some deadlocks in the server were fixed (especially when using client and server in the same Java process).
- In some cases the connection pooler did not release database connections, which lead to MySQL errors ("Too many connections").
- Prevented some OutOfMemory errors with very large tuples. However, you can of course still produce these memory problems, if you just use tuples that are large enough ...
- Interrupted connections or connections that are timed out are now better handled.
- Ignored some exceptions that are no real problems.
- Many small bugfixes and enhancements ...
3.6 - Published 3rd September 2009¶
First version that is open-source and published on this web page.
3.5 - Published 10th July 2009¶
3.0 - Published 17th November 2008¶
First version that is built in Maven.