I saw a thread about changing the DB stuff...will that do anything to
parallelize this? Would love to help with that effort if possible.

On Mon, Oct 2, 2017 at 6:00 PM, Bill Farner <wfar...@apache.org> wrote:

> Or is there a lock somewhere (like DB updates) that makes that useless
>
>
> That is effectively correct.
>
> On Mon, Oct 2, 2017 at 5:10 PM, Mohit Jaggi <mohit.ja...@uber.com> wrote:
>
>> True. I also see that the pool of threads for processing offers has a
>> size of 1. Am I reading that wrong? Will a larger pool increase
>> performance? Or is there a lock somewhere (like DB updates) that makes that
>> useless?
>>
>> On Mon, Oct 2, 2017 at 5:07 PM, Bill Farner <wfar...@apache.org> wrote:
>>
>>> Is there a place where we store "used" offers
>>>
>>>
>>> Once the scheduler has decided to use an offer, the offer is removed
>>> <https://github.com/apache/aurora/blob/6fd6d50288d6155fda212cecab539c5fb669a9aa/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java#L418>
>>> from OfferManager.  The situation you describe is indeed possible.
>>> However, i don't suspect that there's much to gain from trying to mitigate
>>> an accept/rescind race.  That type of race also wouldn't cause any state
>>> integrity issues in the scheduler, which is what this 'global ban' routine
>>> was intending ti plug.
>>>
>>> On Mon, Oct 2, 2017 at 4:49 PM, Mohit Jaggi <mohit.ja...@uber.com>
>>> wrote:
>>>
>>>> I was wondering if that case can be checked and the banning skipped. Is
>>>> there a place where we store "used" offers? At first glance it looks like
>>>> there isn't...perhaps deep down in job/task state but that will be too
>>>> expensive to check.
>>>>
>>>> On Mon, Oct 2, 2017 at 4:44 PM, Bill Farner <wfar...@apache.org> wrote:
>>>>
>>>>> That's true, but it doesn't appear the comment is trying to lay out
>>>>> all possible scenarios.  Instead, it is attempting to explain the 
>>>>> rationale
>>>>> for offerManager.banOffer(offerId) a few lines later.
>>>>>
>>>>> On Mon, Oct 2, 2017 at 4:30 PM, Mohit Jaggi <mohit.ja...@uber.com>
>>>>> wrote:
>>>>>
>>>>>> Folks,
>>>>>> In the code below, isn't there a 3rd case where the offer was "used"
>>>>>> and hence not found for canceling?
>>>>>>
>>>>>> Mohit.
>>>>>>
>>>>>> public void handleRescind(OfferID offerId) {
>>>>>>   log.info("Offer rescinded: {}", offerId.getValue());
>>>>>>
>>>>>>   // For rescinds, we want to ensure they are processed quickly before 
>>>>>> we attempt to use an
>>>>>>   // invalid offer. There are a few scenarios we want to be aware of:
>>>>>>   //   1. We receive an offer, add it to OfferManager, and then get a 
>>>>>> rescind. In this scenario,
>>>>>>   //      we can just remove the offer from the offers list.
>>>>>>   //   2. We receive an offer, but before we add it to the OfferManager 
>>>>>> list we get a rescind.
>>>>>>   //      In this scenario, we want to ensure that we do not use 
>>>>>> it/accept it when the executor
>>>>>>   //      finally processes the offer. We will temporarily ban it and 
>>>>>> add a command for the
>>>>>>   //      executor to unban it so future offers can be processed 
>>>>>> normally.
>>>>>>   boolean offerCancelled = offerManager.cancelOffer(offerId);
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to