You've misunderstood :)

The server application needs to request incoming calls, and we need to
match them to requests as they come in. We arbitrarily reverse to order of
matching (because we get a faster implementation), but preserve the order
of actual requests presented to the application.

On Wed, Feb 15, 2017, 1:56 PM Arpit Baldeva <[email protected]> wrote:

> Hi,
>
> This post is around the rpc sequence issued by a single client.
>
> For the sync model, I understand that rpc call order guarantee can't be
> maintained due to a pool of threads executing concurrently. The sync model
> is not suitable for my use case for other reasons and I was looking at the
> async model which allows for better threading control. On surface, it
> seemed like it would allow my application to see the same rpc order as
> issued by a client if I processed completion queue on a single thread.
>
> However, I was looking at the C core implementation and this code caught
> my eyes (The usage of stack structure)
>
> for (size_t i = 0; i < server->cq_count; i++)
> { size_t cq_idx = (chand->cq_idx + i) % server->cq_count; int request_id =
> gpr_stack_lockfree_pop(rm->requests_per_cq[cq_idx]);
> if (request_id == -1)
> { continue; }
> else { gpr_mu_lock(&calld->mu_state); calld->state = ACTIVATED;
> gpr_mu_unlock(&calld->mu_state);
> publish_call(exec_ctx, server, calld, cq_idx,
> &server->requested_calls_per_cq[cq_idx][request_id]); return; /* early out
> */ }
>
> So if two rpcs come from the same client in the same "network chunk",
> would the order of rpcs that the application see is reversed or I
> misunderstood the code here?
>
> Thanks.
>
> --
> You received this message because you are subscribed to the Google Groups "
> grpc.io" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/grpc-io.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/grpc-io/2e657a3c-0c8a-4159-bfe1-4c914d2a55b1%40googlegroups.com
> <https://groups.google.com/d/msgid/grpc-io/2e657a3c-0c8a-4159-bfe1-4c914d2a55b1%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAAvp3oN9tnsXcSiTh1NtRrTvkWhSQzroZa1nADF-jsJ_8n%3Dq-w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to