E.L.E.M.E.N.Tでは、より効率的にデータを管理するために、独自にファイルシステムを構築しています。
今回は、このファイルシステムについて少し解説したいと思います。

この独自ファイルシステム(以後、FS)は、以下の機能を持っています。

  1. 同一データ統合機能
  2. 多機能階層構造
  3. リンク機能
  4. 自動キャッシュ管理機能

1.同一データ統合機能
たくさんのプロジェクトが制作される以上、それぞれのプロジェクトに全く同じファイルを使いまわすという事が起こり得ます。
同じファイルを複数保存するとディスク容量を無駄にしてしまいますので、同一データは1つだけ保存して、それを参照という形で使いまわすことで、見た目は複数の同一ファイルに見えても、実際に使われているのは1つ分の容量だけになります。

2.多機能階層構造
通常のファイルシステムは、ファイルとディレクトリに分かれていて、それぞれ、データを格納する、ファイルを格納する、ことしかできません。
しかし、このFSはファイルとディレクトリの機能が1つにまとまっています。
なので、一般的なファイルシステムで例えると「フォルダそのものにデータを格納する」ということができます。
このファイルとディレクトリを統合したものをFSでは「ノード」と呼びます。
また、各ノードで、データや子ノードの格納を個別に制限したりすることもできます。

3.リンク機能
一般的ファイルシステムには、「ショートカット」「シンボリックリンク」「ジャンクション」「ハードリンク」などという機能を持つものがあります。
FSにもこの機能があります。
FSでは、このような機能を「データリンク」「コレクションリンク」と言います。
前者はデータのリンクで、後者はディレクトリのリンクです。
これらのリンクで結合されたデータやディレクトリは、一方を変更すると他方にも変更が適用されます。

4.自動キャッシュ管理機能
1の「同一データ統合機能」では、同一データを参照で管理すると説明しました。
しかし、参照元がすべて削除された場合は、データは使われなくなります。
しかし、FSは孤立したデータを削除せず一時的に保存しておきます。
これをキャッシュと言います。
そして、再び同一データが登録された場合はキャッシュを再利用するので、登録が容易になります。
また、オンラインモードを使う場合、プロジェクトデータのダウンロードが必要になった時、既にキャッシュにデータがあればダウンロードを省略できます。
もちろん、参照されなくなった不要なキャッシュデータを手動で完全削除することもできます。
その場合は次回必要になった時に自動で再登録されます。