Closed damb closed 4 years ago
Hi @damb . Thanks for the clarifying concepts. I think that in these last four years no one ever asked for a centralized cache of the whole inventory. We are trying to get away from that. According to what has been presented in the ETC, the Federator performance is great and ready to be tried in production. At this stage, the only thing that remains is to put the Federator in place and test it with real use cases/real users.
@javiquinte,
I'd like to raise once more the question which strategy should be implemented in order to increase the overall performance of
/fdsnws/station/1/query?format=xml&level=channel|response
queries ateida-federator
. Let me first describe which strategy is implemented at the time being:/eidaws/routing/1/localconfig
routing configurations. Furthermore, routes defined are resolved by means of/fdsnws/station/1/query?format=xml&level=channel
. This information is used for explicit routing purposes exclusively. Thus, it is not used to serve station metadata client requests toeida-federator
. Instead, this (cached) routing information is used to/fdsnws/station
webservices of EIDA DCs, afterwards.eida-federator
's performance and to prevent the corresponding/fdsnws/station
webservices of EIDA DCs from overloading, the current version uses a HTTP caching reverse proxy approach (This backend cache is currently implemented by means of Apache2 +mod_cache_disk
.). Note also, that this requiresfdsnws-station
metadata from EIDA DCs to be requested by means of the HTTP GET method.As a consequence,
fdsnws-station
metadata is only requested from EIDA DCs if the granular request could not be served from the backend cache. @kaestli mentioned the impact of this approach on logging during the EIDA meeting in De Bilt (2020-Q1).So the question arises, why
eida-federator
does not use the station metadata already gathered while harvesting its routing information? Instead of usinglevel=channel
one simply could immediately request station metadata withlevel=response
and demultiplex theStationXML
data in order to fill a cache forfdsnws-station
requests. Well, that's right if there wouldn't be the following issues:StationXML
metadata within a DB requireseida-federator
to a) fully parseStationXML
metadata (which could be done by means of e.g.obspy
, since filling the cache is not time critical) and b) maintain the complete EIDA inventory. Howevereida-federator
was developed and designed to provide a gateway forfdsnws
andeidaws
webservices. Maintaining a centralized inventory ateida-federator
level disagrees with the fact that every single EIDA DC is responsible for its own inventory.matchtimeseries
would add additional complexity when maintaining a central inventory without the correspondingminiseed
data available.From my point of view, maintaining a central inventory at
eida-federator
level is only very difficult to achieve and contradicts the original design goals. However, I'm open for a discussion. If there is a simple way around I'm happy to implement the suggestions.Thanks in advance for any kind of comments.