メインコンテンツへスキップ

ファイルの重複を簡単に解消する!Hyperspaceの魅力とは

·2 分
2025/02 ファイル管理 データ整理 ユーティリティ MacOS ストレージ最適化

ファイルの重複を簡単に解消する!Hyperspaceの魅力とは

引用元:https://news.ycombinator.com/item?id=43173462

jonhohle 2025-02-25T23:50:20

前に’dedup’ってコマンドラインユーティリティ作ったんだけど、同じことしてた。ドライランモードもあって、賢く一番良いクローンソースを選ぶんだ。ハードリンクや他のクローンも理解して、メタデータを保って、HFS圧縮ファイルにも対応。自分のデータは壊してないけど、ファイルシステムツールはリスクあるから注意してね。

jonhohle 2025-02-26T04:23:34

自分のディスクイメージやバイナリを扱うワークスペースで試してみた。デフォルトでは全ファイルをスキャンせず、許可リストにあるファイルだけをスキャン。許可リストの構成から、Hyperspaceはファイルの内容を理解しないといけないみたいで、ユーザーにはわかりにくい。サイズ制限を外すと、スキャン数や重複計算が変わるし、Hyperspaceは67,309ファイルをスキャン。スキャン時間は50秒で、dedupは14秒で終わる。

karparov 2025-02-26T07:02:17

このアプリにこんなに時間かける人がいるのが少し驚き。クローズドソースで、値段も不明、期間限定かサブスクリプションで、詳細も不明なのに。

codemusings 2025-02-26T10:16:49

Johnはポッドキャストで、アプリをオープンソースにしたり無料にしてサポートリクエストの山に対応したくないって何度も言ってる。彼のアプリは彼自身のニーズを満たすもので、利益のためじゃなくて、ユーザーのフィードバックを管理しやすくするために販売してるんだよ。

0x0203 2025-02-26T11:35:42

ソフトウェアのライセンスや配布方法について批判しないけど、最近サポートの負担を理由にクローズドソースや販売モデルにするケースが多くて、オープンソースとオープン開発を混同してないか疑問に思ってる。オープンソースプロジェクトは誰でもバグ報告やプルリクエストを受け付ける必要はないし。

cmckn 2025-02-26T15:07:13

> SQLiteの開発者は、McAfeeのせいで電話が殺到したって有名だよね。バグ報告を受け付けないのは難しいよ。

wubrr 2025-02-26T16:34:44

> アプリをオープンソースにしたらサポートリクエストに対応する必要があるの?全然そうじゃないでしょ。

notatallshaw 2025-02-26T18:47:34

> ほとんどの人気オープンソースソフトのメンテナは、サポートリクエストを完全に無視するなんてできない。彼はユーザーをサポートしつつ収入を得たくてこうしてるみたいだね。

cxr 2025-02-27T15:12:22

> GitHubが混乱を引き起こして、オープンソースは今やGitHubの一部とみなされてる。解決策は、Windowsを使わなければWindows関連の問題を避けられるのと同じ。GitHubを使わなければいいんだし。

hitekker 2025-02-28T19:37:30

オープンソースには多くの利点があるけど、スパムやポリティクス、ドラマもあるし、そういったネガティブな面は経験したことがない人には見えないよ。メインテナーバーンアウトはリアルだから、良いソフトウェアを作り続けたいならJohnの選択を尊重するよ。

wubrr 2025-02-26T20:55:47

”人気のオープンソースソフトウェアを管理したことがある人なら、サポートについての問い合わせを無視するか、削除しなきゃいけないなんて、あり得ないよね”

karparov 2025-02-26T16:55:44

”それは BS 理由だと思う。問題を解決したくないなら、開いてる課題を全部無視すればいいだけじゃん。コミュニティができて問題を直すなら、そのコミュニティが対応するよ”

notatallshaw 2025-02-26T18:43:05

”ポッドキャストを聴いた感じだと、人気になったら彼が作業を続ける価値が欲しいみたいなんだよね。人気が出ると多くの問題も発生するから、収入が必要ってことだと思う”

karparov 2025-02-26T20:39:08

”そう思うなら、どこかおかしいと思う。ユーザーからのバグ報告は貴重だし、自分でも使うなら直したいと思うはずだ。ソフトウェアを有料化するのは、テストの目撃者を減らすだけだから、いいことはないよ”

least 2025-02-27T08:32:26

