代码之家  ›  专栏  ›  技术社区  ›  Brendan

编写关键文本数据的技术

  •  2
  • Brendan  · 技术社区  · 17 年前

    我们从昂贵的实验中获取长时间(~天)的文本/csv类数据,因此不惜一切代价避免文件损坏。

    最近,在XP中从Explorer复制了一个文件,而实验正在进行中,数据部分丢失,可能是由于多重访问冲突。

    下面列出了我们提出的一些想法-我们欢迎您的评论以及您自己的意见。

    8 回复  |  直到 10 年前
        1
  •  9
  •   Ronnie    17 年前

    使用数据库作为辅助数据存储机制,并利用原子事务机制

        2
  •  6
  •   stukelly    17 年前

    把这个大文件分成几个单独的文件,每天一个,怎么样。

        3
  •  1
  •   Stephan Eggermont    17 年前

    (发送UDP数据包会更简单)。

    确保只复制旧数据。如果文件名上的时间戳分辨率为1小时,则可以安全地复制1小时以上的数据。

        4
  •  0
  •   brendan    17 年前

        5
  •  0
  •   PatrickvL    17 年前

    我想你要找的是Win32 CreateFile API,具有以下标志:

    文件标志写入:写入操作不会经过任何中间缓存,它们将直接进入磁盘。

    文件\u标志\u无\u缓冲:打开文件或设备时,没有用于数据读取和写入的系统缓存。此标志不影响硬盘缓存或内存映射文件。 使用FILE_FLAG_NO_BUFFERING标志成功使用CreateFile打开的文件有严格的要求,有关详细信息,请参阅FILE BUFFERING。

        6
  •  0
  •   Fabricio Araujo    17 年前

    “工作”文件将在一段时间后(比如6/12/24小时或任何时间段)变为“完成”。因此,它创建另一个工作文件(名称必须包含时间戳)并通过网络发送“完成”(或者一个人可以这样做,如果我正确理解您的文本,您实际上在做什么)。

    在使用中复制文件会导致文件损坏。

        7
  •  -1
  •   brendan    17 年前

    将数据写入隐藏目录中的缓冲区文件,并定期(例如每10点)将数据复制到“公共”数据文件,从而减少写入并提供备份

        8
  •  -1
  •   brendan    17 年前

    推荐文章