How about the client side socket limits? Cassandra client side maximum connection per host and read consistency level?
~Shrikar On Thu, Apr 3, 2014 at 12:20 AM, Apoorva Gaurav <apoorva.gau...@myntra.com>wrote: > At the client side we are getting a latency of ~350ms, we are using > datastax driver 2.0.0 and have kept the fetch size as 500. And these are > coming while reading rows having ~200 columns. > > > On Thu, Apr 3, 2014 at 12:45 PM, Shrikar archak <shrika...@gmail.com>wrote: > >> Hi Apoorva, >> As per the cfhistogram there are some rows which have more than 75k >> columns and around 150k reads hit 2 SStables. >> >> Are you sure that you are seeing more than 500ms latency? The >> cfhistogram should the worst read performance was around 51ms >> which looks reasonable with many reads hitting 2 sstables. >> >> Thanks, >> Shrikar >> >> >> On Wed, Apr 2, 2014 at 11:30 PM, Apoorva Gaurav < >> apoorva.gau...@myntra.com> wrote: >> >>> Hello Shrikar, >>> >>> We are still facing read latency issue, here is the histogram >>> http://pastebin.com/yEvMuHYh >>> >>> >>> On Sat, Mar 29, 2014 at 8:11 AM, Apoorva Gaurav < >>> apoorva.gau...@myntra.com> wrote: >>> >>>> Hello Shrikar, >>>> >>>> Yes primary key is (studentID, subjectID). I had dropped the test >>>> table, recreating and populating it post which will share the cfhistogram. >>>> In such case is there any practical limit on the rows I should fetch, for >>>> e.g. >>>> should I do >>>> select * form marks_table where studentID = ? limit 500; >>>> instead of doing >>>> select * form marks_table where studentID = ?; >>>> >>>> >>>> On Sat, Mar 29, 2014 at 5:20 AM, Shrikar archak <shrika...@gmail.com>wrote: >>>> >>>>> Hi Apoorva, >>>>> >>>>> I assume this is the table with studentId and subjectId as primary >>>>> keys and not other like like marks in that. >>>>> >>>>> create table marks_table(studentId int, subjectId int, marks int, >>>>> PRIMARY KEY(studentId,subjectId)); >>>>> >>>>> Also could you give the cfhistogram stats? >>>>> >>>>> nodetool cfhistograms <your keyspace> marks_table; >>>>> >>>>> >>>>> >>>>> Thanks, >>>>> Shrikar >>>>> >>>>> >>>>> On Fri, Mar 28, 2014 at 3:53 PM, Apoorva Gaurav < >>>>> apoorva.gau...@myntra.com> wrote: >>>>> >>>>>> Hello All, >>>>>> >>>>>> We've a schema which can be modeled as (studentID, subjectID, marks) >>>>>> where combination of studentID and subjectID is unique. Number of >>>>>> studentID >>>>>> can go up to 100 million and for each studentID we can have up to 10k >>>>>> subjectIDs. >>>>>> >>>>>> We are using apahce cassandra 2.0.4 and datastax java driver >>>>>> 1.0.4. We are using a four node cluster, each having 24 cores and 32GB >>>>>> memory. I'm sure that the machines are not underperformant as on same >>>>>> test >>>>>> bed we've consistently received <5ms response times for ~1b documents >>>>>> when >>>>>> queried via primary key. >>>>>> >>>>>> I've tried three approaches, all of which result in significant >>>>>> deterioration (>500 ms response time) in read query performance once >>>>>> number >>>>>> of subjectIDs goes past ~100 for a studentID. Approaches are :- >>>>>> >>>>>> 1. model as (studentID int PRIMARY KEY, subjectID_marks_map map<int, >>>>>> int>) and query by subjectID >>>>>> >>>>>> 2. model as (studentID int, subjectID int, marks int, PRIMARY >>>>>> KEY(studentID, subjectID) and query as select * from marks_table where >>>>>> studentID = ? >>>>>> >>>>>> 3. model as (studentID int, subjectID int, marks int, PRIMARY >>>>>> KEY(studentID, subjectID) and query as select * from marks_table where >>>>>> studentID = ? and subjectID in (?, ?, ?....?) number of subjectIDs in >>>>>> query being ~1K. >>>>>> >>>>>> What can be the bottlenecks. Is it better if we model as (studentID >>>>>> int, subjct_marks_json text) and query by studentID. >>>>>> >>>>>> -- >>>>>> Thanks & Regards, >>>>>> Apoorva >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Thanks & Regards, >>>> Apoorva >>>> >>> >>> >>> >>> -- >>> Thanks & Regards, >>> Apoorva >>> >> >> > > > -- > Thanks & Regards, > Apoorva >