-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/58850/
-----------------------------------------------------------

Review request for Aurora, David McLaughlin, Santhosh Kumar Shanmugham, and 
Stephan Erb.


Bugs: AURORA-1923
    https://issues.apache.org/jira/browse/AURORA-1923


Repository: aurora


Description
-------

Aurora client has a built in mechanism to automatically retry thrift API 
operations if the connection with scheduler times out, experiences transport 
exception, or encounters a transient exception on the scheduler side.

Retrying thrift calls due to scheduler connection timeout and transient 
exceptions (see AURORA-187) is safe. However, as Aurora has no concept of 
idempotency, its client can retry non-idempotent operations upon encountering 
transport exceptions which can lead to nondeterministic situations.

For example, if client requests go through a proxy to reach scheduler, client 
might consider a non-idempotent request failed and automatically retry it while 
the original request has been received and processed by the scheduler.

This patch changes Aurora client invocation semantics from "at least once" to 
"at most once" for non-idempotent operations.


Diffs
-----

  src/main/python/apache/aurora/client/api/__init__.py 
a4639db2c7818a1a0ef1ff128dd3603a67a16d09 
  src/main/python/apache/aurora/client/api/scheduler_client.py 
9bbfece012e48e0b1752bbefd25c89e04d312cf6 
  src/test/python/apache/aurora/admin/test_maintenance.py 
cccc1e5dbc97baaaf4c2265993db1fe857ca02a1 
  src/test/python/apache/aurora/api_util.py 
f4935b537959a0e0ddf2f8e6d86a354b8d767823 
  src/test/python/apache/aurora/client/api/test_api.py 
f1579b5fe68a094c9bae27750e66acbc1f4dcd47 
  src/test/python/apache/aurora/client/api/test_scheduler_client.py 
59c651cc7014d6c82294df1a15398b64de73b32a 
  src/test/python/apache/aurora/client/cli/test_status.py 
14ef3606d2bd53f33fff0c2ce9a0ad738eb34081 
  src/test/python/apache/aurora/client/cli/test_task.py 
610414f0dca9a6be01aea2e9faba9bf9b2d6352d 


Diff: https://reviews.apache.org/r/58850/diff/1/


Testing
-------

- End to end test script
- Manually in a test cluster


Thanks,

Mehrdad Nurolahzade

Reply via email to