更新前レコードと更新後レコードをログとして利用するDBMSにおいて、ログを先に書き出すWAL(Write Ahead Log)プロトコルに従うとして、処理@〜Eを正しい順番に並べたものはどれか。
@ | begin transactionレコードを書き出す。 |
A | データベースを更新する。 |
B | ログに更新前レコードを書き出す。 |
C | ログに更新後レコードを書き出す。 |
D | commitレコードを書き出す。 |
E | end transactionレコードを書き出す。 |
ア | @→A→B→C→D→E |
イ | @→B→A→C→E→D |
ウ | @→B→A→D→C→E |
エ | @→B→C→A→D→E |
答え エ
【解説】
WALではデータベースの更新を行う前にログの書き出しを行うので、処理の順番としては
@ | begin transactionレコードを書き出す。 |
↓ | |
B | ログに更新前レコードを書き出す。 |
↓ | |
C | ログに更新後レコードを書き出す。 |
↓ | |
A | データベースを更新する。 |
↓ | |
D | commitレコードを書き出す。 |
↓ | |
E | end transactionレコードを書き出す。 |
【キーワード】
・ログ先行書き込み