”ソフトを買った人がバグ報告をする義務なんてないし、報告すればバグ修正につながる有益さがあるのに。それだとお互いにとってのメリットだよ”

cxr 2025-02-27T15:29:23

”GitHubのユーザーベースの特性を理解するのは大事だけど、それは他のプラットフォームでも共通だから、それぞれの使い方を考えてるんだと思う”

least 2025-02-27T23:49:07

”ユーザーが自由にフィードバックを送れるようにすると、ノイズが増えてしまう。課金している人だけからのフィードバックなら、経済的な理由から質が低くなるかもしれないけど、精神的負担は減るはずだ”

least 2025-02-28T15:42:11

”飲食店なら選ぶだけで済むけど、問題トラッカーは開発者が責任を持って対応しないといけない。フィードバックを受けることは重要だけど、膨大な労力がかかるから、必ずしもオープンである必要はないんだ”

cxr 2025-03-01T22:23:11

”問題トラッカーには、開発者が対応する必要があるから、ノイズを減らすのも重要なこと。全てのフィードバックを受けるのが理想かもしれないけど、単独開発者にはその負担が大きすぎる”

least 2025-03-05T00:18:20

はい、そうです。全く問題が無いというわけではないですが、課題トラッカーを全く見ない以外は問題が起きないと思います。なんでそう思うんですか?

もっとコメントを表示(1)
wubrr 2025-02-26T21:11:19

>”閉じたソースのアプリにおいてそんなことを言うのは変だ”。
確かに、おかしなこと言ってるなって思いました。でも、私はオープンソースではなく、クローズドソースアプリを作る人に共感します。

notatallshaw 2025-03-03T19:23:26

>”閉じたソースのアプリにおいてそんなことを言うのは変だ”。
私の意図は、オープンソースでなくクローズドソースのアプリを作ることに対する同情を表現したかっただけです。多分、誤解があったんでしょうね。

crowselect 2025-02-26T22:58:51

明示的な金額が見えないってこと?アプリストアのページの下にいけば、すべてのアプリ内課金の価格が載ってるよ。アプリストアの価格はローカライズされてるし、ブログ記事に「$10」と書いてても世界中にはドルを使わない人がいるから、混乱するよね。

karparov 2025-02-28T06:28:53

アプリを見たというエントリーをAppleのDBに作りたいなら、簡単に見つけられるよ。ローカル通貨の件について言うと、私はヨーロッパ在住でスペインのIPを使ってるけど、表示される価格はUSDだよ。あと、Appleのアプリストアには’Hyperspace’って名前のアプリがいくつかあるよ。

kccqzy 2025-02-26T15:41:37

ジョン・シラキューサが有名だからこそじゃない?無名のデベロッパーなら、ここまで注目されなかったと思う。彼がOSの詳細なレビューを書くことからは多くを学んだからこそ、注目される理由があるんだよね。

gurjeet 2025-02-26T05:31:01

このユーティリティを作ってくれてありがとう!
重複したほぼ同じファイルがあるPostgresの開発ディレクトリにかけたら、約1.7GBも節約できたよ。プロジェクトにはライセンスが無いみたいだけど、もしよかったら、自分の選んだライセンスを付けてほしいな。感謝の気持ちとして、インストール手順を少し改善してプルリクエストを作ったから見てみて!

jonhohle 2025-02-27T15:58:19

プルリクエストありがとう。ファイルは個別にライセンスされているけど、LICENSEファイルも追加したよ。

LVB 2025-02-26T00:39:31

試してみたけど、ちゃんと動いた!この技術の可能性に気づくまで、特定のファイルタイプの重複がどれだけあるか知らなかったよ。node_modulesでは同じjsファイルが50コピー以上置き換わることもあったんだ。まだ「プレリリース」でGHスターも少ないけど、バグがあったら怖いなってちょっと心配。

jonhohle 2025-02-26T01:32:01

家族の写真や仕事の文書に使ってるけど、特に問題は起きてないよ。バックアップできない場合はチェックサムを作って、それで比較してる。強調したい点はブロックの破損が起きること。複数コピー持ってるから、安心してデデュープしてるけど、注意が必要だね。

ncann 2025-02-26T03:52:32

あんまり関係ないけど、node_modulesの重複問題がpnpmを使う理由だと思う。pnpmは一つのグローバルパッケージリポジトリを使って、必要に応じてnode_modules内にリンクを作るんだよね。

actinium226 2025-02-26T02:43:51

