Sergey - do you think the performance degradation would be detectable on a laptop or do you think you'd need a cluster to see it? Do you see a performance difference between 4.6 and 4.7 on your laptop?
On Fri, Feb 26, 2016 at 10:57 PM, Sergey Soldatov <[email protected]> wrote: > James, > I haven't seen any performance problems during my testing. I tested > with the csv files up to 600Mb and the load time was less than 10 min > on a laptop. I will try tables with salted pks tomorrow. > > Thanks, > Sergey. > > On Fri, Feb 26, 2016 at 6:00 PM, James Taylor <[email protected]> > wrote: > > Ok, I'll rollback PHOENIX-1973, but are you saying this isn't the root > > cause of the pert regression? > > > > > > On Friday, February 26, 2016, Sergey Soldatov <[email protected]> > > wrote: > > > >> James, > >> Well, its not, but I have an another problem with big loads when the > >> input is get split to several mappers. The optimization with replacing > >> table name in tablerowkeyPair cause problems with output name > >> generation, so the index instead of the table name appears in the > >> path. So lets just rollback the patch. > >> > >> Thanks, > >> Sergey > >> > >> On Fri, Feb 26, 2016 at 2:37 PM, James Taylor <[email protected] > >> <javascript:;>> wrote: > >> > Thanks, Sergey. Were you able to confirm whether or not PHOENIX-1973 > was > >> > the root cause of the regression? > >> > > >> > On Fri, Feb 26, 2016 at 11:55 AM, Sergey Soldatov < > >> [email protected] <javascript:;>> > >> > wrote: > >> > > >> >> Oops. Small update. We can revert PHOENIX-1973 (bulk load > >> >> improvement), not PHOENIX-2649 (TableRowKeyPair comparator problem). > >> >> > >> >> On Fri, Feb 26, 2016 at 10:52 AM, Sergey Soldatov > >> >> <[email protected] <javascript:;>> wrote: > >> >> > Well, that's how MR bulk load works. Mappers gets all rows from the > >> >> > file and create the corresponding pairs <rowkey, column value>. MR > >> >> > engine sorts this stuff by rowkey and reducer sort it by value and > put > >> >> > it to the hfile. After that HBase bulkload loads it into HBase. > >> >> > PHOENIX-2649 is just reduce the amount of data that is sending > between > >> >> > mappers and reducer. Before that was N rows * K columns after it > >> >> > becomes N only. Because of the bug I mentioned before the phase > when > >> >> > stuff is sorted by rowkey didn't work at all (first place why > >> >> > performance of 4.6 was better) and all values were written with a > >> >> > single rowkey and were received all at once by reducer (second > place) > >> >> > and during the HBase bulkload there were no reason for splitting > >> >> > because of the same rowkey (third place). > >> >> > But of course we can reverse PHOENIX-2649 and see whether it helps. > >> >> > > >> >> > Thanks, > >> >> > Sergey > >> >> > > >> >> > On Fri, Feb 26, 2016 at 9:02 AM, 김영우 (Youngwoo Kim) < > >> [email protected] <javascript:;>> > >> >> wrote: > >> >> >> Exactly! Gabriel describes the fact that I observed. > >> >> >> > >> >> >> Many map and reduce tasks are launched but one or two tasks are > >> running > >> >> at > >> >> >> the end of the job. it looks like the work loads are skwed on > >> >> particular > >> >> >> task. > >> >> >> > >> >> >> Thanks, > >> >> >> Youngwoo > >> >> >> > >> >> >> 2016년 2월 26일 금요일, Gabriel Reid<[email protected] > <javascript:;>>님이 > >> 작성한 메시지: > >> >> >> > >> >> >>> I just did a quick test run on this, and it looks to me like > >> something > >> >> >>> is definitely wrong. > >> >> >>> > >> >> >>> I ran a simple ingest test for a table with 5 regions, and it > >> appears > >> >> >>> that only a single HFile is being created. This HFile then needs > to > >> be > >> >> >>> recursively split during the step of handing HFiles over to the > >> region > >> >> >>> servers (hence the "xxx no longer fits inside a single region. > >> >> >>> Splitting..." log messages). > >> >> >>> > >> >> >>> This implies that only a single reducer is actually doing any > >> >> >>> processing, which would certainly account for a performance > >> >> >>> degradation. My assumption is that the underlying issue is in the > >> >> >>> partitioner (or the data being passed to the partitioner). I > don't > >> >> >>> know if this was introduced as part of PHOENIX-2649 or not. > >> >> >>> > >> >> >>> Sergey, are you (or someone else) able to take a look at this? > >> >> >>> Unfortunately, I don't think there's any way I can get a serious > >> look > >> >> >>> at this any more today. > >> >> >>> > >> >> >>> - Gabriel > >> >> >>> > >> >> >>> > >> >> >>> On Fri, Feb 26, 2016 at 11:21 AM, Sergey Soldatov > >> >> >>> <[email protected] <javascript:;> <javascript:;>> wrote: > >> >> >>> > I see. We will try to reproduce it. The degradation is possible > >> >> >>> > because 4.6 had a problem described in PHOENIX-2649. In two > words > >> - > >> >> >>> > the comparator for rowkeys was working incorrectly and reported > >> that > >> >> >>> > all rowkeys are the same. If the input files are relatively > small > >> and > >> >> >>> > reducer has enough memory, all records will be written in one > step > >> >> >>> > with the same single rowkey. And that can be the reason why it > was > >> >> >>> > faster and there were no splits. > >> >> >>> > > >> >> >>> > Thanks, > >> >> >>> > Sergey > >> >> >>> > > >> >> >>> > On Fri, Feb 26, 2016 at 1:37 AM, 김영우 (YoungWoo Kim) < > >> >> [email protected] <javascript:;> > >> >> >>> <javascript:;>> wrote: > >> >> >>> >> Sergey, > >> >> >>> >> > >> >> >>> >> I can't access the cluster right now, so I'll post details and > >> >> >>> >> configurations next week. important facts as far as I > remember: > >> >> >>> >> - 8 nodes dev cluster (Hadoop 2.7.1, HBase 1.1.3, Phoenix > 4.7.0 > >> RC2 > >> >> and > >> >> >>> >> Zookeeper 3.4.6) > >> >> >>> >> * 32 core / 256 GB RAM, Datanode/Nodemanager and > RegionServer @ > >> >> same > >> >> >>> node, > >> >> >>> >> Assigned 24 GB for heap for region server > >> >> >>> >> - # of tables = 9 > >> >> >>> >> - Salted with 5, 10 or 20 buckets > >> >> >>> >> - Compressed using Snappy codec > >> >> >>> >> - Data Ingestion : 30 ~ 40 GB / day using bulk loading > >> >> >>> >> - Schema > >> >> >>> >> The table that I mentioned has 10 columns and 7 columns are > >> >> varchar > >> >> >>> and > >> >> >>> >> the rest are varchar[]. > >> >> >>> >> I can see performance degradation on bulk load from other > >> tables > >> >> >>> >> > >> >> >>> >> Thanks, > >> >> >>> >> > >> >> >>> >> Youngwoo > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> On Fri, Feb 26, 2016 at 6:02 PM, Sergey Soldatov < > >> >> >>> [email protected] <javascript:;> <javascript:;>> > >> >> >>> >> wrote: > >> >> >>> >> > >> >> >>> >>> Hi Youngwoo, > >> >> >>> >>> Could you provide a bit more information about the table > >> structure > >> >> >>> >>> (DDL would be great)? Do you have indexes? > >> >> >>> >>> > >> >> >>> >>> Thanks, > >> >> >>> >>> Sergey > >> >> >>> >>> > >> >> >>> >>> On Tue, Feb 23, 2016 at 10:18 PM, 김영우 (Youngwoo Kim) > >> >> >>> >>> <[email protected] <javascript:;> <javascript:;>> wrote: > >> >> >>> >>> > Gabriel, > >> >> >>> >>> > > >> >> >>> >>> > I'm using RC2. > >> >> >>> >>> > > >> >> >>> >>> > Youngwoo > >> >> >>> >>> > > >> >> >>> >>> > 2016년 2월 24일 수요일, Gabriel Reid<[email protected] > >> <javascript:;> > >> >> <javascript:;>>님이 > >> >> >>> 작성한 메시지: > >> >> >>> >>> > > >> >> >>> >>> >> Hi Youngwoo, > >> >> >>> >>> >> > >> >> >>> >>> >> Which RC are you using for this? RC-1 or RC-2? > >> >> >>> >>> >> > >> >> >>> >>> >> Thanks, > >> >> >>> >>> >> > >> >> >>> >>> >> Gabriel > >> >> >>> >>> >> > >> >> >>> >>> >> On Tue, Feb 23, 2016 at 11:30 AM, 김영우 (YoungWoo Kim) < > >> >> >>> [email protected] <javascript:;> <javascript:;> > >> >> >>> >>> >> <javascript:;>> wrote: > >> >> >>> >>> >> > Hi, > >> >> >>> >>> >> > > >> >> >>> >>> >> > I'm evaluating 4.7.0 RC on my dev cluster. Looks like it > >> works > >> >> >>> fine > >> >> >>> >>> but I > >> >> >>> >>> >> > run into performance degradation for MR based bulk > loading. > >> >> I've > >> >> >>> been > >> >> >>> >>> >> > loading a million of rows per day into Phoenix table. > From > >> >> 4.7.0 > >> >> >>> RC, > >> >> >>> >>> >> there > >> >> >>> >>> >> > are failed jobs with '600 sec' time out in map or reduce > >> >> stage. > >> >> >>> logs > >> >> >>> >>> as > >> >> >>> >>> >> > follows: > >> >> >>> >>> >> > > >> >> >>> >>> >> > 16/02/22 18:03:45 INFO mapreduce.Job: Task Id : > >> >> >>> >>> >> > attempt_1456035298774_0066_m_000002_0, Status : FAILED > >> >> >>> >>> >> > AttemptID:attempt_1456035298774_0066_m_000002_0 Timed > out > >> >> after > >> >> >>> 600 > >> >> >>> >>> secs > >> >> >>> >>> >> > > >> >> >>> >>> >> > 16/02/22 18:05:14 INFO mapreduce.LoadIncrementalHFiles: > >> HFile > >> >> at > >> >> >>> >>> >> > > >> >> >>> >>> >> > >> >> >>> >>> > >> >> >>> > >> >> > >> > hdfs://fcbig/tmp/74da7ab1-a8ac-4ba8-9d43-0b70f08f8602/HYNIX.BIG_TRACE_SUMMARY/0/_tmp/_tmp/f305427aa8304cf98355bf01c1edb5ce.top > >> >> >>> >>> >> > no longer fits inside a single region. Splitting... > >> >> >>> >>> >> > > >> >> >>> >>> >> > But, the logs have not seen before. so I'm facing about > 5 ~ > >> >> 10x > >> >> >>> >>> >> performance > >> >> >>> >>> >> > degradation for bulk loading. (4.6.0: 10min but 60+ min > >> from > >> >> >>> 4.7.0 RC) > >> >> >>> >>> >> > furthermore, I can't find a clue from MR logs why the > tasks > >> >> filed. > >> >> >>> >>> >> > > >> >> >>> >>> >> > And, I can see the hfile splitting after reduce stage. > Is > >> it > >> >> >>> normal? > >> >> >>> >>> >> > > >> >> >>> >>> >> > My envs are: > >> >> >>> >>> >> > - Hadoop 2.7.1 > >> >> >>> >>> >> > - HBase 1.1.3 > >> >> >>> >>> >> > - Phoenix 4.7.0 RC > >> >> >>> >>> >> > > >> >> >>> >>> >> > Thanks, > >> >> >>> >>> >> > > >> >> >>> >>> >> > Youngwoo > >> >> >>> >>> >> > >> >> >>> >>> > >> >> >>> > >> >> > >> >
