$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

Linuxカーネル解読室14章(ページの回収処理)を読んだ

 今回はLinux本の14章、ページの回収処理について読んで、マインドマップにまとめてみました。

マインドマップ

pdfファイル
[file:shiba_yu36:Linux本14章 - ページの回収処理.pdf]

補足など

 ページの回収処理の基本は「最近使っていない実ページを回収する」というものです。今回は回収対象を

  • ページキャッシュ利用かつプロセス空間非マップ
  • ページキャッシュ非利用かつプロセス空間マップ
  • ページキャッシュ利用かつプロセス空間マップ

の三つにわけ、それぞれ最近使っていない実ページの求め方について書かれています。そのことを意識しながら読むと分かりやすいような気がします。

Teng::Schema::Declare::Columns::DateTimeを作った

 この前、書いた

ですが、Teng::Schema::Declare::Columns::DateTimeとしてちゃんとモジュール化してみました。CPANにはまだ上げてないです。もうちょっと様子見て、大丈夫そうならあげようかなって考えてます。あと、名前をどうしようか迷ってます。

How to use

 Teng::Schema::Declareと同時に使うとtable定義内でdatetime_columnsが使えるようになります。datetime_columnsとして指定したcolumnはDateTimeオブジェクトとしてinflate/deflateされるようになります。今のところ、DateTime::Format::MySQLでformatされます。スキーマ定義は以下のとおり。

package MyDB::Schema;
use strict;
use warnings;
use Teng::Schema::Declare;
use Teng::Schema::Declare::Columns::DateTime;

table {
    name    "sample";
    pk      "id";
    columns qw( id name created_at updated_at );
    datetime_columns qw(created_at updated_at);
};

1;

最後に

 とりあえず、Schema定義が簡単にできるようにしたいということで今回のモジュールを作ってみました。まだFormat方式を指定できなかったり、名前をどうしようか決めてなかったり、といった問題があるので、CPANには上げてないです。
 なにか指摘などあれば@shiba_yu36までお願いします。