# HG changeset patch # User matac42 # Date 1707811975 -32400 # Node ID b2a541a2c178d5c6c6905c107a30ae661497ee77 # Parent 8e84b98cc6c88d2b7749913ccfc18b1d806cabd6 create slide & poster diff -r 8e84b98cc6c8 -r b2a541a2c178 Paper/master_paper.pdf Binary file Paper/master_paper.pdf has changed diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/Makefile Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,3 @@ +build: + marp template.md --theme cr.css + open template.html \ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/README.md Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,15 @@ +## 使用方法 + +基本的には`Marp for VSCode` Extensionを使用する + +Extensionをインストール後、次のVSCodeの設定を書き込む。 +テーマのパスは環境によって違うかもしれないので確認する。 +おそらく、VSCodeで開いているディレクトリからの相対パスを入れれば良い。 +```json + "markdown.marp.exportType": "html", + "markdown.marp.themes": ["template/cr.css"] +``` + +## CLIでの使用方法 + +Makefileを作成してある \ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/cr.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/cr.css Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,30 @@ +/* @theme cr */ + +@import 'default'; + +section { + background-image: url('./logo.svg'); + background-repeat: no-repeat; + background-position: right 2rem bottom 0.6rem; + background-size: 12%; +} + +h1 { + color: #828db2; + font-size: 2.1rem; +} + +h2 { + background-color: #828db2; + color: #fff; + padding: 0.3rem; + font-size: 2.1rem; +} + +p { + font-size: 1.3rem; +} + +ul, ol { + font-size: 1.2rem; +} diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/cd.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/cd.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
get
key: name->value (filename)
get...
get
key: gearsDirectory->INodeNumber
get...
inode tree
inode tree
index tree
index tree
key: name->value (filename)
value: gearsDirectory->INodeNumber
key: name->value (filename)...
key: gearsDirectory->INodeNumber
value: newDirectory
key: gearsDirectory->INodeNumber...
gearsDirectory->currentDirectory = newDirectory
gearsDirectory->currentDirectory = newDirecto...
if exist
if exist
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/cgdg.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/cgdg.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
CodeGear
CodeGear
DataGear
DataGear
CodeGear
CodeGear
DataGear
DataGear
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/context.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/context.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
DataGear
DataGear
DataGear
DataGear
Context
Context
CodeGear
CodeGear
1.Output
1.Output
stubCodeGear
stubCodeGear
2.InputDataGearとして参照
2.InputDataGearとして参照
2.OutputDataGearのpointerを取得
2.OutputDataGearのpo...
CodeGear
CodeGear
4.Output
4.Output
3.goto
3.goto
DataGear
DataGear
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/copy_alloc.drawio --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/copy_alloc.drawio Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,1 @@ +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 \ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/copying-gc.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/copying-gc.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
Memory
Memory
Memory
Memory
Linked Data
Linked Data
Unlinked Data
Unlinked Data
Linked Data
Linked Data
Unlinked Data
Unlinked Data
Copy
Copy
GC
GC
Linked Data
Linked Data
Unlinked Data
Unlinked Data
Linked Data
Linked Data
Backup
Backup
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/data-access.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/data-access.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
Memory
Memory
Disk
Disk
Data
Data
Data
Data
Offset Conversion
Offset Conver...
Data Access
Data Access
Disk? Memory?
Disk? Memor...
to Memory
to Memory
to Disk
to Disk
Meta Level
Meta Level
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/disk-memory.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/disk-memory.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
Memory
Memory
Data
Data
Data
Data
Disk
Disk
Offset Conversion
Offset Conve...
Meta Level
Meta Level
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/inode.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/inode.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
2. inode tree
2. inode tree
1. index tree
1. index tree
key: filename
value: inum
key: filename...
get
key:filename
get...
get
key: inum
get...
key: inum
value: inode pointer
key: inum...
inodeFile TypePermission...
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/ls.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/ls.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
get
key: gearsDirectory->INodeNumber
get...
get
key: name->value (filename)
get...
inode tree
inode tree
index tree
index tree
key: name->value (filename)
value: gearsDirectory->INodeNumber
key: name->value (filename)...
key: gearsDirectory->INodeNumber
value: newDirectory
key: gearsDirectory->INodeNumber...
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/meta_cg_dg.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/meta_cg_dg.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,593 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Produced by OmniGraffle 7.19.4\n2018-02-12 15:33:34 +0000 + + Canvas 1 + + + Layer 1 + + + + + + + + + + Meta Data Gear + + + + + + + + + Meta Data Gear + + + + + + Code Gear + + + + + Data Gear + + + + + + + + Data Gear + + + + + + + + MetaCode Gear + + + + + Code Gear + + + + + Data Gear + + + + + + + + Data Gear + + + + + + + + MetaCode Gear + + + + diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/mkdir.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/mkdir.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ + + + +
put
key: name->value (filename)
value: gearsDirectory->INodeNumber
put...
put
key: gearsDirectory->INodeNumber
value: newDirectory
put...
inode tree
inode tree
index tree
index tree
inode tree
inode numberをkeyとし
inodeのpointerをvalueとして持つ
inode tree...
index tree
filenameをkeyとし
inode numberをvalueとして持つ
index tree...
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/nondestructive_tree_modification.png Binary file marp-slide/figs/nondestructive_tree_modification.png has changed diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/test.drawio --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/test.drawio Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/test.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/test.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,1 @@ +
DataGear
DataGear
CodeGear
CodeGear
DataGear
DataGear
CodeGear
CodeGear
Viewer does not support full SVG 1.1
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/figs/transaction.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/transaction.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,1 @@ +
key = a
key = a
a
a
Context
Context
A
A
B
B
C
C
Text is not SVG - cannot display
\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/logo.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/logo.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,683 @@ + + + +image/svg+xml \ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/slide.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/slide.html Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,404 @@ +
+

