DocumentsWriterStallControl
Controls the health status of a DocumentsWriter sessions. This class used to block incoming indexing threads if flushing significantly slower than indexing to ensure the [ ]s healthiness. If flushing is significantly slower than indexing the net memory used within an IndexWriter session can increase very quickly and easily exceed the JVM's available memory.
To prevent OOM Errors and ensure IndexWriter's stability this class blocks incoming threads from indexing once 2 x number of available DocumentsWriterPerThreads in [ ] is exceeded. Once flushing catches up and the number of flushing DWPT is equal or lower than the number of active DocumentsWriterPerThreads threads are released and can continue indexing.
Functions
Update the stalled flag status. This method will set the stalled flag to true iff the number of flushing DocumentsWriterPerThread is greater than the number of active DocumentsWriterPerThread. Otherwise it will reset the [ ] to healthy and release all threads waiting on .waitIfStalled
Blocks if documents writing is currently in a stalled state.