private void preallocate ( ) throws IOException { long position = fc . position ( ) ; long triggerSize = Math . max ( FSEditLog . preallocateSize / 100 , 4096 ) ; if ( position + triggerSize >= fc . size ( ) ) { if ( FSNamesystem . LOG . isDebugEnabled ( ) ) { FSNamesystem . LOG . debug ( "Preallocating Edit log, current size " + fc . size ( ) ) ; } fill . position ( 0 ) ; int written = fc . write ( fill , position ) ; if ( FSNamesystem . LOG . isDebugEnabled ( ) ) { FSNamesystem . LOG . debug ( "Edit log size is now " + fc . size ( ) + " written " + written + " bytes " + " at offset " + position ) ; } } }
allocate a big chunk of data