Gears OSのファイルシステムとDB

+ +

琉球大学 理工学研究科 知能情報プログラム
+河野研究室

+

又吉 雄斗, 佐野 巧曜, 河野 真治

+
+
+

システム全体の信頼性を上げたい

+
    +
  • システムの構成要素全体の信頼性を上げる必要がある +
      +
    • アプリケーション
    • +
    • OS
    • +
    • ファイルシステム
    • +
    • DB
    • +
    • メモリとSSD
    • +
    • 分散ノード
    • +
    • ネットワーク
    • +
    +
  • +
+
+
+

Gears OSを使って実現する

+
    +
  • CodeGear +
      +
    • 処理の単位
    • +
    +
  • +
  • DataGear +
      +
    • データの単位
    • +
    +
  • +
  • metaGear +
      +
    • データの整合性
    • +
    • 資源管理
    • +
    +
  • +
+
+
+

信頼性を上げる方法

+
    +
  • 証明 +
      +
    • GearsAgdaを使ってinvariantを証明する
    • +
    +
  • +
  • テスト
  • +
  • モデル検査
  • +
  • システムの構成要素全体にこれらの方法を適用したい
  • +
  • 既存システムの信頼性における問題点の解決
  • +
+
+
+

Continuation based C

+
    +
  • Cの下位言語である
  • +
  • 処理の単位 CodeGear
  • +
  • データの単位 DataGear
  • +
  • ノーマルレベルとメタレベルの切り分け
  • +
  • gotoによる軽量継続
  • +
+
+
+

CodeGearとmetaCodeGearの関係

+
    +
  • ノーマルレベルとメタレベルの存在
  • +
+

+
+
+

Context

+
    +
  • Gears OS上全てのCodeGear,DataGearの参照を持つ
  • +
  • OS上の処理の実行単位 +
      +
    • プロセスに相当
    • +
    +
  • +
  • Gearの概念ではmetaDataGearに当たる
  • +
  • ノーマルレベルから直接参照されない +
      +
    • metaCodeGearから参照される
    • +
    +
  • +
+
+
+

3種類のGears OS

+
    +
  • GearsAgda(Agda) +
      +
    • 形式手法による信頼性の向上
    • +
    +
  • +
  • Gears OS(CbC) +
      +
    • ユーザーレベルタスクマネージメント
    • +
    +
  • +
  • CbC x.v6 ← 今回の実装対象 +
      +
    • スタンドアロンOS
    • +
    +
  • +
+
+
+

CodeGear遷移の流れ

+

+
+
+

OSとFSとDBがバラバラ

+ +
    +
  • 全体を組み合わせた時の正しさが怪しい
  • +
  • DBは実はファイルの上に作られていたり +
      +
    • ファイルに対する書き込みのatomicityが保証されてない
    • +
    +
  • +
  • ファイルシステムが提供してるトランザクションが明快でない
  • +
  • それぞれ別々なトランザクションがある
  • +
+
+
+

FSとDBをRedBlackTreeで統一

+ +
    +
  • 両方ともRedBlackTreeで実装する +
      +
    • 組み合わせを考える必要がなくなる
    • +
    • 証明のしやすさ
    • +
    • 本質的な役割は一緒
    • +
    • トランザクションが統一化される
    • +
    +
  • +
+
+
+

ストレージ階層の多様性

+
    +
  • HDDのような物理的制約(セクター,トラック)が無くなりつつある
  • +
  • HDDはログをリニアに書き込んでいく用途に向いている
  • +
  • NVMe, MRAMはメモリに近い特性を持つ
  • +
+ +
    +
  • 個々のデバイスの持続性よりも多数デバイス上のコピー
  • +
  • イレイジャーコーディング
  • +
  • メモリとディスクみたいな分け方が時代遅れに
  • +
+
+
+

ストレージ階層とアプリケーション

+
    +
  • ファイルシステムやDBが多様なストレージ階層に対応していない +
      +
    • 大容量メモリ
    • +
    • NVMe
    • +
    • SSD
    • +
    • RAID
    • +
    • テープ
    • +
    +
  • +
+
+
+

実装がブロックベース

+
    +
  • B-Treeによる実装 +
      +
    • ディスクのブロックアクセスが前提
    • +
    • ランダムアクセスが前提となっていない
    • +
    +
  • +
  • ランダムアクセスの場合B-Treeを用いる利点は少ない
  • +
  • 証明しやすいRedBlackTreeを用いることが考えられる
  • +
+
+
+

データの持続性

+ +
    +
  • オンメモリーなRedBlackTree
  • +
  • SSD上のコピー +
      +
    • ログ的にコピーしていく
    • +
    • Copying GC
    • +
    • メモリ上とSSD上のデータ構造を統一
    • +
    +
  • +
  • 非破壊的なRedBlackTree
  • +
  • スキーマ
  • +
+
+
+

非破壊的なRedBlackTree

+ +

+
+
+

スキーマの問題

+ +
    +
  • 実は頻繁に変更される +
      +
    • なので動的な属性名を設定されたりする
    • +
    • DB理論が役に立たない
    • +
    • 過去のDBとの互換性がない
    • +
    +
  • +
  • 扱うデータはjsonなどで,もはや第一正規形でない
  • +
+
+
+

Gears OSにおけるスキーマ

+
    +
  • ファイルシステムには型が存在しないがスキーマは必要
  • +
  • DBの各テーブルのレコードの型定義
  • +
  • Contextに登録されているDataGearの型
  • +
  • キーを用いたDataGearの参照
  • +
  • RedBlackTreeはDBのテーブル
  • +
+
+
+

DBのトランザクション

+
    +
  • テーブルのキーはRedBlackTreeのkey
  • +
  • トランザクションはテーブルのルートの置き換え
  • +
  • 複数の書き込みポイント
  • +
+
+
+

インピーダンスミスマッチ

+
    +
  • プログラムで使用するデータ構造 +
      +
    • queue
    • +
    • stack
    • +
    +
  • +
  • DBにはリストやキューは入らない +
      +
    • 第一正規形でないから
    • +
    +
  • +
  • データ構造を持続的にしたい +
      +
    • なのでファイルシステムのような柔軟性が必要
    • +
    +
  • +
+
+
+

RedBlackTreeベースのファイルシステム

