[Monetdb-developers] Planning the next MonetDB release
Dear all, with the recent deadlines passed and the next(?) one (SIGMOD) five weeks ahead, it might be a good time to assess the current status of developments around MonetDB to make more concrete plans for the next release. I guess, we all agree that the next release should be *the* MonetDB/XQuery Update release, i.e., providing an implementation of the W3C XQuery Update Facility (http://www.w3.org/TR/xqupdate/) for MonetDB/XQuery. Hence, the major focus is obviously on finishing this implementation. See details below under "XQuery Updates". Concerning MQX/PF, there are three more subjects/areas where we need to see to which extend they should be officially announced with the release (and hence, need to be "finished" before the release): - algebra path (TUM: JanR, Jens) - recursions (TUM: JanR, Jens) - XRpc (CWI: Jennie, Peter) Further, the 64-bit Windows port of MQX (i.e., pathfinder) is still open. Concerning MonetDB in general, we need to see to which extend we want/need to improve the compilation process before the release: - clean-up configure scripts - clean-up usage of *-config.h include files - "meta scripts" to simplify the cvs checkout/update and build process Additionally, Niels & Fabian probably also have a todo list for MonetDB/SQL. Finally, all parts require some thorough testing --- especially all newly added features, in particular the XQuery update & transaction features and the new multi-document support --- simply using it (like with the recently added (multi-doc) benchmark tests) is a good start... Also, there are 50(!) open bug reports, and for many (most?) bugs that have been filed or closed since 01.01.2006, no test script has been provided, yet, to monitor their status. Lots of work to do... As said, this is to trigger an assessment of the current state and a planning for the release, hence, please feel free to comment and add your points. I suggest to discuss this in (or after) "MADAM" tomorrow and in the PF skype conference on Tuesday. Stefan XQuery Updates ============== As far as I'm aware, the major missing features are transaction support, mainly logging & recovery. Undoubtedly, this is a CWI task. Apart from that, we need to finish/extend the implementation of document management within MonetDB/XQuery --- both in MIL & XQuery. My vision is that we provide comparable (if not equal) functionality in both MIL & XQuery, providing functions beyond the XQuery standard where necessary. The envisaged functionally should cover the following: - access a single document by name (or URI) XQ!: fn:doc($uri as xs:string?) as document-node()? Done. - access all documents in a collection XQ!: fn:collection($arg as xs:string?) as node()* ToDo! - shred a single document into a new "singleton" collection: MIL: shred_doc(str URI [,str doc-name [,str col-name]] [,lng freeSlotsPerPage]) : void (defaults: doc-name = URI, col-name = doc-name?doc-name:URI, freeSlotsPerPage = 0 (i.e., read-only)) Done. XQ!: fn:doc($uri as xs:string?) as document-node()? (implies doc-name = URI, col-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) Done. - shred a set of documents into a single new collection: MIL: shred_doc(BAT[void,str] URI [,BAT[void,str] doc-name [,str col-name]] [,lng freeSlotsPerPage]) : void (defaults: doc-name = URI, col-name = doc-name?first-doc-name:first-URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo! XQ!: loop-lifted fn:doc($uri as xs:string?) as document-node()? (implies doc-name = URI, col-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) Done. XQ?: fn:doc($uri as xs:string*) as document-node()? (implies doc-name = URI, col-name = first-URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo? - shred a set of documents into a set of new collections: MIL: shred_doc(BAT[void,str] URI [,BAT[void,str] doc-name [,BAT[void,str] col-name]] [,BAT[void,lng] freeSlotsPerPage]) : void (defaults: doc-name = URI, col-name = doc-name?doc-name:URI, freeSlotsPerPage = 0 (i.e., read-only)) (constraint: freeSlotsPerPage must be identical for all documents within a collection) Done. XQ?: loop-lifted fn:doc($uri as xs:string*) as document-node()? (implies doc-name = URI, col-name = first-URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo? - shred a single document and add it to an existing collection: MIL: add_doc(str URI, str col-name [,str doc-name] [,lng freeSlotsPerPage]) : void (defaults: doc-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo! XQ?: fn:add_doc($uri as xs:string, $coll as xs:string) as document-node()? (implies doc-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo! - shred a set of documents and add it to a single existing collection: MIL: add_doc(BAT[void,str] URI, str col-name [,BAT[void,str] doc-name] [,lng freeSlotsPerPage]) : void (defaults: doc-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo! XQ?: loop-lifted fn:add_doc($uri as xs:string, $coll as xs:string) as document-node()? (implies doc-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo! XQ?: fn:add_doc($uri as xs:string*, $coll as xs:string) as document-node()? (implies doc-name = first-URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo! - shred a set of documents and add it to a set of existing collections: MIL: add_doc(BAT[void,str] URI, BAT[void,str] col-name [,BAT[void,str] doc-name] [,BAT[void,lng] freeSlotsPerPage]) : void (defaults: doc-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) (constraint: freeSlotsPerPage must be identical for all documents within a collection) ToDo! XQ?: fn:add_doc($uri as xs:string*, $coll as xs:string*) as document-node()? (implies doc-name = URI, freeSlotsPerPage = 0 (i.e., read-only)) ToDo! - delete a single document by name (and the whole collection, if this was the last document in that collection) MIL: delete_doc(str doc-name) : void Done. XQ?: fn:del_doc($uri as xs:string) as ??? ToDo! - dito for a set of documents? - delete a collection MIL: delete_col(str col-name) : void ToDo! XQ?: fn:del_col($col as xs:string) as ??? ToDo! - dito for a set of collections? - delete all cached/persistent documents MIL: delete_all_docs(bit cachedOnly) : void Done. XQ?: fn:del_all_docs($cachedOnly as xs:boolean) as ??? ToDo! - view all explicitly shredded and/or cached documents and collections (at least their names, maybe more info) in the database/cache, a la "xmlcache_print()" & "xmldb_print()" - view/list all documents (names) in a collection - manage cache rules Anything more? -- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
participants (1)
-
Stefan Manegold