cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Laing, Michael" <michael.la...@nytimes.com>
Subject Re: High read latency
Date Sat, 26 Sep 2015 13:37:21 GMT
Maybe compaction not keeping up - since you are hitting so many sstables?

Read heavy... are you using LCS?

Plenty of resources... tune to increase memtable size?

On Sat, Sep 26, 2015 at 9:19 AM, Eric Stevens <mightye@gmail.com> wrote:

> Since you have most of your reads hitting 5-8 SSTables, it's probably
> related to that increasing your latency.  That makes this look like your
> write workload is either overwrite-heavy or append-heavy.  Data for a
> single partition key is being written to repeatedly over long time periods,
> and this will definitely impact read performance.
>
> You can enable tracing in cqlsh and run your select to see where the time
> is going.
>
> On Fri, Sep 25, 2015 at 3:07 PM, Jaydeep Chovatia <
> chovatia.jaydeep@gmail.com> wrote:
>
>> Please find histogram attached.
>>
>> On Fri, Sep 25, 2015 at 12:20 PM, Ryan Svihla <rs@foundev.pro> wrote:
>>
>>> if everything is in ram there could be a number of issues unrelated to
>>> Cassandra and there could be hardware limitations or contention problems.
>>> Otherwise cell count can really deeply impact reads, all ram or not, and
>>> some of this is because of the nature of GC and some of it is the age of
>>> the sstable format (which is due to be revamped in 3.0). Also partition
>>> size can matter just because of physics, if one of those is a 1gb
>>> partition, the network interface can only move that back across the wire so
>>> quickly not to mention the GC issues you’d run into.
>>>
>>> Anyway this is why I asked for the histograms, I wanted to get cell
>>> count and partition size. I’ve seen otherwise very stout hardware get slow
>>> on reads of large results because either a bottleneck was hit somewhere, or
>>> the CPU got slammed with GC, or other processes running on the machine were
>>> contending with Cassandra.
>>>
>>>
>>> On Sep 25, 2015, at 12:45 PM, Jaydeep Chovatia <
>>> chovatia.jaydeep@gmail.com> wrote:
>>>
>>> I understand that but everything is in RAM (my data dir is tmpfs) and my
>>> row is not that wide approx. less than 5MB in size. So my question is if
>>> everything is in RAM then why does it take 43ms latency?
>>>
>>> On Fri, Sep 25, 2015 at 7:54 AM, Ryan Svihla <rs@foundev.pro> wrote:
>>>
>>>> if you run:
>>>>
>>>> nodetool cfhistograms <keyspace> <table name>
>>>>
>>>> On the given table and that will tell you how wide your rows are
>>>> getting. At some point you can get wide enough rows that just the physics
>>>> of retrieving them all take some time.
>>>>
>>>>
>>>> On Sep 25, 2015, at 9:21 AM, sai krishnam raju potturi <
>>>> pskraju88@gmail.com> wrote:
>>>>
>>>> Jaydeep; since your primary key involves a clustering column, you may
>>>> be having pretty wide rows. The read would be sequential. The latency could
>>>> be acceptable, if the read were to involve really wide rows.
>>>>
>>>> If your primary key was like ((a,b)) without the clustering column,
>>>> it's like reading a key value pair, and 40ms latency may have been a
>>>> concern.
>>>>
>>>> Bottom Line : The latency depends on how wide the row is.
>>>>
>>>> On Tue, Sep 22, 2015 at 1:27 PM, sai krishnam raju potturi <
>>>> pskraju88@gmail.com> wrote:
>>>>
>>>>> thanks for the information. Posting the query too would be of help.
>>>>>
>>>>> On Tue, Sep 22, 2015 at 11:56 AM, Jaydeep Chovatia <
>>>>> chovatia.jaydeep@gmail.com> wrote:
>>>>>
>>>>>> Please find required details here:
>>>>>>
>>>>>> -          Number of req/s
>>>>>>
>>>>>> 2k reads/s
>>>>>>
>>>>>> -          Schema details
>>>>>>
>>>>>> create table test {
>>>>>>
>>>>>> a timeuuid,
>>>>>>
>>>>>> b bigint,
>>>>>>
>>>>>> c int,
>>>>>>
>>>>>> d int static,
>>>>>>
>>>>>> e int static,
>>>>>>
>>>>>> f int static,
>>>>>>
>>>>>> g int static,
>>>>>>
>>>>>> h int,
>>>>>>
>>>>>> i text,
>>>>>>
>>>>>> j text,
>>>>>>
>>>>>> k text,
>>>>>>
>>>>>> l text,
>>>>>>
>>>>>> m set<text>
>>>>>>
>>>>>> n bigint
>>>>>>
>>>>>> o bigint
>>>>>>
>>>>>> p bigint
>>>>>>
>>>>>> q bigint
>>>>>>
>>>>>> r int
>>>>>>
>>>>>> s text
>>>>>>
>>>>>> t bigint
>>>>>>
>>>>>> u text
>>>>>>
>>>>>> v text
>>>>>>
>>>>>> w text
>>>>>>
>>>>>> x bigint
>>>>>>
>>>>>> y bigint
>>>>>>
>>>>>> z bigint,
>>>>>>
>>>>>> primary key ((a, b), c)
>>>>>>
>>>>>> };
>>>>>>
>>>>>> -          JVM settings about the heap
>>>>>>
>>>>>> Default settings
>>>>>>
>>>>>> -          Execution time of the GC
>>>>>>
>>>>>> Avg. 400ms. I do not see long pauses of GC anywhere in the log file.
>>>>>>
>>>>>> On Tue, Sep 22, 2015 at 5:34 AM, Leleu Eric <Eric.Leleu@worldline.com
>>>>>> > wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Before speaking about tuning, can you provide some additional
>>>>>>> information ?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -          Number of req/s
>>>>>>>
>>>>>>> -          Schema details
>>>>>>>
>>>>>>> -          JVM settings about the heap
>>>>>>>
>>>>>>> -          Execution time of the GC
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 43ms for a read latency may be acceptable according to the number
of
>>>>>>> request per second.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Eric
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *De :* Jaydeep Chovatia [mailto:chovatia.jaydeep@gmail.com]
>>>>>>> *Envoyé :* mardi 22 septembre 2015 00:07
>>>>>>> *À :* user@cassandra.apache.org
>>>>>>> *Objet :* High read latency
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> My application issues more read requests than write, I do see
that
>>>>>>> under load cfstats for one of the table is quite high around
43ms
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                 Local read count: 114479357
>>>>>>>
>>>>>>>                 Local read latency: 43.442 ms
>>>>>>>
>>>>>>>                 Local write count: 22288868
>>>>>>>
>>>>>>>                 Local write latency: 0.609 ms
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Here is my node configuration:
>>>>>>>
>>>>>>> RF=3, Read/Write with QUORUM, 64GB RAM, 48 CPU core. I have only
5
>>>>>>> GB of data on each node (and for experiment purpose I stored
data in tmpfs)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I've tried increasing concurrent_read count upto 512 but no help
in
>>>>>>> read latency. CPU/Memory/IO looks fine on system.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Any idea what should I tune?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Jaydeep
>>>>>>>
>>>>>>> ------------------------------
>>>>>>>
>>>>>>> Ce message et les pièces jointes sont confidentiels et réservés
à
>>>>>>> l'usage exclusif de ses destinataires. Il peut également être
protégé par
>>>>>>> le secret professionnel. Si vous recevez ce message par erreur,
merci d'en
>>>>>>> avertir immédiatement l'expéditeur et de le détruire. L'intégrité
du
>>>>>>> message ne pouvant être assurée sur Internet, la responsabilité
de
>>>>>>> Worldline ne pourra être recherchée quant au contenu de ce
message. Bien
>>>>>>> que les meilleurs efforts soient faits pour maintenir cette transmission
>>>>>>> exempte de tout virus, l'expéditeur ne donne aucune garantie
à cet égard et
>>>>>>> sa responsabilité ne saurait être recherchée pour tout dommage
résultant
>>>>>>> d'un virus transmis.
>>>>>>>
>>>>>>> This e-mail and the documents attached are confidential and intended
>>>>>>> solely for the addressee; it may also be privileged. If you receive
this
>>>>>>> e-mail in error, please notify the sender immediately and destroy
it. As
>>>>>>> its integrity cannot be secured on the Internet, the Worldline
liability
>>>>>>> cannot be triggered for the message content. Although the sender
endeavours
>>>>>>> to maintain a computer virus-free network, the sender does not
warrant that
>>>>>>> this transmission is virus-free and will not be liable for any
damages
>>>>>>> resulting from any virus transmitted.
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> Regards,
>>>>
>>>> Ryan Svihla
>>>>
>>>>
>>>
>>>
>>
>

Mime
View raw message