cost 110 ms
在目錄描述符上使用時 fdatasync() 的語義是什么?

[英]What are the semantics of fdatasync() when used on a directory descriptor?

具體來說,如果我只關心目錄結構而不關心時間戳或其他目錄元數據,是否可以使用fdatasync代替fsync 。 如果可以,它有什么性能優勢嗎? POSIX 是否定義了這個? Linux、FreeBSD等常見操作系統有什么作用? ...

fsync MongoDB 行為

[英]fsync MongoDB behavior

根據文檔, fsync with lock=true 應該阻止寫入。 但值得注意的是,盡管它阻止了寫入,但它仍在寫入。 這是預期的行為嗎? 我在我的機器上本地安裝了 MongoDB 並將其作為單節點副本集運行。 MongoDB 正在使用的版本是 4.2.11 我執行 fsync 如下所示。 然 ...

如果我使用 libaio + fsync() 會怎樣?

[英]What will be if I use libaio + fsync()?

我知道當我使用write() + fsync() (或O_SYNC + write()編寫文件時,我認為它們是相同的ref #1 ref #2 ),這意味着我正在使用阻塞同步 I/O,並且 if write() (使用O_SYNC )或fsync()返回,這意味着數據安全地位於設備介質上(例如,用 ...

2021-02-06 02:53:48   1   102    io / aio / fsync  
在 ext4 中使用 O_DIRECT open() 時 fsync() 做了什么

[英]What do fsync() do when open() with O_DIRECT in ext4

我知道 XFS 不會同步元數據,即使正在寫入的文件是用O_DIRECT打開的並且文件的元數據已更改。 但是對於 ext4,我注意到 MySQL 支持O_DIRECT_NO_FSYNC這意味着 MySQL 不調用fsync()並讓文件系統自行同步元數據。 那么問題來了:如果我在 ext4 中open一 ...

如何確保將數據寫入物理介質?

[英]How do I ensure data is written to the physical media?

我有一個由腳本調用的程序。 該程序將大量數據寫入磁盤上的文件,然后終止。 一旦完成運行,腳本就會切斷整個系統的電源。 我遇到的問題是文件沒有被完整寫入。 如果它是一個 4GiB 的文件,當我稍后查看它時,實際上只有大約 2GiB 會在磁盤上。 我能夠可靠地確保寫入所有數據的唯一方法是在程序完成后在 ...

GCP:在 OS fsync 之前,區域磁盤的寫入是否跨區域復制?

[英]GCP: Does a regional disk's writes replicate across zones before an OS fsync?

https://cloud.google.com/compute/docs/disks#repds 區域永久性磁盤為可能沒有應用程序級復制的工作負載提供同步復制。 如果虛擬機在磁盤寫入之后但在fsync之前崩潰,數據是否丟失? 何時將磁盤寫入復制到另一個區域中的副本磁盤? 注意:V ...

節點 fs.fsync(何時使用?)

[英]node fs.fsync (when to use?)

我想安全地編寫一個文件,但我不了解 fsync 的正確使用/位置。 https://linux.die.net/man/2/fsync 讀完之后,我對在哪里有效地使用它感到困惑。 問題,我是否: 我正在寫一些執行許多文件更改的東西。 我看過編寫原子的模塊,但我想了解這個過程。 ...

C++:如何正確實現文件以防止斷電?

[英]C++: How to correctly actualize a file against power loss?

我有一個 linux 嵌入式環境。 這里我有2個場景: A: 打開並寫入一個臨時文件。 將臨時文件重命名為原始文件。 電力流失結果:重新啟動后,我擁有的是: 0 大小的原始文件,並且沒有臨時文件。 乙: 打開並寫入一個臨時文件。 FSYNC臨時文件。 將臨時文件重命名為原始文件。 電力流失結 ...

fsync/FlushFileBuffers 是否等待未完成的異步 IOs 完成?

[英]Does fsync/FlushFileBuffers wait for outstanding asynchronous IOs to finish?

后台正在開發DBMS kernel,具體是數據庫檢查點處理。 游戲規則是,在發出 fsync() 之前,我們需要等待文件上未完成的異步 IOs 完成。 我們部署的當前解決方案是在飛行中手動計數異步 IOs,等待此計數到 go 自身為 0,然后再進行 fsyncing 或 FlushFileBuff ...

我需要在 f.close() 之前使用 os.fsync() 嗎?

[英]Do I need to os.fsync() before f.close()?

“python 的 file.flush() 到底在做什么?” 說你應該先f.flush()然后os.fsync(f)以確保數據被寫入磁盤。 此外, “close() 是否暗示 Python 中的 flush()?” 聲稱f.close()意味着一個flush() 。 現在,問題是:我應該這樣做 ...

fsync 與原始設備 fd

[英]fsync with raw device fd

我對fsync + direct IO感到困惑。 這樣的代碼很容易理解: 在這種情況下, write()會將數據寫入頁面緩存, fsync會將fd引用的頁面緩存中所有修改過的數據強制寫入磁盤設備。 但是如果我們打開一個帶有O_DIRECT標志的文件,像這樣, 在這種情況下, write()將繞過頁 ...

如何使用C在Linux中以原子和異步方式編寫文件

[英]How to write a file atomically and asynchronously in Linux using C

題 如何在不需要程序等待慢速物理介質(例如使用fsync )的情況下自動更新文件? 我希望操作系統可以“緩沖”典型的fsync rename RAM中的操作,然后在方便的時候以正確的順序將它們寫入磁盤。 背景 我正在開發在具有ext4文件系統的自定義嵌入式Linux環境 ...

Windows:FlushFileBuffers 系統調用在網絡映射驅動器上失敗

[英]Windows: FlushFileBuffers system call fails on network mapped drive

fsync文檔狀態 調用 fsync() 不一定確保包含文件的目錄中的條目也已到達磁盤。 為此,還需要在目錄的文件描述符上顯式 fsync()。 我正在嘗試在 Windows 上使用 SMB 將目錄同步到網絡映射驅動器,類似於fsync在 Linux 上所做的。 如果目錄存儲在本地驅動器 ...

如何跟蹤在Ubuntu Linux中讀/寫到磁盤的總數據(包括元數據)?

[英]How to track total data (including metadata) read/written to a disk in Ubuntu Linux?

我正在嘗試跟蹤針對Linux中特定進程寫入磁盤或從磁盤讀取的總數據。 使用dstat工具,我可以使用dstat -d跟蹤系統范圍內的讀寫調用。 使用strace -e trace=read,write ,我可以跟蹤系統調用的返回值。 這是一個示例程序,我想為其獲取真實的系統讀寫值(包括 ...

我們是否需要在UBIFS中對父目錄進行fsync同步,以實現原子性*和*持久性文件更新

[英]Do we need to fsync the parent directory in UBIFS for atomic *and* durable file updates

這是原子文件更新的典型且眾所周知的方法 : 通常,如果我們還需要持久性 (即,如果發生崩潰,請確保文件的新版本可用),那么我們還需要在父目錄上調用fsync 。 問題:UBIFS也需要嗎? 該文件說: 可以為目錄調用fsync()-它同步目錄inode元數據。 [.. ...

我是否正確地強迫RocksDB使用fsync? 在strace中既不顯示fsync()也不顯示msync()

[英]Am I properly forcing RocksDB to use fsync? Neither fsync() nor msync() shows in strace

我通過C API使用RocksDB。 我有一個測試程序,它打開一個數據庫,執行1,000次寫入(在寫入和回調啟動之間收集定時數據),執行1,000次讀取,然后關閉。 這有效。 寫入的平均時間約為1ms。 我修改了測試程序以通過此方式打開寫同步 並再次運行它。 寫入的 ...

通過自動殺死文件/行中的C程序來測試持久性?

[英]Testing durability by automatically killing a C program at file/line?

我正在編寫一些使用fsync()系統調用的軟件,以確保將文件持久保存到磁盤。 我之前已經做過,而且我知道您需要注意的各種“陷阱”(即,在替換文件時,您需要先fsync()文件,先發出rename() ,然后再執行fsync()將包含持久性文件寫入磁盤的軟件編碼就可以了。 測試軟件是另一回 ...

改變沖洗頻率的風險

[英]Risks of changing flushes frequency

通過iostat我每分鍾發現一次磁盤寫入峰值。 我認為這些峰值是由fsync引起的,因為默認情況下,MongoDB每60秒將數據刷新到磁盤上一次。 我還發現與慢速查詢的高峰同時出現在慢速查詢日志中。 有一個名為storage.syncPeriodSecs的選項,但是根據文檔: ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM