モデルの世界線
RubyはUnixのメンタルモデルを反映したLispに手続き言語としての構文糖衣をまぶしたもの
- File (Open/Read/Write/Close)-er
- Pipe : standard in , standard out : File discreptor
POST -> Router
|
V
Controller <-State-> Stateの永続化:RDBMS
| |
GET <---+ +--> Log : Fluented
RailsのDuck TypingはRPCでもよかった。microsevicesで。これをRubyのreflectionの黒魔術というかlast minutes (or lazy) monkey patchingでやる必然性は無い。少なくとも性能面では。
これはRubyの黒魔術とgreen thread (process)モデルの重さを差し引いた分が素直に出てくるはず。
OSのresourceは消える。ArchitectureのコアはRailsのままでいい。
POST -> Router (暗黙のsupervisor, job queue)
|
V
Controller(Worker) <-State-> Stateの永続化:RDBMS
| |
GET <---+ +--> Log : Fluented
問題はController (Worker)とsupervisor, clusteringがアーキテクチャの重点となってくるところ。
分割、それはworkerのinterfaceというだけではない。
- Scaleの切り口
- 冗長性、Robustnessの切り口-homeostasisのありかた
- split-brain
- 契約:ASIDと結果完全性(同時性と相対性)
ネットワーク通信のLatency, RTTがshared memoryに比して現状ではデカイということ。
-
Latencyの解消
- just in place computing
-
Storageの再定義
- PUとメモリの海
- storageやRDBMSは、問題の形によっては消えるかもしれない。PUとメモリ内のデータの配置がストレージそのもの
-
JITする>結果をFPGAにする
computing (PU, Memory)の海に外界の現象のモデルが再現されて、ノイズやcomputing内部の事象を入力として自走(発火)し始め(=夢)、それが動的平衡を保ち続ける。それが意識、心の実態で、それを言語化されて外界にNotifyされる(computing側から自発的に発せられる)と「意識」「こころ」となる。
神託になる前も外界へアウトプットはあって、外界が作用を受けている。というところはgivenなんでどうしても見落とされがち。