+
    +
  • i-node番号をkeyにする
  • +
  • inodeにはDGのリストが入る
  • +
  • 持続性 +
      +
    • オンメモリーなRedBlackTree
    • +
    • SSD上のコピー +
        +
      • ログ的にコピーしていく
      • +
      +
    • +
    +
  • +
  • 正しくスキーマに対応しているかどうか +
      +
    • 違反しても良い
    • +
    +
  • +
+
+
+

バックアップとロールバック

+ +
    +
  • ロールバックの必要性 +
      +
    • トランザクションの失敗
    • +
    • システムクラッシュ
    • +
    +
  • +
  • SSDのログからロールバックする +
      +
    • Copying GCによるバックアップ
    • +
    • ルートノードがデータのバージョン
    • +
    +
  • +
+
+
+

まとめf

+
    +
  • すべてRedBlackTreeで構成されている +
      +
    • 検証はRedBlackTreeだけで良い
    • +
    • invariantで証明する
    • +
    • トランザクション統一化
    • +
    • 持続性
    • +
    • 柔軟なスキーマ
    • +
    +
  • +
  • バックアップとロールバック
  • +
+
+
+

信頼性の保証

+ +
    +
  • RedBlackTreeの変更の正しさ
  • +
  • トランザクションの正しさ
  • +
  • アクセス権限の正しさ
  • +
  • SSDへのコピーの正しさ
  • +
  • 正しくスキーマに対応しているかどうか +
      +
    • 違反しても良い
    • +
    +
  • +
+
+
+

色々問題はある

+
    +
  • 非破壊ツリーのコピーはメモリ量的にダメではないか
  • +
  • トランザクションが正しく表現されているか +
      +
    • RBTreeのルート入れ替えのみ
    • +
    +
  • +
  • 証明できるか
  • +
  • 後方互換性
  • +
  • メモリプロテクションなどの既存のシステムを使わなくて良いか
  • +
+
+
+

今後の課題

+ +
    +
  • データクエリ言語 +
      +
    • SQL
    • +
    • SQLより良いものが欲しい +
        +
      • ファイルシステムとDBの両方で使える
      • +
      +
    • +
    +
  • +
  • 時系列データ +
      +
    • データ圧縮
    • +
    +
  • +
  • スタンドアロンなDB +
      +
    • ポータビリティ
    • +
    +
  • +
+
+

全体の流れ +- 目的 +- 基礎概念 +- 問題提起 -> 解決 の繰り返し +- 評価

スピーカーノート

目的

ここからGears OSの基礎概念だと明示する

ここまでがGears OSの基礎概念だと明示する

問題提起1 統一化

解決1

これでFSとDBのシステムは統一化されるが +まだバラバラになっている部分はある

問題提起2 +持続性 メモリやディスク,SSDは別々の仕組みをとっている +最終的に全てRBTreeで表現してしまおうという話に持っていく

ssdはmemoryに近い性質を持っている

シークread write

- メモリやディスク,SSDは別々の仕組みをとっている + - 持続されていない

問題提起2

階層を分けて考えてしまうから複雑になる

問題提起2 B-treeがよく用いられるがそうでなくて良いの?という感じ

解決2 +ディスク上とメモリ上のデータ構造が一緒という話を入れる

解決2 +データ構造を統一化し,さらに非破壊とすることで持続性の向上へ繋げる

問題提起3 スキーマ +最終的にFSのような柔軟性を持ち合わせることで解決

ファイルシステムにも型は必要

スキーマ必要だ. +Gears OSではこのように表現できるね. +でも変更されちゃうのはどうするの

本システムでテーブルはこのように表現される->問題提起へ

解決3 解決したいが...とone step置く

本解決3

SSD上のコピーという言葉が出てたよね +そのままコピーをSSDに置いているので,それをバックアップとして使える

一旦解決したことをまとめて,その後評価

このような正しさを確認していく必要があるし, +他にも問題はある(次のスライド)

- スタンドアロンとは + +- 異なる計算機アーキテクチャ +- 異なるエンコード +- 異なる分散ノード

