db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joerg von Frantzius <joerg.von.frantz...@artnology.com>
Subject Re: query timeout in JDO
Date Thu, 19 Nov 2009 17:12:15 GMT

I somehow got the feeling that having a single property for both query
and and update timeouts will create confusion, if I got Michael right here.

Imagine somebody wants to set an update timeout, but doesn't want to
constrain the duration of queries (or have a higher timeout for
queries). Now if he sets the update timeout on the PM level, then he'd
have to unset the timeout for each and every query issued. That's
assuming that the timeout on the PM level will apply to all Query
objects created by the PM.

I'd propose to have distinct properties for query and update timeouts.
The RI has distinct methods for creating Statement objects for queries
and updates already, so it shouldn't be hard to implement.


On 11/17/2009 09:05 AM, Michael Bouschen wrote:
> Hi,
> the current spec allows specifying a query timeout on a Query, a PM or
> a PMF. The PM defines the default for all Query instances of the PM
> and the PMF defines the default value for all PMs of that PMF.
> However, there are still three open issue in the query timeout area:
> (1) query timeout as an optional feature
> I propose to add query timeout as an optional feature. This means the
> collection returned by the PMF method supportedOptions includes the
> string "javax.jdo.option.QueryTimeout", if the JDO implementation and
> the datastore bound to the PMF supports query timeout. This would be a
> change in chapter 11.6 "Optional Feature Support" of the spec.
> (2) Scope of the query timeout value
> I propose that a query timeout value set for a PM applies to all
> "datastore query" operations issued by the PM. This includes
> relationship navigation, findByObjectId and lasy loading of collections.
> But how about modifying operations such as update, delete and insert?
> Does it make sense to apply the PM's query timeout for these
> operationsas well? I think this makes sense, but it might be less
> obvious, because these operations are part of the transaction commit.
> See also Jörg's recent email with subject "update timeout". This would
> be a change in chapter 12 PersistenceManager. Today chapter 12.6.3
> "Query factory interface" specifies method setQueryTimeout. If we
> broaden the scope of a query timeout set on a PM, it might make sense
> to specify this in its own section, e.g. 12.6.9 "Query Timeout".
> (3) Definition of query timeout: datastore operation or JDO method?
> Does the query timeout apply to the underlying datastore operation or
> does it define the maximum execution time of the JDO method such as
> Query.execute?
> I propose the former, meaning use the query timeout value for the
> datastore operation. Otherwise, the JDO implementation would need to
> calculate the timeout for the datastore operation and need o guess the
> time needed to post-process the query result. If the datastore has the
> JDBC standard second resolution, and there is less than 1000 millis
> left in the timeout, what should be the timeout set on the datastore
> query statement?
> What do you think?
> Regards Michael

artnology GmbH - Milastraße 4 - 10437 Berlin - Germany
Geschäftsführer: Ekkehard Blome (CEO), Felix Kuschnick (CCO)
Registergericht: Amtsgericht Berlin Charlottenburg HRB 76376 
UST-Id. DE 217652550

  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message