private synchronized void notifyWriters ( ) throws IOException { LOG . debug ( "Notifying writers after " + rowsAddedSinceCheck ) ; for ( WriterInfo writer : writerList . values ( ) ) { if ( lowMemoryMode ) { // If we're in low memory mode and a writer // 1) flushes twice in a row, mark it as needy // 2) doesn't flush twice in a row, mark it for a decreased allocation if ( writer . flushedCount == 0 ) { writersForDeallocation . add ( writer ) ; } else if ( writer . flushedCount >= 2 ) { writersForAllocation . add ( writer ) ; } writer . resetFlushedCount ( ) ; } } if ( lowMemoryMode ) { reallocateMemory ( writersForAllocation , writersForDeallocation ) ; writersForDeallocation . clear ( ) ; writersForAllocation . clear ( ) ; } rowsAddedSinceCheck = 0 ; }
Notify all of the writers that they should check their memory usage .