2009年6月22日 星期一

W19 記錄的設計(1)──記錄行與交易記錄Data Model

系統執行狀態與歷史的內容能夠提供許多分析的資訊,這些資訊我們習慣在執行中隨時記錄為Log。不過Log的特性是一次記錄一筆與上下文無關的文字,所以如何在一行文字間涵蓋到重要的資訊以及建立起前後Log的關聯,是定義記錄內容的重要關鍵。

對單行記錄而言,人、事、時、地、物五個基本資訊加上想要記錄的內容應是最基本的構成。記錄的內容原則上是由能識別系統行為的關鍵字,加上進行該動作時所需的相關資訊所組成;這部份最好是格式化為固定字串,能夠轉換為基本Data Model會較容易處理。

在一個交易期間會有多行的記錄存在,因此要定義交易開始與結束的記錄內容,夾在這兩行之間的表示為同一個交易期間。以範圍框住同一交易的想法雖然沒錯,但是遇到多執行緒執行交易時會發生兩個交易內容混雜產出的問題,因此記錄行必須再定義一個交易序號的資訊以供識別。此外多行交易記錄經過處理應該能夠取得一個交易記錄Data Model,具有從交易方面看待時應有的執行屬性。

記錄行的意義與達成目標的分解動作是很相似的,記錄的是單一動作的執行內容;交易記錄的意義則像是功能的定義,在裡面可取得執行時的相關資訊。記錄行主要提供的是有沒有進行該項動作、有沒有錯誤發生,交易記錄主要提供的是該交易的基本資訊、輸出輸入資訊與結果;前者是系統人員所檢視,後者則應用在使用交易的記錄分析。

沒有留言:

張貼留言