削除は必要なのか?
私はプログラムを組む時、Gitを使う。
家ではTimeMachineで1時間ごとにバックアップされている。
iCloudを介して、Mac, iPhone, Apple Watchで色々な物を共有している。
どの機器が何時壊れても、データが消える恐れが無い。
とても安心だし、要らない物は心置きなく捨てられて、スッキリする。
ユーザから見えなくする事は必要だが、システムとして「削除」する事は要らないのではないだろうか?
追記型ストレージの紹介
Plan9のファイルサーバは WORM(Write Only Read Many)で、追記型光ディスクが主体だ。
HDDもメモリも単なるキャッシュとして動作する。
「追記型」と言う事は消えない。新しいファイルを古いファイルの手前に置いて、見えなくする方法を取っている。
新しいファイルを退ければ、古いファイルが見える、Docker Imageの様なレイヤ構造になっている。
Plan9は、計算サーバなど現在のクラウドの基本概念を作った分散OSだが、追記型ストレージはまだ一般的になっていない。
余談だが、Unicodeもこのプロジェクトから生まれている。
システムには履歴データが必要ではないだろうか?
フォルダやファイル単位でのバックアップや、追記による履歴データの保存を見てきた。
さて、私たちが開発しているシステムではどうだろう?
相変わらずデータは上書きされている。
過去の経緯は消え去り、今現在が刻々と変更されているのではないだろうか?
一度起こった現象は二度と再現できず、ユーザーが「そんな事やっていない」と言うのをなんとかログから探してはいないだろうか?
ユーザのフルデータバックアップではなく、差分データバックアップが欲しいのではないだろうか?
追記型差分ストレージを作って見ないか?
現在の安価な大容量ストレージと、分散環境のノウハウを使えば、追記型で差分(履歴)を使ったストレージのサービスやフレームワークを作れる環境が整っていると思う。
もちろん、排他や整合性は考えなくてはならないので、簡単ではないと思う。
しかし可能性を追うのは楽しいし、壁にぶち当たらなくては限界もわからない。
一緒に壁にぶち合ったって見てもらえないだろうか?
自己組織化ストレージも欲しくないか?
発展型として、自己組織化ストレージも作ってみたい。
システムが自分で判断して、効率の良いデータの置き場所やサービスの構成を採ってくれる仕組みも可能ではないだろうか?
ここまで来て、やっとコンピュータの本来の力が発揮できるのではないか、と思っている。