[ 
https://issues.apache.org/jira/browse/SOLR-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16344109#comment-16344109
 ] 

David Smiley commented on SOLR-11900:
-------------------------------------

The attached patch uses the idea above, and is mostly done.  The main thing 
left is to add alias metadata flag to control this, defaulting to false.  
Suggested: "deleteQueryDeletesCollections".  I'm not sure wether to also 
pass-through the delete query as a normal query as well... there are 
distinctions in the timezone since a NOW/MONTH for this code I added will use 
the TZ from the alias metadata but the delete query against Solr will use the 
TZ parameter sent in the update request.  (P.S. I believe there is another 
issue about tlog replay not serializing the update request params).  So that's 
not nice.  Maybe I'm stubbornly latching onto this idea and I ought to instead 
make yet another conventional SolrCloud collections API request.  
DELETEROUTEDALIASCOLLECTION?  Ugh.

It'd be interesting to see what happens if the incoming delete request is 
flowing into the oldest collection.  It will try to delete itself.  Does that 
work? I'm guessing it would, albeit with a timeout error.  If it doesn't; is it 
a big deal? I don't think so since an incoming request to the alias will always 
route to the first collection ("soonest"), and this one is not delete-able by 
this code.

> API command to delete oldest collections in a time routed alias
> ---------------------------------------------------------------
>
>                 Key: SOLR-11900
>                 URL: https://issues.apache.org/jira/browse/SOLR-11900
>             Project: Solr
>          Issue Type: Sub-task
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrCloud
>            Reporter: David Smiley
>            Assignee: David Smiley
>            Priority: Major
>             Fix For: 7.3
>
>         Attachments: SOLR-11900.patch
>
>
> For Time Routed Aliases, we'll need an API command to delete the oldest 
> collection(s).  Perhaps the command action name is 
> DELETE_COLLECTION_OF_ROUTED_ALIAS (yes that's long).  And input is of course 
> the routed alias name, plus a mandatory "before" which is a standard time 
> input that Solr accepts that will likely include date math.  Thus if you used 
> before="NOW/DAY-90DAYS" then your guaranteed to have the last 90 days worth 
> of data.  If a collection overlaps past what "before" is computed to be then 
> it needs to stay.  The pattern might match any number of collections, perhaps 
> none.  But in all cases, the most recent collection must be retained -- the 
> time routed aliases must at all times refer to at least one collection.
> The underlying steps will be to first update the alias, and then delete the 
> collection(s).  It ought to return the collections that get deleted.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to