TAPRegExt PR: per-mode limits
Grégory Mantelet
gregory.mantelet at astro.unistra.fr
Thu Sep 25 09:46:15 CEST 2025
Dear Stelios,
I perfectly understand your point of view. As an individual user, either you
prefer to use one specific mode (for whatever reason) or you know that for
a specific service it is more efficient to directly run a synchronous query.
From my point of view, being both user and provider, my preference changes
in function of the query I have to run. Because, as you say, I am aware of
the different execution modes. And this, is my personal way to use the
service
as your personal way is to use the async mode by default. Then, I assume
that other users have a different way to use a TAP service. For
instance, some
may just start with a sync execution, and then go for an async one if
the query
execution times out too quickly. Others would prefer to use the async mode
combined with authentication to keep some kind of history of their queries.
Some others would prefer the sync mode to get immediately the result
without going through all the UWS madness ; especially if you run your query
from command line.
In brief, there are many use cases and I don't think that forcing a default
execution mode for all users of a given TAP service is a good solution
to your
problem.
Actually, I keep thinking that the issue is on the client side. Clients are
choosing by default the sync mode, but no standard says that sync should be
the default one. From my point of view, the best solution would be that
clients let users choose their preferred execution mode, either for all
services
or individually for each one. I am quite sure that can be done
relatively quickly
on the most used clients (e.g. TOPCAT, PyVO), but I let clients developers
gives their feeling about this, especially if I am wrong.
Cheers,
Grégory
On 24/09/2025 20:03, Stelios Voutsinas via dal wrote:
> Dear Markus, Gregory, DAL & Apps,
>
>
> Firstly thank you for the much welcomed work on adding limits to
> TAPRegExt.
>
> Regarding your question on allowing services to specify a preferred
> execution mode, I'm on the side (may be a lonely side!) of believe
> this would be a useful addition.
>
> The primary benefit I see is improved user experience through better
> client/service interaction for services which are genuinely optimized
> for async execution (e.g. result size limits, execution durations).
>
> Currently many tools (Topcat, pyvo, etc.) default to sync mode, so for
> users of async-optimized services this can potentially add a bit of
> friction to their experience.
> It is true that users can override these defaults, but how this is
> done isn't always obvious and some users may not be aware of sync &
> async.
>
> This can lead to confusion when queries fail due to sync limitations,
> or require additional manual steps each time they interact with the
> service. Even experienced users who understand the modes need to
> remember to specify their preference repeatedly.
>
> A <preferredMode> element would address this by allowing services to
> communicate their optimization to clients. The preference as I see it
> would be advisory rather than prescriptive so clients could choose to
> honor the preference, ignore it entirely or make it configurable.
> The preference wouldn't override explicit user choices but would be
> used just to inform default behavior (e.g., what search() does in pyvo).
>
> That said, I don't view this as critical functionality, as services
> can already guide users toward appropriate execution modes through
> documentation or error messages.
> But I do think that having this capability would be a plus and improve
> the out-of-the-box experience for users interacting with services that
> have clear mode preferences based on their operational characteristics.
>
>
> Cheers,
>
> Stelios
>
> ------------------------------------------------------------------------
> *From:* dal <dal-bounces at ivoa.net> on behalf of Gregory MANTELET via
> dal <dal at ivoa.net>
> *Sent:* Monday, September 15, 2025 2:03:02 AM
> *To:* dal at ivoa.net; apps at ivoa.net
> *Subject:* Re: TAPRegExt PR: per-mode limits
> Dear Markus, DAL and Apps,
>
>
> On 15/09/2025 10:08, Markus Demleitner via dal wrote:
> > Dear DAL, dear Apps,
> >
> > In pyVO bug #685 <https://github.com/astropy/pyvo/issues/685>, we
> > figured it's finally time to be a bit less cavalier about the limits
> > that TAP services report to their clients (e.g., how long can you
> > take? How large can your uploads be? etc).
> >
> > In TAPRegExt PR #8, <https://github.com/ivoa-std/TAPRegExt/pull/8>, I
> > am proposing such a mechanism. I'd be grateful for a review, both
> > technically and content-wise.
> >
> > As to the latter, I am now convinced that the per-mode limits are
> > necessary. But one might speculate whether we should allow even more
> > per-mode variation: Should we allow UDFs to only become available in
> > certain modes? Or perhaps upload formats? My current take is: no.
> > But if these were use cases, perhaps we need a different
> > architecture.
>
>
> I'd say no too. Unless a use case demonstrates this need, I would not
> complicate too much the usage of TAP by making async and sync that
> much different.
>
>
> > Also, the starting point of the discussion was whether services
> > should be allowed to say: "Please prefer async on this service" or
> > so. That's not yet part of this proposal, mainly because Mark was
> > not convinced that's a useful thing to have. Does anyone disagree?
>
>
> I join Mark's point of view here by being not convinced about this
> possibility.
>
> The way to access and interact with each mode/endpoint is clearly
> different. For me, it should be a choice of the user depending on the
> needs and preference. Also, this choice could generally be hidden by the
> used TAP client (if one is used which is not always the case). One may
> prefer to run all queries using the async mode by default, as it allows
> longer execution times and some kind of history (thanks to the jobs list).
> On the other hand, the sync mode is interesting for a simple usage
> (through cURL or so) or to query very quickly a database through a Web
> page.
>
> Depending on whether you are on server or client side, the preferred mode
> does not have the same meaning. The server will generally have
> performance or resource reason to prefer one mode or another. A client
> may prefer to use only one mode for simplicity (only one mode to
> technically support) or another mode because it would allow more features.
> And a user, depending on how he/she needs to query the service may
> prefer a mode instead on the other ; and it might change from one day to
> another in function of the data to get or anything else. For all these
> reasons, I am not in favor of encouraging a particular mode.
>
> Here is my point of view (for the moment).
>
> Cheers,
> Grégory
>
>
> > And then there is the question whether the modes should be enumerated
> > in the schema (and thus are more or less fixed) or whether more or
> > other modes are conceivable (or useful).
> >
> > Well: Any contributions are welcome.
> >
> > Thanks,
> >
> > Markus
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ivoa.net/pipermail/dal/attachments/20250925/c22ed791/attachment-0001.htm>
More information about the dal
mailing list