[Monetdb-developers] About MonetDB's modules

Niels Nes Niels.Nes at cwi.nl
Wed Jun 1 19:56:24 CEST 2005

On Wed, Jun 01, 2005 at 06:02:05PM +0200, Martin Kersten wrote:
> Hello,
> Rodrigo Schmidt wrote:
Seems I made a mistake in my earlier reply.
> >
> >Hello,
> >
> >I am PhD student at EPFL, Switzerland, and I am working on database 
> >replication. I just started looking at MonetDB and I have a simple 
> >doubt. Are modules like the SQL module written in MIL or in C/C++?
> Modules are mostly written in C, but they require more programming
> experience than MIL. MIL is primarilly used to quickly produce code,
> without all the worries you have when writing a C-based module.

Indeed SQL server module is writen in C. The SQL server module 
translates SQL into MIL-statements which are then executed on MonetDB/MIL
server. Some small procedures are done directly in mil. 
> >
> >I downloaded the sources of the SQL front end and I found some files 
> >whose extension is ".mx" and which seem to implement the SQL translator 
> >into MIL. The code looks pretty much like C++.
> The SQL to MIL translator is written in C. The code and documentation
> are packaged in 'mx' format, which supports combining code and 
> documentation. The Mx tool is provided in the distribution.
> >
> >Moreover, I read somewhere in your web page that two-phase-locking is 
> >implemented outside the database kernel. Where exactly is it implemented 
> >for the SQL front end?
> It is handled in the catalog management area. Basically, the kernel
> provides a module to implement locks and semaphores. However, the
> relational algebra engine does not include these calls to separate the 
> users, it is expected that the front-end compiler provides these calls.
> This is in line with what some modern DBMS do.

The MonetDB/MIL server indeed only comes with the handles to build 
transaction support (such as locking etc). The SQL server complements 
this with full transaction support. This is based on Optimistic Concurrency
Control. A transaction simply starts and at the end checks the used columns 
where not changed by other transactions during its lifetime.
All changes are then logged to a writeahead log and once this is completed
the 'commit' is done.

Niels Nes
> >
> >Thank you very much in advance!
> Success, keep us informed on your progress and findings.
> Martin Kersten
> >
> >Best regards,
> >Rodrigo Schmidt
> >
> >
> >-------------------------------------------------------
> >This SF.Net email is sponsored by Yahoo.
> >Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >Search APIs Find out how you can build Yahoo! directly into your own
> >Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >_______________________________________________
> >Monetdb-developers mailing list
> >Monetdb-developers at lists.sourceforge.net
> >https://lists.sourceforge.net/lists/listinfo/monetdb-developers
> -------------------------------------------------------
> This SF.Net email is sponsored by Yahoo.
> Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> Search APIs Find out how you can build Yahoo! directly into your own
> Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> _______________________________________________
> Monetdb-developers mailing list
> Monetdb-developers at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-developers


Niels Nes, Centre for Mathematics and Computer Science (CWI)
Kruislaan 413, 1098 SJ Amsterdam, The Netherlands
room C0.02,  phone ++31 20 592-4098, fax ++31 20 592-4312
url: http://www.cwi.nl/~niels   e-mail: Niels.Nes at cwi.nl

More information about the developers-list mailing list