db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From CEr...@versant.com
Subject Re: query timeout in JDO
Date Fri, 20 Nov 2009 09:46:20 GMT
Hi !

Michael Bouschen <mbo.tech@spree.de> wrote on 17.11.2009 09:05:24:

> query timeout in JDO
>
> 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.

Sounds fine as there might exists datastores which doesn't support these
feature.

> (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".

The "Query Timeout" shall be an option only for the JDO queries themself.
Keep in mind that the idea of JDO was to support any kind of datastore,
which means there exists implementations which don't use any kind of
datastore queries for operations like relationship navigation,
findByObjectId and lasy loading of collections.

> (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?

>From the JDO idea it should be on the operation of the
Query.execute(), but from a Vendor persective i would suggest that
we allow both and it shouldn't be gurantied that this value is exact,
as the underlying datastore might have some kind of tolerance for the
timeout
or has different resolution for there timer.


cheers
Christian
---
Christian Ernst
Software Engineer

Tel: +49-40-60990 338
Fax: +49-40-60990 113
EMail: cernst@versant.com

Versant GmbH
Wiesenkamp 22b
22359 Hamburg
Germany

Think Outside the Grid!
http://www.versant.com

Versant GmbH is incorporated in Germany.
Company registration number: HRB 54723, Amtsgericht Hamburg.
Registered Office: Wiesenkamp 22b, 22359 Hamburg, Germany.
Geschäftsführer: Jochen Witte


Mime
View raw message