Hi Peter, Does it also mean that if I send a stream of messages to one server that all carry the same request-ID without waiting for a result of a message before sending out the next, that all are handled in the correct order and each is handled after completion of the previous one? In that case, it meets all my requirements. In fact, it gives much more than I ask for :-) I definitely like to follow any developments for this one! Maurice. Peter Boncz wrote:
Hi,
I read the digests of the monetdb mailing list, which in this case took more than a month to send me this discussion. That's pretty useless.. I will switch to immediate mails.
Anyway, Jennie is currently working on getting the repeatable reads transactions working. This means that by passing a request-ID you will be guaranteed that all queries and updates execute on the same database image, i.e. a transaction. In case of update requests in the same transaction, these will be executed atomically using a 2PC protocol.
While this functionality is designed to be triggerered from XQuery queries, you client API could also generate the appropriate messages.
It may not answer you needs regarding performance (you would send a read-request, update-request, prepare-request and commit-request), but it would answer your functional requirements AFAIS.
Peter
Message: 1 Date: Wed, 19 Mar 2008 12:30:20 +0100 From: "Keulen, M. van (Maurice)"
Subject: Re: [Monetdb-developers] [XQ] Mixing update/docmgmt/query To: monetdb-developers@lists.sourceforge.net Message-ID: <47E0F94C.4000709@utwente.nl> Content-Type: text/plain; charset=windows-1252; format=flowed Ying Zhang wrote:
Jennie: my SOAP-messages do not come from MonetDB/XQuery, but from outside (i.e., some scripting language).
Then, an order can only be guaranteed if you, in your
scripts, send a
message, wait for result, and send the next message. In all other cases, unfortunately, no guarantee, as an xrpc server immediately start handling a request when it's received.
Jennie
I thought so already. This is why I don't like to have to send multiple requests to do one thing (transaction). I'd rather be able to send one request to both do, say, an update and return a result, or add a document and return a result. The system so far doesn't allow me to do this, because I cannot define one query (or function in a module) that does both because of typing restrictions, and I also cannot send two separate queries in one request because of restrictions in the XRPC protocol.
Any thoughts about achieving what I want?
Maurice.
-- ---------------------------------------------------------------------- Dr.Ir. M. van Keulen - Assistant Professor, Data Management Technology Univ. of Twente, Dept of EEMCS, POBox 217, 7500 AE Enschede, Netherlands Email: m.vankeulen@utwente.nl, Phone: +31 534893688, Fax: +31 534892927 Room: ZI 3039, WWW: http://www.cs.utwente.nl/~keulen
*********************************
-- ---------------------------------------------------------------------- Dr.Ir. M. van Keulen - Assistant Professor, Data Management Technology Univ. of Twente, Dept of EEMCS, POBox 217, 7500 AE Enschede, Netherlands Email: m.vankeulen@utwente.nl, Phone: +31 534893688, Fax: +31 534892927 Room: ZI 3039, WWW: http://www.cs.utwente.nl/~keulen