首页 文章
  • 1 votes
     answers
     views

    子进程调用的重定向输出是否丢失?

    我有一些大致相似的Python代码,使用了一些你可能拥有或不拥有的库: # Open it for writing vcf_file = open(local_filename, "w") # Download the region to the file. subprocess.check_call(["bcftools", "view&quo...
  • 16 votes
     answers
     views

    如何在POSIX中持久重命名文件?

    在POSIX文件系统中持久重命名文件的正确方法是什么?特别想知道目录上的fsyncs . (如果这取决于OS / FS,我问的是Linux和ext3 / ext4) . Note :StackOverflow还有其他关于持久重命名的问题,但AFAICT他们甚至没有修改文件数据 . 我目前有(在Python中): dstdirfd = open(dstdirpath, O_DIRECTORY|O_...
  • 2 votes
     answers
     views

    父目录的fsync是否保证所有递归子目录的元数据同步?

    目前我正在编写一个Android应用程序,需要在本机端处理大量文件 . 最近,在更新或重命名这些文件时,我遇到了一些数据丢失或不一致问题 . (所有这些文件都存储在公共父/根目录的多个子目录中 . ) 在阅读了几篇关于fsync()的文章后,我决定使用它 . 但是我有一件事不清楚: 在父目录上调用fsync()是否可以保证所有子目录的元数据同步递归? 也就是说,假设我在公共父目录中的不同子目录中...
  • 0 votes
     answers
     views

    fsync()调用之间写入的持久性

    对 fsync() 的调用可确保在同一文件描述符上对 write() 的任何已完成调用所写的数据是持久的,即使系统随后崩溃并重新启动它们也是可读的 . 情况也是这样, write() 调用的效果可能会在他们去磁盘的路上被重新排序,所以如果你没有 fsync() ,那么你可能会看到后来调用 write() 而不是之前调用的效果 . 据我了解,即使在 fsync() 调用之间,附加到文件似乎也相当安全...
  • 0 votes
     answers
     views

    UBIFS:未保存编辑文件 . 如何将它们同步到NAND?

    我在NAND上使用UBIFS作为rootfs . 当我用nano命令编辑像/etc/rc.local这样的文件并保存它时,“cat /etc/rc.local”显示了编辑后的内容 . 但是,在断开电源(无需重启或断电命令)并再次供电后,/ etc / rc.local的内容将变为空 . 我发现写入的数据不会在UBIFS中直接写入NAND并写入缓存 . (参见:http://www.linux-m...
  • 1 votes
     answers
     views

    我们是否需要在UBIFS中同步父目录以进行原子*和*持久文件更新

    这是typical and well-known approach的 atomic 文件更新: fd = open(“foo.new”, O_WRONLY); write(fd, buf, bufsize); fsync(fd); close(fd); rename(“foo.new”, “foo”); 通常,如果我们还想要 durability (即保证在发生崩溃时文件的新版本可用),那么我们...
  • 2 votes
     answers
     views

    Linux上的java.io.FileDescriptor.sync()fsyncs目录吗?

    如果同步文件,则明确需要fsync(2)manpage告知同步目录 . 在io包中Java的同步方法怎么样?这样做真的很重要吗?它取决于操作系统和/或文件系统吗? 我在http://docs.oracle.com/javase/7/docs/api/java/io/FileDescriptor.html#sync找不到任何帮助......
  • 2 votes
     answers
     views

    可以使用每次提交的单个fsync实现日记功能吗?

    假设您正在构建一个日志记录/预写日志记录存储系统 . 你能简单地通过(对于每个事务)附加数据(使用write(2)),附加提交标记,然后fsyncing来实现吗? 需要考虑的方案是,如果对该日志执行大量写入操作,然后对其进行fsync,并且在fsync期间出现故障 . 只有在刷新所有数据块之后才刷新inode直接/间接块指针,或者不保证按顺序刷新块?如果是后者,那么在恢复期间,如果在文件末尾看到提...
  • 3 votes
     answers
     views

    在Linux中编写和读取相同的fd而不使用fsync

    假设我在不执行fsync的情况下将块写入文件描述符,然后在一段时间后从同一个描述符中读取相同的块 . 是_113288_我会收到相同的信息吗? 该程序是单线程的,任何其他进程都不会随时访问该文件 .
  • 0 votes
     answers
     views

    linux:smart fsync()?

    我正在录制音频并将其写入SD卡,数据速率约为1.5 MB / s . 我正在使用带有ext4文件系统的4级SD卡 . 在一定的间隔后,内核自动同步文件 . 这样做的缺点是,我的应用程序缓冲堆积等待写入磁盘 . 我认为,如果内核经常同步它现在正在做什么,它可能会解决问题 . 我在应用程序中使用了 fsync() 来在一定的时间间隔后同步 . 但是这并没有解决问题,因为某些时候内核已经在应用程序之前调...
  • 7 votes
     answers
     views

    在Linux上持久耐用需要什么?

    我正在编写一些软件来处理非常关键的数据,并且需要知道我需要做些什么来实现持久性 . 我看的每个地方都是矛盾的信息,所以我很欣赏任何见解 . 我写入磁盘有三种方法 . 使用O_DIRECT | O_DSYNC,pread'ing然后pwrite'ing 512字节 - 16 MB块 . 使用O_DIRECT,pread'ing然后pwrite'ing 512字节块,并根据需要定期调用fda...
  • 1 votes
     answers
     views

    fclose,fsync和硬件看门狗

    我正在经历一个对我毫无意义的有趣问题 . 我正在写一个文件,2秒后触发硬件看门狗,然后计算机重置 . 但是,我没有看到我上次写入该文件 . 我在fsync和fclose之后放了一个print语句,它正在打印出来,所以我知道它们被调用时有足够的时间来备用...但它似乎并没有真正写入文件 . 这是在C中 . 为了看到写的显示,我必须延迟6秒 . 任何想法是什么可能导致这种行为???
  • 0 votes
     answers
     views

    可以通过带有fsync(2)的OS中断写入(2)的调用

    我有一个循环write(2)与任意数量的数据EOL和fsync(2)逐行附加到文件 . 这个过程的崩溃是否会让我有一个文件,其中一半的write(2)调用数据被写入文件?我的理论是,如果操作系统偶尔会调用fsync,那么在调用期间可能会出现巧合,写入(2)将文件的一半写入,而没有结束新行 .
  • 0 votes
     answers
     views

    fsync无法在ext3或ext4系统上运行

    我尝试使用fsync尽快将一些文件写入SD卡 . 但是,在将文件物理写入SD卡之前,fsync实际上并未阻止 . 在数据实际上在SD卡上之前,似乎需要大约5-6秒 . 但是使用commit = 1或者sync选项安装文件系统(我试过ext3,ext4)似乎确实有效,数据在1秒内重启后是安全的 . 我的问题是,无论如何都要实现刷新而不采用分区范围的解决方案?我正在使用linux内核2.6.37 . ...
  • 1 votes
     answers
     views

    在多个文件和一个文件上调用fsync时的性能

    我有多个线程,每个线程接受请求,进行一些处理,将结果存储在提交日志中,并返回结果 . 为了保证最多x秒的数据丢失,此提交日志需要每隔x秒进行一次fsync . 我想避免线程之间的同步,这意味着它们每个都需要有自己的提交日志而不是共享日志 - 是否有可能以高效的方式定期fsync所有这些不同的提交日志? 这是在Linux,ext4(或ext3)上 (注意:由于代码的性质,即使在正常处理过程中,线程也...

热门问题