I'd be curious to see GC logs.

jstat -gccause <pid>

On Fri, Oct 9, 2015 at 2:16 PM Tyler Hobbs <ty...@datastax.com> wrote:

> Hmm, it seems off to me that the merge step is taking 1 to 2 seconds,
> especially when there are only ~500 cells from one sstable and the
> memtables.  Can you open a ticket (
> https://issues.apache.org/jira/browse/CASSANDRA) with your schema,
> details on your data layout, and these traces?
>
> On Fri, Oct 9, 2015 at 3:47 PM, Nazario Parsacala <dodongj...@gmail.com>
> wrote:
>
>>
>>
>> So the trace is varying a lot. And does not seem to correlate with the
>> data return from the client ? Maybe datastax java  driver related. ..? (not
>> likely).. Just checkout the results.
>>
>>
>> Below is the one that I took when from the client (java application)
>> perspective it was returning data in  about 1100 ms.
>>
>>
>>
>> *racing session: *566477c0-6ebc-11e5-9493-9131aba66d63
>>
>>  *activity*
>>
>>                                                                     |
>> *timestamp*                  | *source*        | *source_elapsed*
>>
>> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------+----------------
>>
>>
>>                                               *Execute CQL3 query* | 
>> *2015-10-09
>> 15:31:28.700000* | *172.31.17.129* |              *0*
>>  *Parsing select * from processinfometric_profile where
>> profilecontext='GENERIC' and id=‘1' and month='Oct' and day='' and hour=''
>> and minute=''; [SharedPool-Worker-1]* | *2015-10-09 15:31:28.701000* |
>> *172.31.17.129* |            *101*
>>
>>
>>                       *Preparing statement [SharedPool-Worker-1]* | 
>> *2015-10-09
>> 15:31:28.701000* | *172.31.17.129* |            *334*
>>
>>                                                         *Executing
>> single-partition query on processinfometric_profile [SharedPool-Worker-3]*
>>  | *2015-10-09 15:31:28.701000* | *172.31.17.129* |            *692*
>>
>>
>>               *Acquiring sstable references [SharedPool-Worker-3]* | 
>> *2015-10-09
>> 15:31:28.701000* | *172.31.17.129* |            *713*
>>
>>
>>               *Merging memtable tombstones [SharedPool-Worker-3]* | 
>> *2015-10-09
>> 15:31:28.701000* | *172.31.17.129* |            *726*
>>
>>
>>             *Key cache hit for sstable 209 [SharedPool-Worker-3]* | 
>> *2015-10-09
>> 15:31:28.704000* | *172.31.17.129* |           *3143*
>>
>>                                                                           
>> *Seeking
>> to partition beginning in data file [SharedPool-Worker-3]* | *2015-10-09
>> 15:31:28.704000* | *172.31.17.129* |           *3169*
>>
>>
>>             *Key cache hit for sstable 208 [SharedPool-Worker-3]* | 
>> *2015-10-09
>> 15:31:28.704000* | *172.31.17.129* |           *3691*
>>
>>                                                                           
>> *Seeking
>> to partition beginning in data file [SharedPool-Worker-3]* | *2015-10-09
>> 15:31:28.704000* | *172.31.17.129* |           *3713*
>>
>>                                             *Skipped 0/2
>> non-slice-intersecting sstables, included 0 due to tombstones
>> [SharedPool-Worker-3]* | *2015-10-09 15:31:28.704000* | *172.31.17.129* |
>>         *3807*
>>
>>                                                                             
>> *Merging
>> data from memtables and 2 sstables [SharedPool-Worker-3]* | *2015-10-09
>> 15:31:28.704000* | *172.31.17.129* |           *3818*
>>
>>
>>       *Read 462 live and 0 tombstone cells [SharedPool-Worker-3]* | 
>> *2015-10-09
>> 15:31:29.611000* | *172.31.17.129* |         *910723*
>>
>>
>>                                                 *Request complete* | 
>> *2015-10-09
>> 15:31:29.649251* | *172.31.17.129* |         *949251*
>>
>>
>>
>>
>> Below when this is around 1400 ms . But the trace data seems to look
>> faster ..?
>>
>>
>>
>> *racing session: *7c591550-6ebf-11e5-9493-9131aba66d63
>>
>>  *activity*
>>
>>                                                                       |
>> *timestamp*                  | *source*        | *source_elapsed*
>>
>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------+----------------
>>
>>
>>                                                 *Execute CQL3 query* | 
>> *2015-10-09
>> 15:54:00.869000* | *172.31.17.129* |              *0*
>>  *Parsing select * from processinfometric_profile where
>> profilecontext='GENERIC' and id=‘1' and month='Oct' and day='' and hour=''
>> and minute=''; [SharedPool-Worker-133]* | *2015-10-09 15:54:00.869000* |
>> *172.31.17.129* |            *122*
>>
>>
>>                       *Preparing statement [SharedPool-Worker-133]* | 
>> *2015-10-09
>> 15:54:00.869000* | *172.31.17.129* |            *265*
>>
>>                                                           *Executing
>> single-partition query on processinfometric_profile [SharedPool-Worker-9]*
>> | *2015-10-09 15:54:00.870000* | *172.31.17.129* |            *673*
>>
>>
>>                 *Acquiring sstable references [SharedPool-Worker-9]* | 
>> *2015-10-09
>> 15:54:00.870000* | *172.31.17.129* |            *695*
>>
>>
>>                 *Merging memtable tombstones [SharedPool-Worker-9]* | 
>> *2015-10-09
>> 15:54:00.870000* | *172.31.17.129* |            *709*
>>
>>
>>               *Key cache hit for sstable 242 [SharedPool-Worker-9]* | 
>> *2015-10-09
>> 15:54:00.872000* | *172.31.17.129* |           *3134*
>>
>>                                                                             
>> *Seeking
>> to partition beginning in data file [SharedPool-Worker-9]* | *2015-10-09
>> 15:54:00.872000* | *172.31.17.129* |           *3155*
>>
>>                                               *Skipped 0/1
>> non-slice-intersecting sstables, included 0 due to tombstones
>> [SharedPool-Worker-9]* | *2015-10-09 15:54:00.872000* | *172.31.17.129*
>> |           *3259*
>>
>>
>>   *Merging data from memtables and 1 sstables [SharedPool-Worker-9]* | 
>> *2015-10-09
>> 15:54:00.872000* | *172.31.17.129* |           *3270*
>>
>>
>>         *Read 462 live and 0 tombstone cells [SharedPool-Worker-9]* | 
>> *2015-10-09
>> 15:54:02.070000* | *172.31.17.129* |         *201640*
>>
>>
>>                                                   *Request complete* | 
>> *2015-10-09
>> 15:54:02.111294* | *172.31.17.129* |         *242294*
>>
>>
>>
>>
>> This is when it was 1600 ms.
>>
>> *Tracing session: *9c0ea900-6ec4-11e5-9493-9131aba66d63
>>
>>  *activity*
>>
>>                                                                       |
>> *timestamp*                  | *source*        | *source_elapsed*
>>
>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------+----------------
>>
>>
>>                                                 *Execute CQL3 query* | 
>> *2015-10-09
>> 16:30:41.552000* | *172.31.17.129* |              *0*
>>  *Parsing select * from processinfometric_profile where
>> profilecontext='GENERIC' and id=‘1' and month='Oct' and day='' and hour=''
>> and minute=''; [SharedPool-Worker-149]* | *2015-10-09 16:30:41.552000* |
>> *172.31.17.129* |             *99*
>>
>>
>>                       *Preparing statement [SharedPool-Worker-149]* | 
>> *2015-10-09
>> 16:30:41.552000* | *172.31.17.129* |            *215*
>>
>>                                                         *Executing
>> single-partition query on processinfometric_profile [SharedPool-Worker-164]*
>> | *2015-10-09 16:30:41.552000* | *172.31.17.129* |            *507*
>>
>>
>>               *Acquiring sstable references [SharedPool-Worker-164]* | 
>> *2015-10-09
>> 16:30:41.552000* | *172.31.17.129* |            *533*
>>
>>
>>               *Merging memtable tombstones [SharedPool-Worker-164]* | 
>> *2015-10-09
>> 16:30:41.552000* | *172.31.17.129* |            *551*
>>
>>
>>             *Key cache hit for sstable 302 [SharedPool-Worker-164]* | 
>> *2015-10-09
>> 16:30:41.556000* | *172.31.17.129* |           *3875*
>>
>>                                                                           
>> *Seeking
>> to partition beginning in data file [SharedPool-Worker-164]* | *2015-10-09
>> 16:30:41.556000* | *172.31.17.129* |           *3902*
>>
>>                                             *Skipped 0/1
>> non-slice-intersecting sstables, included 0 due to tombstones
>> [SharedPool-Worker-164]* | *2015-10-09 16:30:41.556000* | *172.31.17.129*
>> |           *4050*
>>
>>                                                                             
>> *Merging
>> data from memtables and 1 sstables [SharedPool-Worker-164]* | *2015-10-09
>> 16:30:41.556000* | *172.31.17.129* |           *4068*
>>
>>
>>       *Read 468 live and 0 tombstone cells [SharedPool-Worker-164]* | 
>> *2015-10-09
>> 16:30:43.269000* | *172.31.17.129* |         *717277*
>>
>>
>>                                                   *Request complete* | 
>> *2015-10-09
>> 16:30:43.307559* | *172.31.17.129* |         *755559*
>>
>>
>>
>>
>> The last one is now at 2300 ms.
>>
>>
>> *racing session: *7d89a1e0-6ec6-11e5-9493-9131aba66d63
>>
>>  *activity*
>>
>>                                                                     |
>> *timestamp*                  | *source*        | *source_elapsed*
>>
>> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------+----------------
>>
>>
>>                                               *Execute CQL3 query* | 
>> *2015-10-09
>> 16:44:09.342000* | *172.31.17.129* |              *0*
>>  *Parsing select * from processinfometric_profile where
>> profilecontext='GENERIC' and id=‘1' and month='Oct' and day='' and hour=''
>> and minute=''; [SharedPool-Worker-1]* | *2015-10-09 16:44:09.342000* |
>> *172.31.17.129* |             *87*
>>
>>
>>                       *Preparing statement [SharedPool-Worker-1]* | 
>> *2015-10-09
>> 16:44:09.342000* | *172.31.17.129* |            *277*
>>
>>                                                         *Executing
>> single-partition query on processinfometric_profile [SharedPool-Worker-2]*
>> | *2015-10-09 16:44:09.343000* | *172.31.17.129* |            *456*
>>
>>
>>               *Acquiring sstable references [SharedPool-Worker-2]* | 
>> *2015-10-09
>> 16:44:09.343000* | *172.31.17.129* |            *473*
>>
>>
>>               *Merging memtable tombstones [SharedPool-Worker-2]* | 
>> *2015-10-09
>> 16:44:09.343000* | *172.31.17.129* |            *485*
>>
>>
>>             *Key cache hit for sstable 328 [SharedPool-Worker-2]* | 
>> *2015-10-09
>> 16:44:09.345000* | *172.31.17.129* |           *2851*
>>
>>                                                                           
>> *Seeking
>> to partition beginning in data file [SharedPool-Worker-2]* | *2015-10-09
>> 16:44:09.345000* | *172.31.17.129* |           *2869*
>>
>>                                             *Skipped 0/1
>> non-slice-intersecting sstables, included 0 due to tombstones
>> [SharedPool-Worker-2]* | *2015-10-09 16:44:09.345000* | *172.31.17.129*
>> |           *3005*
>>
>>                                                                             
>> *Merging
>> data from memtables and 1 sstables [SharedPool-Worker-2]* | *2015-10-09
>> 16:44:09.345001* | *172.31.17.129* |           *3017*
>>
>>
>>       *Read 468 live and 0 tombstone cells [SharedPool-Worker-2]* | 
>> *2015-10-09
>> 16:44:11.329000* | *172.31.17.129* |         *987011*
>>
>>
>>                                                 *Request complete* | 
>> *2015-10-09
>> 16:44:11.388637* | *172.31.17.129* |          *46637*
>>
>>
>>
>>
>> On Oct 9, 2015, at 2:48 PM, Nazario Parsacala <dodongj...@gmail.com>
>> wrote:
>>
>> Compaction did not help too.
>>
>>
>>
>> On Oct 9, 2015, at 1:01 PM, Nazario Parsacala <dodongj...@gmail.com>
>> wrote:
>>
>> So I upgraded to 2.2.2 and change the compaction strategy from 
>> DateTieredCompactionStrategy
>> to LeveledCompactionStrategy. But the problem still exists.
>> At the start we were getting responses around 80 to a couple of hundred
>> of ms. But after 1.5 hours of running, it is now hitting 1447 ms. I think
>> this will degrade some more as time progresses. I will let this run a
>> couple of hours more  and will also try to force compaction.
>>
>> BTW, with 2.2.2 I am getting the following exceptions. Not sure if there
>> is already a bug report on this.
>>
>> Caused by: java.io.IOException: Seek position 182054 is not within mmap
>> segment (seg offs: 0, length: 182054)
>> at
>> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:405)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.RowIndexEntry$Serializer.skipPromotedIndex(RowIndexEntry.java:164)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.RowIndexEntry$Serializer.skip(RowIndexEntry.java:155)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:244)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> ... 17 common frames omitted
>> WARN  [SharedPool-Worker-42] 2015-10-09 12:54:57,221
>> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread
>> Thread[SharedPool-Worker-42,5,main]: {}
>> java.lang.RuntimeException:
>> org.apache.cassandra.io.sstable.CorruptSSTableException:
>> java.io.IOException: Seek position 182054 is not within mmap segment (seg
>> offs: 0, length: 182054)
>> at
>> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>> ~[na:1.8.0_60]
>> at
>> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105)
>> [apache-cassandra-2.2.2.jar:2.2.2]
>> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
>> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException:
>> java.io.IOException: Seek position 182054 is not within mmap segment (seg
>> offs: 0, length: 182054)
>> at
>> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.<init>(SSTableSliceIterator.java:42)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> ... 4 common frames omitted
>> Caused by: java.io.IOException: Seek position 182054 is not within mmap
>> segment (seg offs: 0, length: 182054)
>> at
>> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:405)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.RowIndexEntry$Serializer.skipPromotedIndex(RowIndexEntry.java:164)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.db.RowIndexEntry$Serializer.skip(RowIndexEntry.java:155)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>> at
>> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:244)
>> ~[apache-cassandra-2.2.2.jar:2.2.2]
>>
>>
>>
>>
>> On Oct 9, 2015, at 9:26 AM, Carlos Alonso <i...@mrcalonso.com> wrote:
>>
>> Yeah, I was about to suggest the compaction strategy too. Leveled
>> compaction sounds like a better fit when records are being updated
>>
>> Carlos Alonso | Software Engineer | @calonso
>> <https://twitter.com/calonso>
>>
>> On 8 October 2015 at 22:35, Tyler Hobbs <ty...@datastax.com> wrote:
>>
>>> Upgrade to 2.2.2.  Your sstables are probably not compacting due to
>>> CASSANDRA-10270 <https://issues.apache.org/jira/browse/CASSANDRA-10270>,
>>> which was fixed in 2.2.2.
>>>
>>> Additionally, you may want to look into using leveled compaction (
>>> http://www.datastax.com/dev/blog/when-to-use-leveled-compaction).
>>>
>>> On Thu, Oct 8, 2015 at 4:27 PM, Nazario Parsacala <dodongj...@gmail.com>
>>> wrote:
>>>
>>>>
>>>> Hi,
>>>>
>>>> so we are developing a system that computes profile of things that it
>>>> observes. The observation comes in form of events. Each thing that it
>>>> observe has an id and each thing has a set of subthings in it which has
>>>> measurement of some kind. Roughly there are about 500 subthings within each
>>>> thing. We receive events containing measurements of these 500 subthings
>>>> every 10 seconds or so.
>>>>
>>>> So as we receive events, we  read the old profile value, calculate the
>>>> new profile based on the new value and save it back. We use the following
>>>> schema to hold the profile.
>>>>
>>>> CREATE TABLE myprofile (
>>>>     id text,
>>>>     month text,
>>>>     day text,
>>>>     hour text,
>>>>     subthings text,
>>>>     lastvalue double,
>>>>     count int,
>>>>     stddev double,
>>>>  PRIMARY KEY ((id, month, day, hour), subthings)
>>>> ) WITH CLUSTERING ORDER BY (subthings ASC) );
>>>>
>>>>
>>>> This profile will then be use for certain analytics that can use in the
>>>> context of the ‘thing’ or in the context of specific thing and subthing.
>>>>
>>>> A profile can be defined as monthly, daily, hourly. So in case of
>>>> monthly the month will be set to the current month (i.e. ‘Oct’) and the day
>>>> and hour will be set to empty ‘’ string.
>>>>
>>>>
>>>> The problem that we have observed is that over time (actually in just a
>>>> matter of hours) we will see a huge degradation of query response  for the
>>>> monthly profile. At the start it will be respinding in 10-100 ms and after
>>>> a couple of hours it will go to 2000-3000 ms . If you leave it for a couple
>>>> of days you will start experiencing readtimeouts . The query is basically
>>>> just :
>>>>
>>>> select * from myprofile where id=‘1’ and month=‘Oct’ and day=‘’ and
>>>> hour=‘'
>>>>
>>>> This will have only about 500 rows or so.
>>>>
>>>>
>>>> I believe that this is cause by the fact there are multiple updates
>>>> done to this specific partition. So what do we think can be done to resolve
>>>> this ?
>>>>
>>>> BTW, I am using Cassandra 2.2.1 . And since this is a test , this is
>>>> just running on a single node.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Tyler Hobbs
>>> DataStax <http://datastax.com/>
>>>
>>
>>
>>
>>
>>
>
>
> --
> Tyler Hobbs
> DataStax <http://datastax.com/>
>

Reply via email to