IMPROVEMENT: ConeSearch #214
Labels
app:conesearch
concerns the conesearch-app
app:query
concern the query-app
app:tap
concern the tap-app
category:code-style
category:cone-search
category:interface:WEB
category:IVOA
category:sql-language:ADQL
category:sql-language:Postgres
category:SQL-Parser
category:tap-service
enhancement
performance
When feature has performance issue
priority:low
Milestone
With daiquiri there are 4 ways of running a cone search:
All of these ways lead to various performances and/or results.
IVOA SOAP
https://github.com/django-daiquiri/daiquiri/blob/master/daiquiri/conesearch/adapter.py#L17
The data access is done directly via the DatabaseAdapter, with a query defined in the conesearch adapter.
Therefore the performances and results will depend on the pre-defined query.
Web Interface
https://github.com/django-daiquiri/daiquiri/blob/master/daiquiri/query/static/query/js/forms/cone.js
The data access is done via the REST API of the query-app. The query is defined within the JS files, and may differ from the
IVOA Soap query. Again performances and results will depend on the query.
Note: per default only ra, dec, and search radius are available parameter, the official verb (the list of columns) and resource (the table to query) values are not available, but can be added within the adapter.
TAP PostgreSQL
The TAP service also allow the user to submit queries carrying out a cone search. In PostgreSQL they look like:
This type of cone search are quite slow, and will always require LONG Queue. For this reason we usually provide an additional column for the conesearchable tables:
pos
. This column is of typeSPOINT
which is not a native PostgreSQL type but is declared by the Postgres module PGIST. When thepos
column is indexed, one can build very efficient queries like:From experience, this queries will run about 20 time faster than the precedent.
TAP ADQL
This will be translated into PostgreSQL as:
Which is an issue since it does not make use of the indexed
pos
columns, and lead to much longer query time.Issues
Possible solutions
pos
column is available improve translation from ADQL to Postgres and replaceSPOINT( RADIANS(ra), RADIANS(dec))
bypos
.The text was updated successfully, but these errors were encountered: