Tuesday, April 02, 2013

Fenix Framework 2.1 Will Supersede 1.x

We've just completed the migration of all features from the 1.x development branch to the current development branch (2.x).

Fenix Framework 2.1 is almost out! After the release of 2.0, 2.1 will be the first release to fully integrate all the previous features from 1.x versions.

Expect a release soon!

Friday, February 15, 2013

Indexed Relations

Also in 2.1-SNAPSHOT we have added a new feature called Indexed Relations. The main idea is to allow efficient fetch of object(s) in a relation, by using one of their attributes.

Putting it simple, if an Address has a country (attribute in the class), and a Person is related to many Addresses, this allows easily obtaining the Address of a Person that has a given country. Not only it is more efficient with regard to single thread performance, but it is also transactional-friendly because it reduces the footprint that makes a transaction vulnerable to aborts.

These indexes also allow multiple values to collide in the same indexed key. In other words, a Person might have more than one Address with the same country. As a result, the indexes would return a set of Addresses for a given query. This is defined in the DML file according to the documentation. That allows the framework to generate additional code in the Domain Classes to support the queries through simple methods (once again, also described in the documentation).

Finally, the internal implementation is interestingly backend-independent by relying on internal DML-based collections that back up the relations. As a matter of fact, an index is implicitly stored in the collection that backs the relation. Therefore using a unique index poses no additional overhead. This has resulted in speedups of one order of magnitude across several benchmarks (synthetic and realistic) and backends.

Posted by Nuno Diegues.

Sunday, January 27, 2013

Provide Configuration Properties

In 2.1-SNAPSHOT we've updated how configuration by convention works. Here's a quick summary on how to provide Fénix framework configuration properties. It is now possible to give configuration properties in three ways:

  1. using file fenix-framework.properties;

  2. using file fenix-framework-NNN.properties, where NNN is the name of the BackEnd of the generated domain-specific code;

  3. system properties (the -D switch), with the fenixframework. prefix added (e.g. -Dfenixframework.appName to set property appName).

Priority increases from the first to the last item listed. These three mechanisms can be combined. In case of setting the same property more than once, the setting with the most priority wins.

Wednesday, January 16, 2013

Fénix Framework 2.0 released!

This is a nice post saying that Fénix Framework 2.0 just got released. This is also the first post that inaugurates this new site's blog.

Fénix Framework has undergone a huge refactoring from version 1.x to 2.0. Read all about the new stuff in the documentation available from the main page.


© 2008-2013 Fénix Framework
Based on template design by Andreas Viklund