> On July 19, 2016, 8:55 p.m., Mike Percy wrote: > > flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/ReliableTaildirEventReader.java, > > line 206 > > <https://reviews.apache.org/r/50134/diff/3/?file=1447305#file1447305line206> > > > > Can we put this if statement in the above loop, right under line 203, > > to avoid looping over all of the events twice? > > > > Hotspot should optimize-out the branches (and probably even the loop > > when everything is disabled) so I think we will get better performance in > > general. > > > > So it would look like: > > > > // Add headers to each event as needed. > > Map<String, String> headers = currentFile.getHeaders(); > > for (Event event : events) { > > if (headers != null && !headers.isEmpty()) { > > event.getHeaders().putAll(headers); > > } > > if (annotateFileName) { > > String filename = currentFile.getPath(); > > event.getHeaders().put(fileNameHeader, filename); > > } > > } > > qiao wen wrote: > Thanks. If headers==null && annotateFileName==false, the program will > execute events.size() times. So I think the following will get better > performance: > > if (annotateFileName || (headers != null && !headers.isEmpty())) { > for (Event event : events) { > if (headers != null && !headers.isEmpty()) { > event.getHeaders().putAll(headers); > } > if (annotateFileName) { > event.getHeaders().put(fileNameHeader, currentFile.getPath()); > } > } > }
Even better. - Mike ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/50134/#review142898 ----------------------------------------------------------- On July 20, 2016, 2:18 a.m., qiao wen wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/50134/ > ----------------------------------------------------------- > > (Updated July 20, 2016, 2:18 a.m.) > > > Review request for Flume. > > > Bugs: FLUME-2955 > https://issues.apache.org/jira/browse/FLUME-2955 > > > Repository: flume-git > > > Description > ------- > > Log file path is necessary to locate the log. Add a parameter PATH_HEADER in > the TaildirSourceConstants. If the parameter is true, the file path will be > added to the header of flume event. Defaut value is false. > > > Diffs > ----- > > flume-ng-doc/sphinx/FlumeUserGuide.rst d8bfebf > > flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/ReliableTaildirEventReader.java > 1409f25 > > flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/TaildirSource.java > eae1b1a > > flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/TaildirSourceConfigurationConstants.java > 2c49540 > > flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java > e090b74 > > Diff: https://reviews.apache.org/r/50134/diff/ > > > Testing > ------- > > mvn clean install -DskipTests -> built > junit tests for flume-taildir-source module -> passed > > > Thanks, > > qiao wen > >
