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.
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:
-
using file fenix-framework.properties
;
-
using file fenix-framework-NNN.properties
, where NNN
is the name of
the BackEnd of the generated domain-specific code;
-
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.