[grpc-io] Benchmark data for gRPC + xDS. vs envoy

2021-08-16 Thread 'Gaurav Poothia' via grpc.io
Hello,
I saw a talk by Mark Roth from envoycon that talked about gRPC proxyless
mesh having superior QPS per cpu second and latency than envoy all of which
is of course expected.

Can anyone pls share results/setup from benchmarks around these two
metrics?
It would be great to understand perf benefits more deeply.

Thanks!
Gaurav

-- 
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 grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAFJ0%2B9-h7P_hrQjmgGyfF4jT6UGD%3D42V8a7zy3cqxKHLG4fOsQ%40mail.gmail.com.


Re: [grpc-io] Re: Slides for xDS + gRPC talk

2021-08-12 Thread 'Gaurav Poothia' via grpc.io
Thanks Srini - ah now I can too.
Might have been a transient issue - sorry for the bother - thanks!

On Thu, Aug 12, 2021 at 12:22 PM 'Srini Polavarapu' via grpc.io <
grpc-io@googlegroups.com> wrote:

> Hi,
>
> I am able to access the slides here:
> https://static.sched.com/hosted_files/kccnceu2021/2a/Service%20Mesh%20with%20gRPC%20and%20xDS.pdf
> Not sure why this link doesn't work for you.
>
> On Thursday, August 12, 2021 at 11:10:04 AM UTC-7 Gaurav Poothia wrote:
>
>> Hi,
>> I was trying to follow the very interesting hyperlinked references from
>> the slides in this recent talk
>> https://www.youtube.com/watch?v=cGJXkZ7jiDk
>>
>> But the kubecon page has a stale slides link so no way to get at them
>>
>> https://kccnceu2021.sched.com/event/iE8o/xds-in-grpc-for-service-mesh-megan-yahya-google-llc
>>
>> Maybe someone from Google can CC the presenter and/or help repost them
>> elsewhere/attach?
>>
>> Thanks in advance!
>>
>>
>> --
> You received this message because you are subscribed to a topic in the
> Google Groups "grpc.io" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/grpc-io/n7fEcLIATKA/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> grpc-io+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/grpc-io/70d8c9e1-0a82-4757-b0b3-cfdd1cb301ddn%40googlegroups.com
> 
> .
>

-- 
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 grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAFJ0%2B9_TZr%3D%2BzjtePGtC1xW%2BffSyQa66ArZXEyVcnaP0-Rc%3D6g%40mail.gmail.com.


[grpc-io] Slides for xDS + gRPC talk

2021-08-12 Thread 'Gaurav Poothia' via grpc.io
Hi,
I was trying to follow the very interesting hyperlinked references from the 
slides in this recent talk
https://www.youtube.com/watch?v=cGJXkZ7jiDk

But the kubecon page has a stale slides link so no way to get at them
https://kccnceu2021.sched.com/event/iE8o/xds-in-grpc-for-service-mesh-megan-yahya-google-llc

Maybe someone from Google can CC the presenter and/or help repost them 
elsewhere/attach?

Thanks in advance!


-- 
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 grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/9ccf5761-aab7-4e04-b925-c64a1e9eea72n%40googlegroups.com.


[grpc-io] Java grpc client behaviour on hitting H/2 max concurrent streams

2021-06-15 Thread 'Gaurav Poothia' via grpc.io
Hello!
I have a situation where the server sets H/2 max concurrent streams 
intentionally low (e.g. 16 or 32) for good reason (that are somewhat 
orthogonal to gRPC so I will skip the details)
The behavior I seem to be observing is that Java gRPC client stalls when it 
hits that limit and waits for streams to free up before issuing more 
requests.
Is this the expected behavior?

I was hoping for a knob that allows me to instruct gRPC to dial additional 
H/2 connections when it hits the limit. Turns out the .Net implementation 
has something exactly  like that
https://docs.microsoft.com/en-us/aspnet/core/grpc/performance?view=aspnetcore-5.0#connection-concurrency

Does Java gRPC stack have an equivalent? 

