Version 0.3.0 of the DSpatial kernel was released today on Sourceforge.
While there is not much change on the surface, a number of quite
important changes to the kernel and kernel access have been implemented.
First of all, the locking mechanism has completely changed. Locking is
now initiated at the "user" level (that is, outside of the kernel),
where the kernel generates a token suitable for the requested access.
The application needs to explicitly drop the token when done. This
dramatically reduces the number of locks that needs to be made, because
an application can access multiple data set attributes or perform
multiple operations before dropping the token. On the down side, a badly
written application can lock a data set indefinitely. Secondly, the
kernel is now cross-platform compatible. Compiler directives have been
added to enable compilation on D5, D7 and Kylix (anybody any experience
with D6?).
The most important change is the improved memory management. It is now
possible to access data sources of arbitrary size, and the kernel will
automatically limit the amount of data that is held in memory. This is
controlled with the FMaxDataSetSize member of the DSpatial object. You
can change this size in the constructor of the TDSpatial class in the
DSpGlobals unit. Any data set that is smaller than the indicated value
will be held in memory in its entirety, which provides the greatest
access speeds. Large data sets that would quickly use all virtual memory
are only partially loaded, and this is completely transparent for the
application developer. This design lays the foundation for the gridmath
module and other data access mechanisms, which will be provided in an
upcoming release.
The gridmath module also sees the light of day with this release.
Unfortunately it is still a very meagre offering, with only a few
identity operations available. These are necessary to use the SDTS
format drivers. On the up side, the development effort is now focused on
this module and incremental updates are expected on a regular basis.
The documentation of DSpatial is also starting in earnest now. Attention
is given to a detailed document on programming with the DSpatial kernel
and the extension modules, and on how to develop additional raster
drivers.
Best regards,
The DSpatial Development Team
|