flush + fsync

This commit is contained in:
AF 2022-11-08 15:01:45 +00:00
parent bc72d96ddb
commit 8be67bf834

View File

@ -1,5 +1,6 @@
import asyncio import asyncio
import json import json
import os
import pathlib import pathlib
import pickle import pickle
import threading import threading
@ -177,9 +178,14 @@ class DbConnection:
self.db2io(bufferdb, buffer) self.db2io(bufferdb, buffer)
return buffer return buffer
def _file_write(self, line: str):
self.__file.write(line)
self.__file.flush()
os.fsync(self.__file.fileno())
async def _dump_compressed_buffer(self): async def _dump_compressed_buffer(self):
buffer = self._compress_buffer() buffer = self._compress_buffer()
await self.__loop.run_in_executor(None, self.__file.write, buffer.getvalue()) await self.__loop.run_in_executor(None, self._file_write, buffer.getvalue())
async def _do_dump_buffer(self): async def _do_dump_buffer(self):
await self._dump_compressed_buffer() await self._dump_compressed_buffer()