素晴らしいドキュメントだね。特にmakeがほぼ瞬時に実行されたのには驚いたよ。

jonhohle 2025-02-26T05:42:29

ありがとう!FreeBSDとOpenBSDのドキュメントが好きなんだ。一つのプラットフォームだけをターゲットにして、システムライブラリだけだからビルドが簡単なんだよね。

Recursing 2025-02-26T14:54:47

https://news.ycombinator.com/item?id=38113396のコメントで代替案があるよ。私は過去にhttps://github.com/sahib/rmlintを使ったけど、特に不満はなかったかな。

bob1029 2025-02-25T16:32:57

Hyperspaceが他のアプリやmacOSとファイルの置き換えのタイミングを調整できない点が気になった。このプロセスをファイルシステムが自動で行わないのはなぜだろう?APFSで自動化することのデメリットは何だろうね。

taneliv 2025-02-25T16:54:43

ZFSはRAMを多く使うことがあるよ。ブロックレベルでやってるから、書き込みのたびに比較するブロックを多く管理しなきゃいけない。ファイルレベルでやれば資源が楽になるかも。

abrookewood 2025-02-25T20:33:30

構造的にはZFSについての記述が正しくないよ。複数のファイルが同じデータの部分を持つ場合、一つのコピーしか保存しないんだ。大きなファイルの一部を変更しても全体を書き換えるわけではないよ。

btilly 2025-02-25T21:39:59

バイトを変更する場合にはその通りだけど、バイトを挿入するとその後のブロックがすべて変わるから再書き込みが必要になる。ほとんどのファイルシステムにも当てはまるけどね。

karparov 2025-02-25T21:27:47

ファイル全体ではなく、ブロックが複製されるってことだね。GPは全体がコピーされるとは言ってないよ。

abrookewood 2025-02-26T07:27:31

”大きなファイルの1バイトを変更すると、ファイルシステムがファイルを再度複製しなきゃいけないから、結構なディスク活動になるんじゃない?”ってことだね。

taneliv 2025-02-26T07:29:46

ZFSのことを考えれば正しいけど、デデュープをファイル単位じゃなくてブロック単位で行うファイルシステムだと、変更に関わらずファイルが再度複製されちゃうよ。

もっとコメントを表示(2)
gmueckl 2025-02-25T17:07:06

ファイルは常にブロックやブロックスパンのリストとして表現されるんだ。理論的には個々のブロックをファイル間で部分的に共有できるけど、その分複雑になる。1バイトの変更でも影響を受けたブロックだけが複製されるから、ファイルサイズにかかわらず同じ時間がかかるってことだよ。

MBCook 2025-02-25T18:12:47

APFSは特定のAPIを使えばコピオンライトファイルシステムなんだ。ファイル全体に対してはそれを実行できるけど、1バイトでも変更したら自分の完全なコピーができちゃう。そこからこのプログラムが完璧な重複を見つけて、既存のファイルのコピーで置き換えるように動くんだ。

mintplant 2025-02-25T19:11:10

ファイルの1バイトを変更するだけで、その内容全体をコピーするスペースが足りないと、予期しないディスクスペース不足になるかもしれないね。

pansa777 2025-02-25T19:22:57

”複製されたファイルの1バイトを変えれば、ディスク上ではその1バイトだけが変更されるよ”って思ってるのは違うよ。多分、Linuxの近代的なファイルシステムのリフリンク機能みたいに動いてるんだろうね。macOSは初心者だけど、素晴らしいと思うよ!

jonhohle 2025-02-26T01:36:06

確かに、書き込みアプリケーションが変更されたブロックだけを書き込む場合はその通りなんだけど、VMツールはブロックを広範囲に書き込む可能性があるよ。残念ながら、ファイルが変更されるとどのブロックが共有されているかを確認するAPIはなかったはずだし、macOS 13ではそうだった。

MBCook 2025-02-25T20:33:55

コピオンライトがファイルレベルかブロックレベルかは分からないけど、APFSは色々なスペースに関連する注意点があるね。たとえば、パーティションをオーバーコミットできるし、30GBのファイルがあっても実際のデータは数百Kから30GBまで変わる可能性がある。面白い世界だよ!

tonyedgecombe 2025-02-25T20:30:51

”1バイト変えたら、自分の完全なコピーができる”って意見だけど、デルタを保存してるのかもね。

alwillis 2025-02-25T21:52:27

”これってそういう仕組みじゃないよ”って言いたい。何も削除はされない。既存のファイルのゼロスペースクローンを作るだけなんだ。