\ No newline at end of file diff -r 8e84b98cc6c8 -r b2a541a2c178 marp-slide/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/slide.md Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,182 @@ +--- +marp: true +theme: cr +paginate: true +--- + + + +# GearsOSのファイルシステムにおける GCとレプリケーション + + + +琉球大学 理工学研究科 知能情報プログラム +河野研究室 + +又吉 雄斗 + +--- + + + +## システム全体の信頼性を上げたい + +- システムの構成要素全体の信頼性を上げる必要がある + - アプリケーション + - OS + - ファイルシステム + - DB + - メモリとSSD + - 分散ノード + - ネットワーク + +--- + +## Gears OSを使って実現する + +- CodeGear + - 処理の単位 +- DataGear + - データの単位 +- metaGear + - データの整合性 + - 資源管理 + +--- + +## 信頼性を上げる方法 + +- 証明 + - GearsAgdaを使ってinvariantを証明する +- テスト +- モデル検査 +- システムの構成要素全体にこれらの方法を適用したい +- 既存システムの信頼性における問題点の解決 + +--- + + + +## Continuation based C + +- Cの下位言語である +- 処理の単位 CodeGear +- データの単位 DataGear +- ノーマルレベルとメタレベルの切り分け +- gotoによる軽量継続 + +--- + +## CodeGearとmetaCodeGearの関係 + +- ノーマルレベルとメタレベルの存在 + +![w:1100](figs/meta_cg_dg.svg) + +--- + +## Context + +- Gears OS上全てのCodeGear,DataGearの参照を持つ +- OS上の処理の実行単位 + - プロセスに相当 +- Gearの概念ではmetaDataGearに当たる +- ノーマルレベルから直接参照されない + - metaCodeGearから参照される + +--- + +## 3種類のGears OS + +- GearsAgda(Agda) + - 形式手法による信頼性の向上 +- Gears OS(CbC) + - ユーザーレベルタスクマネージメント +- CbC x.v6 ← 今回の実装対象 + - スタンドアロンOS + +--- + +## GearsOSとGearsAgda + +--- + + + +## CodeGear遷移の流れ + +![w:1100](figs/context.svg) + +--- + +## 非破壊RedBlackTreeによる構成 + +--- + +## GearsFilesystem + + +--- + +## 多重性やメモリ管理に必要な機能がない + +--- + +## copyRedBlackTreeの実装をした + +--- + +## copyRedBlackTreeができると何ができるようになるか + +多重性やメモリ管理に関する機能を追加できる +GC(defragmentation) +レプリケーション +バックアップ + +--- + +## GCによる非破壊RedBlackTreeの増大問題 + +--- + +## Tree InterfaceのAPIとして実装 + +--- + +## コピーのアルゴリズム + +--- + +## アロケーション部分 + +--- + +## swap + +--- + +## 評価 + +非破壊RedBlackTreeの増大抑制できる +コピーするだけなので木が持続的 +課題点 + 同一Contextへコピーしている + +--- + +## 今後の研究方針 + +--- + +## まとめ + +copyRedBlackTreeを実装した +それにより多重性を確保できるようになった +多重性はシステムの信頼性を向上させる +非破壊RedBlackTreeの増大抑制により実用的に diff -r 8e84b98cc6c8 -r b2a541a2c178 mindmaps/gears_fs_db.mm --- a/mindmaps/gears_fs_db.mm Mon Feb 12 17:54:36 2024 +0900 +++ b/mindmaps/gears_fs_db.mm Tue Feb 13 17:12:55 2024 +0900 @@ -1,6 +1,6 @@ - + @@ -974,7 +974,19 @@ - + + + + + + + + + + + + + @@ -1072,7 +1084,7 @@ - + @@ -1088,6 +1100,14 @@ + + + + + + + + @@ -1126,7 +1146,7 @@ - + @@ -1147,7 +1167,7 @@ - + @@ -1162,7 +1182,7 @@ - + @@ -1229,7 +1249,7 @@ - + @@ -1246,5 +1266,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 8e84b98cc6c8 -r b2a541a2c178 poster/matac-poster.graffle Binary file poster/matac-poster.graffle has changed