It would be pretty useful in seamlessly handling service to service 
communication where server can support a higher gRCP req/sec but only if 
the client were to dial more H/2 connections.
I say "seamlessly" because of course we can write code to somehow dial more 
subchannels to server but we want the client to do this automatically 
without programmer picking hardcoded connection count.

Thanks in advance!
Gaurav

-- 
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 grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/a687afdc-6c52-449f-85ab-5c9d83543f08n%40googlegroups.com.


Re: [grpc-io] Unable to get gRPC DNS resolver to return multiple IP addresses

2021-05-13 Thread 'Gaurav Poothia' via grpc.io
Not sure why this worked when I changed the hostname from "localhost" to
something custom.
Nevermind I think I am unblocked now.

thanks!

On Thu, May 13, 2021 at 5:09 PM 'Gaurav Poothia' via grpc.io <
grpc-io@googlegroups.com> wrote:

> Hello,
> I am prototyping gRPC client side round robin load balancing.
> So if client wants to dial to "localhost" I want it to load balance
> requests round robin over different loopback addresses e.g. 127.0.0.1,
> 127.0.0.2, 127.0.03 etc
>
> For this experiment I configured unbound (by local DSN) to appropriately
> return multiple A records for "localhost" like so:
>
> $ dig localhost
>
> ; <<>> DiG 9.16.1-Ubuntu <<>> localhost
>
> ;; global options: +cmd
>
> ;; Got answer:
>
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7826
>
> ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
>
>
> ;; OPT PSEUDOSECTION:
>
> ; EDNS: version: 0, flags:; udp: 4096
>
> ;; QUESTION SECTION:
>
> ;localhost. IN  A
>
>
> ;; ANSWER SECTION:
>
> localhost.  10800   IN  A   127.0.0.1
>
> localhost.  3600IN  A   127.0.0.3
>
> localhost.  3600IN  A   127.0.0.2
>
> ;; Query time: 0 msec
>
> ;; SERVER: 127.0.0.1#53(127.0.0.1)
>
> ;; WHEN: Thu May 13 23:51:33 UTC 2021
>
> ;; MSG SIZE  rcvd: 86
>
>
> I modified the hello world client in the grpc quick start guide to use
> round robin LB and
>
> const (
>
>   address = "dns:///localhost:50051"
>
>   defaultName = "world"
>
> )
>
> func main() {
>
>   resolver.SetDefaultScheme("dns")
>
>   // Set up a connection to the server.
>
>   conn, err := grpc.Dial(address, grpc.WithInsecure(),
> *grpc.WithBalancerName(roundrobin.Name*))
>
>   if err != nil {
>
> log.Fatalf("did not connect: %v", err)
>
>   }
>
>   defer conn.Close()
>
>   c := pb.NewGreeterClient(conn)
>
> When I run this  I notice that the DNS resolver is returning only 1 IP
> address instead  3 IPs hence there is nothing to load balance
>
> INFO: 2021/05/14 00:04:01 [core] parsed scheme: "dns"
>
> INFO: 2021/05/14 00:04:01 [core] ccResolverWrapper: sending update to cc:
> {[{127.0.0.2:50051   0 }]  }
>
> *INFO: 2021/05/14 00:04:01 [balancer] base.baseBalancer: got new
> ClientConn state:  {{[{127.0.0.2:50051 <http://127.0.0.2:50051>   0
> }]  } }*
>
> INFO: 2021/05/14 00:04:01 [core] Subchannel Connectivity change to
> CONNECTING
>
> INFO: 2021/05/14 00:04:01 [balancer] base.baseBalancer: handle SubConn
> state change: 0xc000119d10, CONNECTING
>
> INFO: 2021/05/14 00:04:01 [core] Subchannel picks a new address "
> 127.0.0.2:50051" to connect
>
> INFO: 2021/05/14 00:04:01 [core] Channel Connectivity change to CONNECTING
>
> INFO: 2021/05/14 00:04:01 [core] Subchannel Connectivity change to READY
>
> INFO: 2021/05/14 00:04:01 [balancer] base.baseBalancer: handle SubConn
> state change: 0xc000119d10, READY
>
> INFO: 2021/05/14 00:04:01 [roundrobin] roundrobinPicker: newPicker called
> with info: {map[0xc000119d10:{{127.0.0.2:50051   0 }}]}
>
> INFO: 2021/05/14 00:04:01 [core] Channel Connectivity change to READY
>
>
> Any pointers on why dig(or nslookup) and the gRPC DNS resolver would
> return different number of IPs for the same name?
>
>
> Thanks in advance!
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "grpc.io" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/grpc-io/jwvUuO0Ltjs/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> grpc-io+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/grpc-io/f9a7af26-522c-47dc-87e3-c05482f65c7fn%40googlegroups.com
> <https://groups.google.com/d/msgid/grpc-io/f9a7af26-522c-47dc-87e3-c05482f65c7fn%40googlegroups.com?utm_medium=email_source=footer>
> .
>

-- 
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 grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAFJ0%2B99Vgu39cubjZqZdb22e655d-cGWe9Bm4yZyYV_AABNbJg%40mail.gmail.com.


[grpc-io] Unable to get gRPC DNS resolver to return multiple IP addresses

2021-05-13 Thread 'Gaurav Poothia' via grpc.io
Hello,
I am prototyping gRPC client side round robin load balancing.
So if client wants to dial to "localhost" I want it to load balance 
requests round robin over different loopback addresses e.g. 127.0.0.1, 
127.0.0.2, 127.0.03 etc

For this experiment I configured unbound (by local DSN) to appropriately 
return multiple A records for "localhost" like so:

$ dig localhost

; <<>> DiG 9.16.1-Ubuntu <<>> localhost

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7826

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1


;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;localhost. IN  A


;; ANSWER SECTION:

localhost.  10800   IN  A   127.0.0.1

localhost.  3600IN  A   127.0.0.3

localhost.  3600IN  A   127.0.0.2

;; Query time: 0 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Thu May 13 23:51:33 UTC 2021

;; MSG SIZE  rcvd: 86


I modified the hello world client in the grpc quick start guide to use 
round robin LB and 

const (

  address = "dns:///localhost:50051"

  defaultName = "world"

)

func main() {

  resolver.SetDefaultScheme("dns")

  // Set up a connection to the server.

  conn, err := grpc.Dial(address, grpc.WithInsecure(), 
*grpc.WithBalancerName(roundrobin.Name*))

  if err != nil {

log.Fatalf("did not connect: %v", err)

  }

  defer conn.Close()

  c := pb.NewGreeterClient(conn)

When I run this  I notice that the DNS resolver is returning only 1 IP 
address instead  3 IPs hence there is nothing to load balance

INFO: 2021/05/14 00:04:01 [core] parsed scheme: "dns"

INFO: 2021/05/14 00:04:01 [core] ccResolverWrapper: sending update to cc: 
{[{127.0.0.2:50051   0 }]  }

*INFO: 2021/05/14 00:04:01 [balancer] base.baseBalancer: got new ClientConn 
state:  {{[{127.0.0.2:50051   0 }]  } }*

INFO: 2021/05/14 00:04:01 [core] Subchannel Connectivity change to 
CONNECTING

INFO: 2021/05/14 00:04:01 [balancer] base.baseBalancer: handle SubConn 
state change: 0xc000119d10, CONNECTING

INFO: 2021/05/14 00:04:01 [core] Subchannel picks a new address 
"127.0.0.2:50051" to connect

INFO: 2021/05/14 00:04:01 [core] Channel Connectivity change to CONNECTING

INFO: 2021/05/14 00:04:01 [core] Subchannel Connectivity change to READY

INFO: 2021/05/14 00:04:01 [balancer] base.baseBalancer: handle SubConn 
state change: 0xc000119d10, READY

INFO: 2021/05/14 00:04:01 [roundrobin] roundrobinPicker: newPicker called 
with info: {map[0xc000119d10:{{127.0.0.2:50051   0 }}]}

INFO: 2021/05/14 00:04:01 [core] Channel Connectivity change to READY


Any pointers on why dig(or nslookup) and the gRPC DNS resolver would return 
different number of IPs for the same name?


Thanks in advance!

-- 
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 grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/f9a7af26-522c-47dc-87e3-c05482f65c7fn%40googlegroups.com.