アカウント名:
パスワード:
Vista以降ではデフォルトで、NTFSのアクセス日時は更新されなくなりました。https://blogs.technet.microsoft.com/filecab/2006/11/07/disabling-last-... [microsoft.com]
元々はディスクデータをメモリ上にキャッシュした時の同期のためにあったのだと思いますが、"アクセス日時"の意味が自明でないですし、読み取りだけでもディスクライトが発生してしまいます。普通は更新日時の方がキャッシュ用途には有益で、アクセス日時はそれほど使われていなかったのだと思います。
参考:Windows Vistaで更新日時を使うべきところをアクセス日時を使ったためキャッシュ一貫性が壊れた例https://blogs.msdn.microsoft.com/oldnewthing/20101229-00/?p=11883/ [microsoft.com]
1[ns]単位で記録可能だけど、そこまで細かく記録するとは限らないかもしらない。必要性はともかく、その精度で時刻を取れるかどうか怪しいし。
NTFSの100ナノ秒すら実際にその精度では取れていない。
NtQuerySystemTimeだと、0.5[ms]刻みな感じ。
これが一番嬉しいです。HFS+はタイムスタンプが荒すぎて更新日時で並べてもうまく並ばないことが多々ありました。ここまで細かい必要はないとも思いますけどね。
> # 分解能は 1 時間単位ってなんだ?"1 time unit" を直訳したのでは。つまり「1時間 - 単位」ではなくて「1 - 時間単位」だと。
直接の解説は見つからなかったけど、こういうコメントならあった。> double ntfsNanos = ntfsTime * 100; // An NTFS time unit is equal to 100 nanosecondshttp://stackoverflow.com/questions/35261497/determining-age-of-a-file-... [stackoverflow.com]
NTFSにおける1[時間単位]が100[ナノ秒]で、解像度も100ナノ秒単位(それ以下は動作保証外)になるとか、だいたいそんな話でしょう。
どんなFSであれ、たとえばガリガリに稼働してる最中のSQLサーバのスナップショットなんて取れたところでたいした意味ないしあまつさえVM上で動いてるようなOSイメージをFS上で取ったところで不整合なものになってしまうFSの本質をフォーカスしていくと地味な構造改革の積み重ねがあってのカラクリで、extをベースにしたものだろうがHFSだろうがNTFSだろうが新しいからといって簡単においそれと乗っかれるものじゃあない肝心なのはどんな用途にどんなOSやFSが最適かを選択する先見性
バックアップのためのSQLサーバーの停止がごく短時間でいいってのが優秀なスナップショットを使ったときのメリットじゃないですかね。動いたまま取ったスナップショットが不安なのはみんなわかってる。- DBエンジン停止- スナップショット取得(この間数秒未満)- DBエンジン起動ってのがSolarisにZFSが入った頃流行った気がする。
SolarisやZFSの話をしつつRDBMSのことを「SQLサーバー」と表記する不思議なツリーだ。
一瞬流行ったけどすぐ廃れましたね
廃れた理由はなんだったんですか?
Oracleだと
alter databse begin backup
あたりを発行してからバックアップ実行ですね. これによりデータベースの更新操作がバッファリングされ, バックアップ中の一貫性が保証されますから.
最近のRDBMSは基本的にこうしたランタイムバックアップ機能を持っていますから, ファイルシステムのスナップショット機能は, それほど有効ではないですね. しかもRDBMSではデータ格納先として大きめのファイルを使いますから, スナップショットを取ってもほとんどの場合直ちに更新がかかって実データのコピーが作られることになりますし.
ファイルシステムスナップショットが有効なのは, 比較的小さめのファイルが数多く有って, しかもその多くはあまり更新されないというような場合でしょう.
まぁ、そうじゃないと電源故障したらDBも死にましたってことになっちゃうからね
vssやdedupの実装を見るとNTFSはもう限界ですよ。Windowsは仮想メモリマネージャ、キャッシュシステム、ファイルシステムが密に連携しすぎてNTFSと心中する選択肢しかないように見えます。
そう思い込みたいのだろうが、以前からWindowsにはFAT32とNTFSが併存しているうえに、つい最近ReFSという新ファイルシステムが導入されているという事実があってだな。
新機能はNTFSにしか実装されないとか普通にあるのでReFSは用途限定で作っただけにしか見えません。それとNTFSへの新機能はTxFが最後でそれ以降はフィルタドライバで無理やり実装されているのでNTFSは改造していないし機能追加もしていません。
マイクロソフトはNTFSと心中するというよりNTFSをフランケンのように継ぎ接ぎでもなんでもいいから改造する気
Linuxのext4はナノ秒単位らしいです。
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout [kernel.org]> the upper 30 bits are used to provide nanosecond timestamp accuracy.
exFAT って仕様上は 10 ミリ秒単位なのかもしれないけど、Windows(のエクスプローラ)では相変わらず 2 秒単位(偶数秒単位)管理なような……。NTFS と同じ感じで使えるのかと思ったらやっぱり 2 秒ずれるじゃないですかー、やだー!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
APFS のタイムスタンプは 1 ナノ秒単位 (スコア:2)
データ連携と統合を科学するブログ: Windowのファイル更新日時(前編) ファイルを別のドライブに置いたら更新日時が変わった? [blogspot.com]に詳しく書いてある。
# 分解能は 1 時間単位ってなんだ?
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:2, 参考になる)
Vista以降ではデフォルトで、NTFSのアクセス日時は更新されなくなりました。
https://blogs.technet.microsoft.com/filecab/2006/11/07/disabling-last-... [microsoft.com]
元々はディスクデータをメモリ上にキャッシュした時の同期のためにあったのだと思いますが、"アクセス日時"の意味が自明でないですし、読み取りだけでもディスクライトが発生してしまいます。
普通は更新日時の方がキャッシュ用途には有益で、アクセス日時はそれほど使われていなかったのだと思います。
参考:Windows Vistaで更新日時を使うべきところをアクセス日時を使ったためキャッシュ一貫性が壊れた例
https://blogs.msdn.microsoft.com/oldnewthing/20101229-00/?p=11883/ [microsoft.com]
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:2)
1[ns]単位で記録可能だけど、そこまで細かく記録するとは限らないかもしらない。
必要性はともかく、その精度で時刻を取れるかどうか怪しいし。
Re: (スコア:0)
NTFSの100ナノ秒すら実際にその精度では取れていない。
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:2)
NtQuerySystemTimeだと、0.5[ms]刻みな感じ。
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:1)
これが一番嬉しいです。
HFS+はタイムスタンプが荒すぎて更新日時で並べてもうまく並ばないことが多々ありました。
ここまで細かい必要はないとも思いますけどね。
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:1)
> # 分解能は 1 時間単位ってなんだ?
"1 time unit" を直訳したのでは。
つまり「1時間 - 単位」ではなくて「1 - 時間単位」だと。
直接の解説は見つからなかったけど、こういうコメントならあった。
> double ntfsNanos = ntfsTime * 100; // An NTFS time unit is equal to 100 nanoseconds
http://stackoverflow.com/questions/35261497/determining-age-of-a-file-... [stackoverflow.com]
NTFSにおける1[時間単位]が100[ナノ秒]で、解像度も100ナノ秒単位(それ以下は動作保証外)になるとか、だいたいそんな話でしょう。
Re: (スコア:0)
どんなFSであれ、たとえばガリガリに稼働してる最中のSQLサーバのスナップショットなんて取れたところでたいした意味ないし
あまつさえVM上で動いてるようなOSイメージをFS上で取ったところで不整合なものになってしまう
FSの本質をフォーカスしていくと地味な構造改革の積み重ねがあってのカラクリで、extをベースにしたものだろうがHFSだろうがNTFSだろうが
新しいからといって簡単においそれと乗っかれるものじゃあない
肝心なのはどんな用途にどんなOSやFSが最適かを選択する先見性
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:1)
バックアップのためのSQLサーバーの停止がごく短時間でいいってのが優秀なスナップショットを使ったときのメリットじゃないですかね。動いたまま取ったスナップショットが不安なのはみんなわかってる。
- DBエンジン停止
- スナップショット取得(この間数秒未満)
- DBエンジン起動
ってのがSolarisにZFSが入った頃流行った気がする。
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:1)
SolarisやZFSの話をしつつRDBMSのことを「SQLサーバー」と表記する不思議なツリーだ。
Re: (スコア:0)
一瞬流行ったけどすぐ廃れましたね
Re: (スコア:0)
廃れた理由はなんだったんですか?
Re: (スコア:0)
サーバー停止しなくても、バックアップ開始時点のデータしかバックアップされんし。
Oracle でも似たようなの無かったっけ?
バックアップでサーバー停止なんて、ここ数年やったことないんだけど。
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:1)
Oracleだと
あたりを発行してからバックアップ実行ですね. これによりデータベースの更新操作がバッファリングされ, バックアップ中の一貫性が保証されますから.
最近のRDBMSは基本的にこうしたランタイムバックアップ機能を持っていますから, ファイルシステムのスナップショット機能は, それほど有効ではないですね. しかもRDBMSではデータ格納先として大きめのファイルを使いますから, スナップショットを取ってもほとんどの場合直ちに更新がかかって実データのコピーが作られることになりますし.
ファイルシステムスナップショットが有効なのは, 比較的小さめのファイルが数多く有って, しかもその多くはあまり更新されないというような場合でしょう.
Re: (スコア:0)
まぁ、そうじゃないと電源故障したらDBも死にましたってことになっちゃうからね
Re:APFS のタイムスタンプは 1 ナノ秒単位 (スコア:1)
vssやdedupの実装を見るとNTFSはもう限界ですよ。
Windowsは仮想メモリマネージャ、キャッシュシステム、ファイルシステムが
密に連携しすぎてNTFSと心中する選択肢しかないように見えます。
Re: (スコア:0)
そう思い込みたいのだろうが、以前からWindowsにはFAT32とNTFSが併存しているうえに、
つい最近ReFSという新ファイルシステムが導入されているという事実があってだな。
Re: (スコア:0)
新機能はNTFSにしか実装されないとか普通にあるのでReFSは用途限定で作っただけにしか見えません。
それとNTFSへの新機能はTxFが最後でそれ以降はフィルタドライバで無理やり実装されているので
NTFSは改造していないし機能追加もしていません。
Re: (スコア:0)
Re: (スコア:0)
マイクロソフトはNTFSと心中するというよりNTFSをフランケンのように継ぎ接ぎでもなんでもいいから改造する気
Re: (スコア:0)
Linuxのext4はナノ秒単位らしいです。
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout [kernel.org]
> the upper 30 bits are used to provide nanosecond timestamp accuracy.
Re: (スコア:0)
exFAT って仕様上は 10 ミリ秒単位なのかもしれないけど、Windows(のエクスプローラ)では相変わらず 2 秒単位(偶数秒単位)管理なような……。
NTFS と同じ感じで使えるのかと思ったらやっぱり 2 秒ずれるじゃないですかー、やだー!