Project

General

Profile

Idea #14374

Updated by Peter Amstutz about 6 years ago

Implemented in controller. 

 # Distribute query to each cluster in the federation. 
 # Collect responses, collate by order and truncate to response item limit 
 # Construct a "page token" which consists of the original filters plus additional information needed to get remaining unseen items on each cluster 
 # Respond with object list and page token 
 # Subsequent requests should only use the page token 

 Query parameters: 

 * enable_multisite_search allow partial results 
 ** true enables multisite search 
 ** true by default? 
 ** provide cluster_id= to search only an individual cluster? 
 * return_partial_results 
 ** when true, if a query to a remote cluster fails, return a response with that cluster stripped out and an additional "warning" field mentioning there was a problem 
 ** when false, if any query to a remote cluster fails, the whole request fails 
 * multisite_search_timeout timeout 
 ** how long to wait for a result from one of the remote clusters 

 Query considerations: 

 * Only order on certain columns?    Such as only uuid or modified_at 
 * If "select" is specified and specified, must include "uuid" is missing, must add in uuid for remote queries (needed for paging) and strip it out in the response 
 * Only order on scalar columns.    Disambiguate rows with the same value by ordering by uuid. ? 
 * Cannot have "offset" 
 * Must be "count=none" 
 * Must be "distinct=false" 

Back