用Python(Mac和Linux)扩展内存映射文件

2024-09-28 03:16:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在Windows上,mmap文件可以在打开时自动扩展,但在类UNIX系统上不支持此操作:

https://docs.python.org/3.7/library/mmap.html

我有一组现有的类,它们使用mmap在Python中提供仅附加的日志,但文件大小固定为64 MB:

https://github.com/cloudwall/serenity/blob/master/src/serenity/tickstore/journal.py

我想复习

    def _check_space(self, add_length: int):
        if self.mm.get_pos() + add_length >= self.max_size:
            raise NoSpaceException()

自动扩展基础文件并再添加64GB空间。在大纲中,我想我知道如何做到这一点:

  1. 取消映射文件
  2. 穷尽
  3. 追加64MB的零
  4. 重新映射文件

但我非常小心,如果我没有正确执行,我会在重启时损坏日志。(注意,我在Kubernetes中有实时运行的服务,它们全天候收集数据。)这是正确的方法吗?运行时,能否在mmap区域下安全地扩展文件


Tags: 文件httpsorgselfadddocswindows系统

热门问题