[ https://issues.apache.org/jira/browse/HIVE-23096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17072123#comment-17072123 ]
David Mollitor edited comment on HIVE-23096 at 3/31/20, 8:07 PM: ----------------------------------------------------------------- Hey [~ngangam] I think we leave it at INFO. There's nothing *wrong* with hitting the cap. If you have a fetch size of 1000 (Default) and you fetch 4000 rows (not that uncommon), then you would get 4 WARN level messages even though this is perfectly acceptable. I just want to make it possible to diagnose it as a problem (the case where a fetch size of 1 is set for a million rows) was (Author: belugabehr): Hey [~ngangam] I think we leave it at INFO. There's nothing *wrong* with hitting the cap. If you have a fetch size of 1000 (Default) and you fetch 4000 rows (not that uncommon), then you would get 4 WARN level messages even this this is perfectly acceptable. I just want to make it possible to diagnose it as a problem (the case where a fetch size of 1 is set for a million rows) > Review Code Path for getResults > ------------------------------- > > Key: HIVE-23096 > URL: https://issues.apache.org/jira/browse/HIVE-23096 > Project: Hive > Issue Type: Sub-task > Reporter: David Mollitor > Assignee: David Mollitor > Priority: Minor > Attachments: HIVE-23096.1.patch > > > * Log when a buffer returned to a client is completely full. This can be > helpful for identifying misconfigured clients that have a fetchSize that is > too small > * See below code snippet > * Rows are loaded into an ArrayList called "convey." This ArrayList is > instantiated with the default size (10) and is expanded on-demand as it is > filled. I changed it so that this ArrayList's size is set once, on the first > call to fetch, so that it doesn't have to "grow" and waste cycles and memory > with GC thrashing for that. > * Some minor cleanup > {code:java|Driver.java} > try { > ss = Utilities.readColumn(driverContext.getResStream(), bos); > if (bos.getLength() > 0) { > // use JDK StandardCharsets > row = new String(bos.getData(), 0, bos.getLength(), "UTF-8"); > } else if (ss == Utilities.StreamStatus.TERMINATED) { > // Do not create a new string for this. Just use a hard-coded > empty string. JDK: "Note that use of this constructor is unnecessary since > Strings are immutable." > row = new String(); > } > ... > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)