WAL(Write Ahead Log)プロトコル
データベースにおけるトランザクションの安全性と整合性を保つためのプロトコル。コンピュータがデータを保存する際に、まずその操作を別の場所(ログ)に記録してから実際にデータを更新する。
実際にデータを操作する前に、更新前レコード(更新する前のデータ)だけでなく、更新後レコード(更新した後のデータ)もログに書き出しておく。この操作が完了してから
DB更新→commitレコード書き出し→transaction完了
と処理を進めていく。
Linuxのジャーナルもこんな仕組みやった気がする。
参考サイト
WAL(ログ先行書き込み)プロトコルとは?1分でわかりやすく解説 | ビズドットオンライン
ALife(Artificial Life・人工生命)
生命の成り立ちや仕組みなど生命現象の原理に関する研究分野。
AIと関連が深い研究分野で、共通点としては実際に動くものを作ることによって研究を進めていく点が挙げられる。相違点としては、AIの強みは大量なデータの分析による最適化問題の解決である一方、ALifeの強みは0から1を生み出す創発的な問題の解決であるとされている。
ジョン・フォン・ノイマンは、セル・オートマトン(格子状のセルと単純な規則による、離散的計モデル)という分野を創出したことから人工生命の父と呼ばれている。天才は凡人が知らないような数多くの偉業を成し遂げているんだろうなあと思いました。ノイマンすごい。
参考サイト
人工生命(ALife)とは何か──AIや生物学との違い、「都市デザイン」や「組織」への応用 | Biz/Zine(ビズジン)
Alifeは何だ?「人工生命」の作りを体験してみる(一) – GMOインターネットグループ グループ研究開発本部
ジョン・フォン・ノイマン – Wikipedia
メモリインタリーブ
メモリへのアクセスを高速化する技法のひとつ。ブロック分けされた複数のメモリ(メモリバンク)に対して同時・並行的にアクセスすることでデータ転送速度を向上する技法のこと。
CPUからメモリへのアクセス要求は、ある短い時間内では局所へ集中する傾向が極めて強く、連続した狭いアドレス空間に順次読み書きを行おうとする特性がある。 メモリインターリーブはこの特性を利用して、複数のメモリバンクに渡って連続したアドレスを交互に割り振っておき、あるデータへのアクセスで生じた遅延時間の間に次のアドレスへアクセス要求を発信し、空白時間を埋めようとする技法であるといえる。
待ち時間を有効活用しようって感じか?
ちなみにinterleaveは「交互に配置する」という意味らしく、各メモリバンクに対してアドレスを交互に振っていることを表していると思われる。メモリバンクが3つ以上になった時は交互じゃない気もするが、それはご愛敬。
参考サイト
メモリインターリーブとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
用語検索 – ZDNET Japan
デジュールスタンダード(de jure standard)
ある技術や製品の仕様などについて、公的機関や標準化機関が定められた手続きや法制度に則って策定した標準規格。
デファクトスタンダードは知ってたけどこっちは知らなかった。公的機関のお墨付きがあるかないかなので、対義語と言ってよさそう。
“de jure” はラテン語の「法律上の」という表現に由来し、標準的なカナ表記が定まっていない。「デジュールスタンダード」のデジュールスタンダードはないってことですね。「デジュールスタンダード」がデファクトスタンダードっぽいけど。
デファクトって勝手に英語かと思ってたけどこいつもラテン語らしい。表記は”de facto”
さらに、標準化団体が策定する規格でも、政府や国連などの公的機関が関与する制度的な機関ではなく、企業連合や業界団体、専門家集団などが策定するものは「フォーラム標準」(forum standard)と呼ばれるらしい。
デジュールとデファクトの間って感じすね。厳密にはデジュールに包含されてると思うけど。
ていうか、なんでフォーラムは英語使っちゃった?ここまで来たらラテン語で言い表してくれよ
参考サイト
デジュールスタンダード(デジュリスタンダード / デジュール標準 / デジュリ標準)とは – 意味をわかりやすく – IT用語辞典 e-Words
Eviction
Kubernetesにおいて、あるNodeに割り当てられたPodに終了を要求するプロセスを指す。
リソースの制約が高い状況で優先度が高いPodを配置するために優先度が低いPodを一時的に退避させるpreemptionや、Nodeのメンテナンスを目的としてNodeに存在するPodを退避させるdrainなどで行われる、「退避させる」という動作がEvictionにあたる。
「退避」という表現で使われることが多いのでPodを別のNodeに移す操作と思っていたが、厳密にはPodを丁寧に削除するみたいな操作っぽい。Linuxで言うとSIGKILLじゃなくてSIGTERMみたいなイメージ。ただ、実際Evictionが発生する際は退避されたPodの代替となるPodがどこかで立ち上がることが多い。