prototype: scalable VOSI-tables-1.1
Mark Taylor
m.b.taylor at bristol.ac.uk
Thu May 7 18:12:06 CEST 2015
On Thu, 7 May 2015, Patrick Dowler wrote:
>
> Hi Mark,
>
>
> On 07/05/15 06:21 AM, Mark Taylor wrote:
> > > >The change to the VOSI-tables XSD is to add <schema> and <table> as valid
> > > >document root elements with types taken from VODataService-1.1 xsd.
> > Not necessarily. You could just require that every response from
> > this (modified) tables endpoint still has the tableset top-level
> > element, but only contains the elements that have been requested
> > (e.g. the ancestor schema and tableset of a requested table, but
> > not the sibling schemas).
>
> I did consider this option (it is easy to implement) but something about
> having the same document with stuff just missing rubs me the wrong way. And
> writing integration tests (sort of a client) I found different document roots
> to make more sense...
I think it rubs me the right way :-), and would probably require
fewer changes to my existing code - but I don't have very strong
feelings, could live with either.
> Given that the VOSI-tables xsd does nothing but import VODataService and
> define which element(s) can be root, adding to it is very simple and safe.
Agreed.
> > Although I'm still experimenting, I currently
> > use a hybrid metadata acquisition policy that uses the /tables
> > endpoint for small services, and TAP_SCHEMA for large ones:
> >
> > ncol = (SELECT COUNT(*) FROM TAP_SCHEMA.columns)
> > if ncol < 5000
> > slurp entire VODataService doc from /tables endpoint
> > else
> > read all schemas and tables, but not columns, from TAP_SCHEMA in one go
> > read per-table column/foreign key info from TAP_SCHEMA as required
>
> The count query seems a good way to gauge the amount of content. The "else"
> could be accomlished with VOSI-tables-1.1 with
>
> http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/tap/tables?detail=table
>
> which gives you all the schema and table names (easier than 2 queries to
> TAP_SCHEMA? I guess so) followed by calls like
>
> http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/tap/tables/TAP_SCHEMA/TAP_SCHEMA.tables
>
> to get individual table metadata. Whether VOSI-tables documents are easier or
> harder to parse than TAP_SCHEMA query output... I guess that's up to you.
Yes, probably your extended VOSI-tables route is easier to write
client code for than doing it with multiple TAP_SCHEMA TAP queries,
as long as you can rely on it being present. And it may have
different (better?) performance characteristics too.
I just wanted to note that I have found it *possible* to write a
working client metadata presentation GUI using only existing standards.
--
Mark Taylor Astronomical Programmer Physics, Bristol University, UK
m.b.taylor at bris.ac.uk +44-117-9288776 http://www.star.bris.ac.uk/~mbt/
More information about the grid
mailing list