{"push_id":863481944,"size":1,"distinct_size":1,"ref":"refs/heads/incode","head":"9cbec67038b8c26065fc135d0c211b0712fde193","before":"99387d5885e779557db1090ad7c6fd0369bf5042","commits":[{"sha":"9cbec67038b8c26065fc135d0c211b0712fde193","author":{"email":"8baac4a5cf68bd25ac08ee741592ae7b45274707@gmail.com","name":"Haozhun Jin"},"message":"Improve performance of InCodeGenerator\n\n* Threshold between hash set and generated switch is adjusted from 1000 to 32\n  or 128 based on actual type.\n* Load factor of hash set is adjusted to 0.25.\n\nBIGINT is 31-bit unsigned integers. DOUBLE is any double between 0.0 and 1.0.\nVARCHAR is 64-bit signed integer converted to string. Unit is microsecond for\na 10000-row page.\n\nOverall performance after tuning:\n\nBenchmark results for different strategies:\n\n        hash 0.75 load factor    hash 0.5 load factor     hash 0.25 load factor     generated switch\n        BIGINT  DOUBLE  VARCHAR  BIGINT  DOUBLE  VARCHAR  BIGINT  DOUBLE  VARCHAR   BIGINT  DOUBLE   VARCHAR\n    1   235.74  225.23   706.36  182.28  181.29   588.15  163.85  165.74  545.860    39.76    51.12   254.47\n    5   388.62  305.17   999.64  232.17  221.40   656.43  174.95  164.54  580.087    89.19   119.79   367.25\n   10   427.94  360.83  1122.43  223.10  230.58   684.98  175.28  171.46  600.098   139.09   198.23   396.69\n   25   283.84  271.31   753.11  273.71  266.14   834.23  183.88  181.93  616.971   178.48   218.09   435.17\n   50   268.04  270.22   817.26  267.91  250.73   798.80  202.50  184.64  649.919   249.21   254.60   454.71\n   75   398.50  382.17  1306.62  232.38  233.09   650.71  168.15  164.87  568.743   262.46   278.25   484.06\n  100   261.93  280.38   906.26  270.54  276.77   816.94  187.18  191.77  614.767   270.46   282.47   493.71\n  150   424.19  395.80  1318.54  231.03  226.42   691.79  174.91  173.50  592.280   293.14   292.15   513.29\n  200   287.61  263.83   838.44  280.64  282.62   826.32  193.01  190.98  623.896   305.62   313.68   519.65\n  250   364.81  490.35  1038.71  372.73  334.62  1068.17  206.48  214.01  662.589   316.55   323.35   545.67\n  300   422.06  385.28  1449.77  214.26  216.09   732.39  175.13  171.39  594.354   332.34  1750.36  1955.22\n  350   536.78  554.96  1648.89  246.64  257.35   810.53  185.83  185.97  611.776   336.92  1774.38  2028.32\n  400   277.07  281.35   860.19  280.14  276.10   910.70  193.19  190.66  625.258   349.76  1784.38  1987.22\n  450   309.79  306.55  1019.18  304.69  304.47   956.27  203.24  198.90  660.130   352.02  1718.63  1976.81\n  500   391.65  343.55  1050.55  335.05  340.80  1066.33  217.58  222.25  667.676   350.37  1719.94  1968.86\n  750   719.82  737.52  2510.43  283.80  268.24   827.40  181.36  185.56  617.092   387.30  1827.96  2092.34\n 1000   350.08  345.73  1060.12  338.92  344.01  1026.75  214.20  215.72  692.699  1769.19  1800.66  2045.39\n10000   464.89  451.28  1786.75  244.11  237.86   750.99  184.81  183.78  659.567   235.66   243.40   793.31","distinct":true,"url":"https://api.github.com/repos/haozhun/presto/commits/9cbec67038b8c26065fc135d0c211b0712fde193"}]}