the8472 2025-02-26T10:31:01

ZFSのオンライン重複排除の制限についてだね。xfsやbtrfsはエクステントベースの重複排除を使ってオフラインでもできるから、メモリを使わず、ディスク上のメタデータも小さくなると思う。

amzin 2025-02-25T17:41:53

差分だけを保持するファイルシステムってあるのかな?面白そうだ。

rappatic 2025-02-25T17:55:00

同じこと考えてた!ファイルAとその変更点を持つ複製Bがあれば、Aが消えたときにBをそのまま使えるけど、B1とB2の複製があるとややこしくなるね。結局、A自体をディスクに残さないといけないし、複製を更新するのが大変になる可能性もあるんだ。面白いアイデアだけど、実用性は疑問かも。

abrookewood 2025-02-25T20:39:33

ZFSはファイルレベルじゃなくてブロックレベルで重複排除してるから、ファイル間の差分を追わずに済むみたい。ZFSの重複排除には問題もあったけど、新しいバージョンは面白そう! >“ZFSの重複排除について詳しくはここ”

UltraSane 2025-02-25T18:55:45

VASTストレージは似たようなことをやってるよ。ほとんどのストレージアレイが同じブロックをハッシュで識別して一度だけ保存するのに対して、VASTはコンテンツ認識ハッシュで似たブロックのハッシュも似るんだ。ユニークなハッシュごとに参照ブロックを保存し、新しいデータが入ると似たブロックを使って差分を作成するのが特徴だね。

OnlyMortal 2025-02-27T20:11:29

興味深いね。通常、Rabinフィンガープリンツを使って同じデータのチャンクを特定するけど、似たブロックを見つけたり、そのサブリフレーミングを考えるのは考えたこともなかったな。

abrookewood 2025-02-25T20:36:23

ZFSの重複排除の主な利点は、プールのサイズやディスク数、コストを大幅に削減できることだよ。例えば、同じブロックを持つファイルをサーバーが保存していれば、ほぼ追加のディスクスペースなしで数千から数百万のコピーを保存できるんだ。 >“これについて詳しくはここ”

p_ing 2025-02-26T17:00:17

ファイルシステムじゃないけど、NTFSを模倣しようとしているSharePointがコンテンツデータベース内で同じことをやってるよ。

Sesse__ 2025-02-26T15:39:12

これがLinuxの重複排除の標準APIだよ(btrfsやXFSで使われてる)。OSにお願いして重複を排除してもらうと、範囲をロックして同じか確認してから重複排除する仕組みなんだ。ユーザースペースのプログラムがファイルを壊すことはできないよ。

albertzeyer 2025-02-25T16:48:40

>この考えは、ファイルシステムがバックグラウンドで同じような重複排除プロセスを実行しない理由を考えさせるな。ZFSは実際にそれをやってるらしいよ。

pmarreck 2025-02-25T19:03:48

確かに、これは“高コスト”の構成だとされてて、特定の用途向けにしか向いてないんだ。メモリの要件が厳しいからね。

abrookewood 2025-02-25T20:40:41

そうそう、そのページでは最近の重複排除技術の改善も触れられてるから参考になるかも。

もっとコメントを表示(3)
pmarreck 2025-02-25T23:40:22

本当に?ZFSのこの機能を数年見てなかったから確認してみるよ。EDIT: これって“高速”な重複排除機能のこと?

p_ing 2025-02-25T16:54:04

Windows ServerでもNTFSやReFSボリュームに対してこれを行ってて、Hyper-VのVMでかなり効果的だったんだ。ストレージ使用量が約45%減ったよ。

borland 2025-02-25T18:11:24

うん、以前の職場ではファイルサーバーにWindowsビルドの出力を公開してて、同じ.NETやVC++ランタイムが約1000コピーあったんだ。でも、一回の保存で済んだから良かったよ。注意すべきは、Windows Serverの重複排除はバックグラウンドプロセスで、新しい重複ファイルが作成されても本当に重複してて余分なスペースを使う。だから、たまに背景プロセスが来て“回収”する感じで、Hyperspaceアプリのように。ただし、このプロセスはコストがかかるから、常時稼働してるわけじゃないし、スキャンするディレクトリを指定する必要があるんだ。実際に重複しないようにしたければ、ZFSのようなものが必要だね。

dylan604 2025-02-25T17:19:54

