private
void checkBlockSizeReached()
throws
IOException {
if
(recordCount >= recordCountForNextMemCheck) {
long
memSize = columnStore.getBufferedSize();
long
recordSize = memSize / recordCount;
if
(memSize > (nextRowGroupSize - 2 * recordSize)) {
LOG.info(
"mem size {} > {}: flushing {} records to disk."
, memSize, nextRowGroupSize, recordCount);
flushRowGroupToStore();
initStore();
recordCountForNextMemCheck = min(max(MINIMUM_RECORD_COUNT_FOR_CHECK, recordCount / 2), MAXIMUM_RECORD_COUNT_FOR_CHECK);
this
.lastRowGroupEndPos = parquetFileWriter.getPos();
}
else
{
recordCountForNextMemCheck = min(
max(MINIMUM_RECORD_COUNT_FOR_CHECK, (recordCount + (
long
)(nextRowGroupSize / ((
float
)recordSize))) / 2),
recordCount + MAXIMUM_RECORD_COUNT_FOR_CHECK