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

Maxim Khutornenko commented on AURORA-691:
------------------------------------------

Dual writing on the scheduler is not enough. In order to safely drop the old 
field client needs to dual read as well. Otherwise, no matter how many versions 
apart we will always break older clients when a final scheduler version is 
deployed.

Consider the current example:
- 0.5.0 - scheduler starts dual writing. Clients of all versions are supported
- 0.6.0 - no changes
- 0.7.0 - scheduler AND client are updated to drop the old field completely. 
Clients 0.6.0 and lower are broken unable to find the old (populatedDEPRECATED) 
value.

I have raised AURORA-973 in an effort to document our thrift deprecation 
procedure. Will update it with this example.

> Remove populated field in PopulateJobResult struct
> --------------------------------------------------
>
>                 Key: AURORA-691
>                 URL: https://issues.apache.org/jira/browse/AURORA-691
>             Project: Aurora
>          Issue Type: Task
>          Components: Scheduler
>            Reporter: Maxim Khutornenko
>            Assignee: Maxim Khutornenko
>
> In api.thrift:PopulateJobResult, the {{populated}} field (id 1) is deprecated 
> in favor of {{taskConfig}} (id 2).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to