SHA-256以上のハッシュを使ってても、システムに削除判断を任せるのは心配だな。過去に重複排除に関わったこともあるけど、自分の書いたコードには自信がないからね。ファイルをハッシュで比較して、人間が照合するのはやったことがあるけど、実際には何も移動や削除は許されなかった。こういう不安を感じるのは悪いことじゃないと思う。

borland 2025-02-25T19:57:06

>このアプリが他の選択肢よりも2倍以上の値段なのが理解できる理由だね。どんな半端な開発者もSHA256でファイルのハッシュを計算して重複を共有クローンに置き換えるコードは書けるけど、それを信じるべきじゃない。著者のJohn Siracusaは長年のプロのプログラマーで、非常に綿密な性格の人なんだ。ATPポッドキャストを聞いてて、アプリは相当なテストを経てるよ。FAQページには安全性を確保するための追加措置がたくさん載ってるから、変更提案を確認できるしね。機能に対する料金ではなく、安全性への配慮に対して料金を払ってるんだ。このアプリは他のどのアプリよりも信頼できると個人的には思うよ。

lukeholder 2025-02-26T00:01:44

>Johnを信じるべきじゃなくて、アプリが世の中で一年過ごすのを待つのが一番いいよ。その間はハードドライブの空きスペースも十分あるし、急いで信じる必要はないね。

criddell 2025-02-25T20:55:37

まだ自分の関与なしに削除の決定をシステムに任せるのは心配だなぁ。>”リストを見て、自分がどれを削除するかレビューできるから、変更書き込みボタンを押すまでは慎重に考えられるよ。”

axus 2025-02-25T17:22:21

開発者に質問なんだけど、ユーザーのファイルが壊れた時の責任はどうなるの?

codazoda 2025-02-25T19:13:31

ほとんどのEULAはデータ損失について責任を否定して、ユーザーにバックアップを勧めてると思う。EULAを最近見てないけど。

nielsbot 2025-02-25T20:50:17

Disk Utility.appはディスクを独占的にアクセスさせながらOSを動かし続けるのか。どうやってやってるんだろう?

petercooper 2025-02-25T16:07:10

スキャンは無料で、得られる利益を見てから支払いってモデル、いいな。自分も7GB回収できたけど、あまり魅力的じゃなかった。

MBCook 2025-02-25T18:15:03

ポッドキャストで話してたけど、ユーザーは一度使ったら終わりってことが多いからサブスクリプションは理にかなってない。+ いったい月にどれだけの重複ファイルを作ってると思う?しばらくすると再度無料でスキャンできるしね。

brailsafe 2025-02-26T20:53:59

このデュプリケーションアプリの価値は、スペースの節約だけでなく、内容が整理されてないフォルダーの中に未整理のファイルが多くあること。なんとか整理したいけど、どれが重複してるかわからないってシナリオも多い。

mentalgear 2025-02-25T23:01:56

本当に自分は昔のソフトウェアがデフォルトでこうだったのを覚えてるのかな。もう人々はサブスクリプショントラップに慣れすぎて、新しいモデルだと思ってるとか?

petercooper 2025-02-26T13:33:08

90年代のシェアウェアみたいなモデルが懐かしいけど、今は開発者が基本的なアプリでも高い料金を請求してくるのには驚くね。

sejje 2025-02-25T17:33:53

この価格モデル、ほんといいよね。でも他のソフトでどうするかがもっとわかりやすかったらなぁ。価値を見出すまでに学習曲線があることが多いから。

jedbrooke 2025-02-25T21:05:12

この試用版は記憶してキャンセルしなきゃいけないやつとは全然違ってすごく新鮮だね。
>”仮想クレジットカードを使うといいよ、忘れたらchargesがブロックされる。”でも、ライセンスの値段ってウェブサイトで見つけられた人、いる?

xp84 2025-02-26T02:24:51

Mac App StoreのリストにはiOSと同じようにIAPのSKUが載ってるんじゃない?

petercooper 2025-02-26T13:34:17

そうだね。このアプリではまあまあクリアだけど、他のアプリではIAPのSKUが意味不明な説明のことが多いから、もうちょっとわかりやすくしてほしいな。

astennumero 2025-02-25T17:46:32

このアプリはファイルが同じかどうかを判断するアルゴリズム、何使ってるの?
hashとかビットバイビット比較とか興味深いアルゴリズムがたくさんあるけど、それぞれ欠点があるよね。大量のファイルに対して、最適な方法って何なんだろう?

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。