1) It will be great if someone can confirm that there is no limit 2) so what is optimal limit in terms of data size?
Finally, Thanks a lot for pointing out all the operational issues! On Sat, Oct 15, 2016 at 2:39 AM, DuyHai Doan <doanduy...@gmail.com> wrote: > "But is there still 2B columns limit on the Cassandra code?" > > --> I remember some one the committer saying that this 2B columns > limitation comes from the Thrift era where you're limited to max 2B > columns to be returned to the client for each request. It also applies to > the max size of each "page" of data > > Since the introduction of the binary protocol and the paging feature, this > limitation does not make sense anymore. > > By the way, if your partition is too wide, you'll face other operational > issues way before reaching the 2B columns limit: > > - compaction taking looooong time --> heap pressure --> long GC pauses --> > nodes flapping > - repair & over-streaming, repair session failure in the middle that > forces you to re-send the whole big partition --> the receiving node has a > bunch of duplicate data --> pressure on compaction > - bootstrapping of new nodes --> failure to stream a partition in the > middle will force to re-send the whole partition from the beginning again --> > the receiving node has a bunch of duplicate data --> pressure on compaction > > > > On Sat, Oct 15, 2016 at 9:15 AM, Kant Kodali <k...@peernova.com> wrote: > >> compacting 10 sstables each of them have a 15GB partition in what >> duration? >> >> On Fri, Oct 14, 2016 at 11:45 PM, Matope Ono <matope....@gmail.com> >> wrote: >> >>> Please forget the part in my sentence. >>> For more correctly, maybe I should have said like "He could compact 10 >>> sstables each of them have a 15GB partition". >>> What I wanted to say is we can store much more rows(and columns) in a >>> partition than before 3.6. >>> >>> 2016-10-15 15:34 GMT+09:00 Kant Kodali <k...@peernova.com>: >>> >>>> "Robert said he could treat safely 10 15GB partitions at his >>>> presentation" This sounds like there is there is a row limit too not >>>> only columns?? >>>> >>>> If I am reading this correctly 10 15GB partitions means 10 partitions >>>> (like 10 row keys, thats too small) with each partition of size 15GB. >>>> (thats like 15 million columns where each column can have a data of size >>>> 1KB). >>>> >>>> On Fri, Oct 14, 2016 at 11:30 PM, Kant Kodali <k...@peernova.com> >>>> wrote: >>>> >>>>> "Robert said he could treat safely 10 15GB partitions at his >>>>> presentation" This sounds like there is there is a row limit too not >>>>> only columns?? >>>>> >>>>> If I am reading this correctly 10 15GB partitions means 10 partitions >>>>> (like 10 row keys, thats too small) with each partition of size 15GB. >>>>> (thats like 10 million columns where each column can have a data of size >>>>> 1KB). >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Oct 14, 2016 at 9:54 PM, Matope Ono <matope....@gmail.com> >>>>> wrote: >>>>> >>>>>> Thanks to CASSANDRA-11206, I think we can have much larger partition >>>>>> than before 3.6. >>>>>> (Robert said he could treat safely 10 15GB partitions at his >>>>>> presentation. https://www.youtube.com/watch?v=N3mGxgnUiRY) >>>>>> >>>>>> But is there still 2B columns limit on the Cassandra code? >>>>>> If so, out of curiosity, I'd like to know where the bottleneck is. >>>>>> Could anyone let me know about it? >>>>>> >>>>>> Thanks Yasuharu. >>>>>> >>>>>> >>>>>> 2016-10-13 1:11 GMT+09:00 Edward Capriolo <edlinuxg...@gmail.com>: >>>>>> >>>>>>> The "2 billion column limit" press clipping "puffery". This >>>>>>> statement seemingly became popular because highly traffic traffic-ed >>>>>>> story, >>>>>>> in which a tech reporter embellished on a statement to make a splashy >>>>>>> article. >>>>>>> >>>>>>> The effect is something like this: >>>>>>> http://www.healthnewsreview.org/2012/08/iced-tea-kidney-ston >>>>>>> es-and-the-study-that-never-existed/ >>>>>>> >>>>>>> Iced tea does not cause kidney stones! Cassandra does not store rows >>>>>>> with 2 billion columns! It is just not true. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Oct 12, 2016 at 4:57 AM, Kant Kodali <k...@peernova.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Well 1) I have not sent it to postgresql mailing lists 2) I thought >>>>>>>> this is an open ended question as it can involve ideas from everywhere >>>>>>>> including the Cassandra java driver mailing lists so sorry If that >>>>>>>> bothered >>>>>>>> you for some reason. >>>>>>>> >>>>>>>> On Wed, Oct 12, 2016 at 1:41 AM, Dorian Hoxha < >>>>>>>> dorian.ho...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Also, I'm not sure, but I don't think it's "cool" to write to >>>>>>>>> multiple lists in the same message. (based on postgresql mailing lists >>>>>>>>> rules). >>>>>>>>> Example I'm not subscribed to those, and now the messages are >>>>>>>>> separated. >>>>>>>>> >>>>>>>>> On Wed, Oct 12, 2016 at 10:37 AM, Dorian Hoxha < >>>>>>>>> dorian.ho...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> There are some issues working on larger partitions. >>>>>>>>>> Hbase doesn't do what you say! You have also to be carefull on >>>>>>>>>> hbase not to create large rows! But since they are globally-sorted, >>>>>>>>>> you can >>>>>>>>>> easily sort between them and create small rows. >>>>>>>>>> >>>>>>>>>> In my opinion, cassandra people are wrong, in that they say >>>>>>>>>> "globally sorted is the devil!" while all fb/google/etc actually use >>>>>>>>>> globally-sorted most of the time! You have to be careful though >>>>>>>>>> (just like >>>>>>>>>> with random partition) >>>>>>>>>> >>>>>>>>>> Can you tell what rowkey1, page1, col(x) actually are ? Maybe >>>>>>>>>> there is a way. >>>>>>>>>> The most "recent", means there's a timestamp in there ? >>>>>>>>>> >>>>>>>>>> On Wed, Oct 12, 2016 at 9:58 AM, Kant Kodali <k...@peernova.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi All, >>>>>>>>>>> >>>>>>>>>>> I understand Cassandra can have a maximum of 2B rows per >>>>>>>>>>> partition but in practice some people seem to suggest the magic >>>>>>>>>>> number is >>>>>>>>>>> 100K. why not create another partition/rowkey automatically >>>>>>>>>>> (whenever we >>>>>>>>>>> reach a safe limit that we consider would be efficient) with auto >>>>>>>>>>> increment bigint as a suffix appended to the new rowkey? so that >>>>>>>>>>> the >>>>>>>>>>> driver can return the new rowkey indicating that there is a new >>>>>>>>>>> partition >>>>>>>>>>> and so on...Now I understand this would involve allowing partial >>>>>>>>>>> row key >>>>>>>>>>> searches which currently Cassandra wouldn't do (but I believe HBASE >>>>>>>>>>> does) >>>>>>>>>>> and thinking about token ranges and potentially many other things.. >>>>>>>>>>> >>>>>>>>>>> My current problem is this >>>>>>>>>>> >>>>>>>>>>> I have a row key followed by bunch of columns (this is not time >>>>>>>>>>> series data) >>>>>>>>>>> and these columns can grow to any number so since I have 100K >>>>>>>>>>> limit (or whatever the number is. say some limit) I want to break >>>>>>>>>>> the >>>>>>>>>>> partition into level/pages >>>>>>>>>>> >>>>>>>>>>> rowkey1, page1->col1, col2, col3...... >>>>>>>>>>> rowkey1, page2->col1, col2, col3...... >>>>>>>>>>> >>>>>>>>>>> now say my Cassandra db is populated with data and say my >>>>>>>>>>> application just got booted up and I want to most recent value of a >>>>>>>>>>> certain >>>>>>>>>>> partition but I don't know which page it belongs to since my >>>>>>>>>>> application >>>>>>>>>>> just got booted up? how do I solve this in the most efficient that >>>>>>>>>>> is >>>>>>>>>>> possible in Cassandra today? I understand I can create MV, other >>>>>>>>>>> tables >>>>>>>>>>> that can hold some auxiliary data such as number of pages per >>>>>>>>>>> partition and >>>>>>>>>>> so on..but that involves the maintenance cost of that other table >>>>>>>>>>> which I >>>>>>>>>>> cannot afford really because I have MV's, secondary indexes for >>>>>>>>>>> other good >>>>>>>>>>> reasons. so it would be great if someone can explain the best way >>>>>>>>>>> possible >>>>>>>>>>> as of today with Cassandra? By best way I mean is it possible with >>>>>>>>>>> one >>>>>>>>>>> request? If Yes, then how? If not, then what is the next best way >>>>>>>>>>> to solve >>>>>>>>>>> this? >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> kant >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >