-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add docs/limestone_race.md #44
base: master
Are you sure you want to change the base?
Conversation
前に口頭で中間報告をしてから、長らくそのままにして申し訳ありませんでした。
|
epoch_id_recorded_ はepochファイルに書き込んだepoch、 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo 等は suggestion 形式でインラインコメントしました
|
||
## この文書について | ||
下記を説明する。 | ||
* shirakamiがcallすることを想定しているlimestoneのdatastore::switch_epoch()とdata_channel::begin_session()のタイミング制約 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* shirakamiがcallすることを想定しているlimestoneのdatastore::switch_epoch()とdata_channel::begin_session()のタイミング制約 | |
* shirakamiがcallすることを想定しているlimestoneのdatastore::switch_epoch()とlog_channel::begin_session()のタイミング制約 |
おそらく文中と図3~7の data_channel はすべて log_channel の誤記かと思います。
3) logが属するepochは、data_channel::begin_session()をcallしたときのlimestone epochとなる。 | ||
4) limestone epochは、shirakamiがdatastore::switch_epoch()をcallすることで切り替わる。 | ||
5) どのlimestone epochまでdurableになった(logが不揮発記録として書き込まれた)のかは、datastore::last_epoch()で調べることができる。 | ||
6) durableとなったlimestone epochは、datastore::add_persistent_callback()でcallbackを登録しておくことで、durable epochがが更新される度にcall backとして通知を受け取ることもできる。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
6) durableとなったlimestone epochは、datastore::add_persistent_callback()でcallbackを登録しておくことで、durable epochがが更新される度にcall backとして通知を受け取ることもできる。 | |
6) durableとなったlimestone epochは、datastore::add_persistent_callback()でcallbackを登録しておくことで、durable epochが更新される度にcall backとして通知を受け取ることもできる。 |
よりも小さいepochの最大値である。 | ||
|
||
### limestoneによるdurable epochの追跡 | ||
limestoneがdurable epochを認識できるようにするため、各log_channelは、各々が書き込んでるlogのepochを管理している。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
limestoneがdurable epochを認識できるようにするため、各log_channelは、各々が書き込んでるlogのepochを管理している。 | |
limestoneがdurable epochを認識できるようにするため、各log_channelは、各々が書き込んでいるlogのepochを管理している。 |
|
||
図3 log_channelによるlogのepoch管理<br> | ||
各log_channelは、begin_session()時にlimestone epochを調べ、そのepochを以降のadd_entry()で送られるlogのepoch(channel's epoch)として記憶しておく。 | ||
ここで、channel's epochがUINT_MAXとなっている期間は、log_channel::begin_session()が行われていない(未書き込み尾logは存在しない)ことを示している。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここで、channel's epochがUINT_MAXとなっている期間は、log_channel::begin_session()が行われていない(未書き込み尾logは存在しない)ことを示している。 | |
ここで、channel's epochがUINT64_MAXとなっている期間は、log_channel::begin_session()が行われていない(未書き込みのlogは存在しない)ことを示している。 |
UINT_MAX だと unsigned int の MAX となってしまい多くの場合 32bit になってしまうため。(図3~7 も同様)
(epoch の max 的な別名を付けてもいいかとは思いますが、ここでやる話ではなさそう)
申し訳ありません。review インラインコメントの最後の操作が抜けていたので、Pending のままになっていました。 |
No description provided.