zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ibrahim <i.s.el-san...@newcastle.ac.uk>
Subject RE: Latency in asynchronous mode
Date Thu, 23 Oct 2014 21:37:13 GMT
Thank you Henry,



Ok, this makes sense.  So, we can see that in sync mode the latency will measure for just
one operation at the time (per fsync), because  the transaction log system will  log  (fsync)
one request at the time. Whereas, in Asyc mode, the latency will measure several operations
per fsync, meaning that it is not possible to measure the latency per operation because the
transaction log will (fsync) batch multiple requests in one fsync.



Can you correct me if the above is not true?



*What does ZK latency measure?  Does it measure the delta between the arrival of the request
and the completion of the request?



I have two  different ways to measure the latency which are as following:



1-      I use four word command which is stat, it gives me like:

                Five clients: Latency min/avg/max: 235/366/515

Ten clients:  Latency min/avg/max: 252/368/505



2-      I use my own code which is

submitTimeWrite = (double)System.nanoTime();

_client.create().inBackground(new Double(time)).forPath(_path + "/" + _count, data);

endTimeWrite = (double)System.nanoTime();
       latencyInfos.add(""+((endTimeWrite - submitTimeWrite)/1000000));

However, the result using the above code is completed different compared to stat command result.
The following sample result generates using the above code:
0.004395
0.004297
0.004256
0.004308
0.004353
0.004293
0.004309
0.004421
0.004325

Here there is a question arises, which is the right and logical result I should take into
account?
It seems that the above result measures latency in Async mode request by request, whereas
the result using the stat command measures batch multiple requests.



Thank you a lot



Ibrahim


From: Henry May [via zookeeper-user] [mailto:ml-node+s578899n7580451h5@n2.nabble.com]
Sent: Thursday, October 23, 2014 04:44 م
To: Ibrahim El-sanosi (PGR)
Subject: RE: Latency in asynchronous mode

I'm a ZK newbie, but I have a hypothesis to test.  At least on my
synchronous standalone ZK server I've been able to correlate ZK latency to
disk write response time.  I have a perl script that harvests the ZK stats
on regular intervals.  At the beginning of each interval it does srst so I
truly get the max latency on that interval.  Whenever I find an interval
with long max latency, I can invariably find an egregiously long disk IO
operation in a block IO trace.

What does ZK latency measure?  Does it measure the delta between the
arrival of the request and the completion of the request?  The block IO
traces are showing a single thread in the ZK process doing all of the
writes synchronously.  This thread spends about 90% of it's time waiting
for disk IO.  If the ZK latency timer starts ticking as soon as the
request arrives from the client, then that incoming request has to wait
for all outstanding requests ahead of it to complete, and that time is
accumulated in latency.  Effectively, latency includes disk queueing time
as well as service time.  Does that make any sense?

(Maybe this is exactly what Alexander is saying, but I had composed this
note by the time I saw his post and had to chime in.)

Henry May
IBM InfoSphere Streams Performance
[hidden email]</user/SendEmail.jtp?type=node&node=7580451&i=0>
720-342-8873
Tie: 963-8873




From:   Alexander Shraer <[hidden email]</user/SendEmail.jtp?type=node&node=7580451&i=1>>
To:     [hidden email]</user/SendEmail.jtp?type=node&node=7580451&i=2>
Date:   10/23/2014 10:12 AM
Subject:        RE: Latency in asynchronous mode



I still stay with my previous explanation :) in async mode each client
invokes many ops concurrently resulting in a longer queue at the leader
On Oct 23, 2014 3:32 PM, "Ibrahim El-sanosi (PGR)" <
[hidden email]</user/SendEmail.jtp?type=node&node=7580451&i=3>> wrote:

> Thank you Alexander for  replay,
>
> In fact, I use more than one clients (one, two, three, four .......,
ten),
> in both modes (synchronous  and asynchronous). So, I found the latency
in
> Asynchronous Mode is much higher than latency in synchronous   mode. I
am
> really wondering why I am getting such a big different.
>
> In synchronous  mode, the latency vary between min/avr/max=5/20/50 and
> min/avr/max=11/50/120, but it is never reach min/avg/max: 1/371/627 as
in

> asynchronous  mode.
>
> Any thought?
>
> Thank you
>
> -----Original Message-----
> From: Alexander Shraer [mailto:[hidden email]</user/SendEmail.jtp?type=node&node=7580451&i=4>]
> Sent: Thursday, October 23, 2014 02:14 م
> To: [hidden email]</user/SendEmail.jtp?type=node&node=7580451&i=5>
> Subject: Re: Latency in asynchronous mode
>
> Maybe due to queueing at the leader in asynchronous mode - if in your
> experiment you have one client in sync mode the leader has just one op
in

> the queue at a time On Oct 23, 2014 1:57 PM, "Ibrahim" <
> [hidden email]</user/SendEmail.jtp?type=node&node=7580451&i=6>> wrote:
>
> > Hi folks,
> >
> > I am testing ZooKeeper latency in Asynchronous mode. I am sending
> > update
> > (write) requests to Zookeeper cluster that consists of 5 physical
> > Zookeeper.
> >
> > So, when I run the stat command I get high latency like:
> > Latency min/avg/max: 7/339/392
> > Latency min/avg/max: 1/371/627
> > Latency min/avg/max: 1/371/627
> > Latency min/avg/max: 1/364/674
> > I guess such high latency correspond to fsync (batch requests). But I
> > wish if someone could help me and explain this behaviour.
> >
> > However, testing Zookeeper using Synchronous mode, it gives me
> > reasonable result like:
> > Latency min/avg/max: 6/24/55
> > Latency min/avg/max: 7/22/61
> > Latency min/avg/max: 7/30/65
> >
> > Note that the latency measures in milliseconds.
> >
> > I look forward to hearing from you.
> >
> > Ibrahim
> >
> >
> >
> >
> >
> >
> >
> > --
> > View this message in context:
> > http://zookeeper-user.578899.n2.nabble.com/Latency-in-asynchronous-mod
> > e-tp7580446.html Sent from the zookeeper-user mailing list archive at
> > Nabble.com.
> >
>



________________________________
If you reply to this email, your message will be added to the discussion below:
http://zookeeper-user.578899.n2.nabble.com/Latency-in-asynchronous-mode-tp7580446p7580451.html
To unsubscribe from Latency in asynchronous mode, click here<http://zookeeper-user.578899.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=7580446&code=aS5zLmVsLXNhbm9zaUBuZXdjYXN0bGUuYWMudWt8NzU4MDQ0Nnw1NTE4MjI0Njk=>.
NAML<http://zookeeper-user.578899.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>




--
View this message in context: http://zookeeper-user.578899.n2.nabble.com/Latency-in-asynchronous-mode-tp7580446p7580457.html
Sent from the zookeeper-user mailing list archive at Nabble.com.
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message