* Re: Mneson use experience, limits
[not found] ` <0d720a30e3699305d4695c57014bdd24@itmag.ru>
@ 2005-04-18 13:28 ` Marius Amado Alves
0 siblings, 0 replies; only message in thread
From: Marius Amado Alves @ 2005-04-18 13:28 UTC (permalink / raw)
To: Xlex; +Cc: comp.lang.ada
>> a) Berkeley DB is not Ada
>
> Yes, that's true, but there is some Ada bindings:
> http://groups-beta.google.com/group/comp.lang.ada/browse_frm/thread/
> 5de3cdb361233cf6/9119fcb390feca4c#9119fcb390feca4c
I saw this little thread on Google. I get comp.lang.ada via the
Ada-France email gateway which seems to be having problems lately. So
please CC your replies to me.
On the subject:
It seems there is a binding to GDBM, not to Berkeley DB.
Speaking personally, I'd have to consider the cost of writing a binding
to Berkeley DB vs. writing a persistent version of Ada.Containers as
sketched on my Ada-Europe 2004 paper "A Theory of Persistent Containers
and its Application to Ada." Call it SCOPE, for Signatured COntainers
with PErsistence. Some preliminary experiments can be found here:
http://www.liacc.up.pt/~maa/containers/
The main motivation is the prospect of using SCOPE together with the
concurrency and distributed features of Ada to make an elegant and
reliable database engine inherently more appropriate for Ada
applications than any binding to an external C library.
SCOPE design is based on Ada.Containers (Ada 2005) and an additional
uni-elementary container abstraction called Cells. Cells are written
from scratch. SCOPE multi-elementary containers are a rewrite of
Ada.Containers with:
- in the body: all allocation, writing and reading primitive operations
replaced by cell operations, or by operations of a container based on
Cells;
- in the spec: formal cell packages added (maybe generic, possible in
Ada 2005); one for the main data; if required, another one for
auxiliary data; the Element_Type may be dropped, as the main data cell
package already defines it.
A persistence container is obtained by instantiation with the cell
packages of the required persistence levels. Multiple instantiation can
be hidden by means of predefined packages (generated automatically).
I'd love to see this project realised in great extent by means of
automatic rewriting of an Ada.Containers implementation, probably using
Adalog's tools Adasubst, AdaControl.
An alternate approach is to use storage pools instead of Cells. This
requires designing a file-based storage pool.
(I think both approaches would make wonderful MSc projects.
Unfortunately at my University Ada is not welcome currently. In a year
or two when I become a doctor this might change.)
A copy of my Ada-Europe 2004 paper can be found here:
http://www.softdevelcoop.org/marius/paper26final.ps.zip
(267k compressed, 1M uncompressed)
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-04-18 13:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <f7c5fd48ded2e62c8a57437de6c60378@itmag.ru>
[not found] ` <007372488ab7b9e95a561ecf4da2cec0@netcabo.pt>
[not found] ` <17e595fb5f544d56e24cc526a7522cb7@itmag.ru>
[not found] ` <848df2e0afdce93a00bbaba07c7a20c6@netcabo.pt>
[not found] ` <615587a1f75c2eaa7bce03822bfbb5e4@itmag.ru>
[not found] ` <05d589c15152631778ed212a4cb7e87c@netcabo.pt>
[not found] ` <fa47406468c059e294b67d3318796184@itmag.ru>
[not found] ` <abf8dff0ce84878358a69ea5a79f3d65@netcabo.pt>
[not found] ` <0d720a30e3699305d4695c57014bdd24@itmag.ru>
2005-04-18 13:28 ` Mneson use experience, limits Marius Amado Alves
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox