Elad Yosifon created PARQUET-2036:
-------------------------------------

             Summary: implicitly defining DEBUG mode in MessageColumnIO causes 
80% performance overhead
                 Key: PARQUET-2036
                 URL: https://issues.apache.org/jira/browse/PARQUET-2036
             Project: Parquet
          Issue Type: Bug
    Affects Versions: 1.12.0, 1.10.1, 1.10.0
            Reporter: Elad Yosifon


*parquet-column* jar leverages +slf4j and log4j as default logger+, neglecting 
to define a log4j configuration, defaults to *DEBUG* log level.

 
{code:java}
public class MessageColumnIO extends GroupColumnIO {
  private static final Logger LOG = 
LoggerFactory.getLogger(MessageColumnIO.class);

  private static final boolean DEBUG = LOG.isDebugEnabled(); // <------
}
{code}
 

this "magic behavior" defaults parquet library to be in DEBUG mode, without any 
notification or warnings. Unfortunately, the *RecordConsumerLoggingWrapper* 
implementation generates 5x performance overhead in comparison to the 
*MessageColumnIORecordConsumer* implementation, causing a massive hit in 
performance and wasteful server utilization.

 

+IMHO there are two things that could prevent such issue:+
 * printing a message to STDOUT notifying about DEBUG mode being set to active.
 * defaulting to *MessageColumnIORecordConsumer* implementation, and waiting 
for explicit configuration to define DEBUG mode, and use 
*RecordConsumerLoggingWrapper*.

 

In the past 2 years, this issue probably cost my company 50,000$ in excessive 
cloud costs!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to