heterodb/pg-strom

確認・GpuCache用関数の返り値について

Closed this issue · 3 comments

以下の関数の返り値がbigintからvoidになっているようですが、これは仕様でしょうか?

  • pgstrom.gpucache_recovery
  • pgstrom.gpucache_apply_redo

GPUCacheのテストコードで、意図的にcorruptedにした後recoveryで回復するか?という確認をしていたのですが、以下のクエリがエラーになっています。

SELECT pgstrom.gpucache_apply_redo('cache_corruption_test') = 0 AS apply_redo_result;

メッセージ

ERROR:  operator does not exist: void = integer

もう1点確認です。

pgstrom.gpucache_infoビューのcorruptedカラムはなくなった理解でよいでしょうか。
その場合、corruptedしているかどうかのチェックは以下のクエリでよろしいでしょうか?

SELECT phase='corrupted' FROM pgstrom.gpucache_info WHERE table_name='cache_corruption_test';

すいません。別問題の調査に手間取って反応遅れました。
gpucache_apply_redo()gpucache_recovery()も、当該関数の処理(GPU-Serviceにリクエストを送出する)に失敗した場合は戻り値ではなくエラーを返しますので、VOID型で支障ないと判断しました。

pgstrom.gpucache_infoビューに関しても、phase列を見るようにしてください。
readycorruptedだけでなく、emptyinitial-loadingという状態を見る事のできるタイミングも存在します。

承知しました。返り値の確認は無しとします。
他状態の確認も追加します。