Skip to content
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

read own upsert で read by を残さないことに関する検討・導入 #97

Open
thawk105 opened this issue Jan 30, 2023 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@thawk105
Copy link
Contributor

thawk105 commented Jan 30, 2023

概要: read own upsert をTXが実行する場合、 read by を残さなくても良い懸念がある。

それに関して整理を行い、ライブラリコードの修正、テストの追加を行う。

工数見積もり:一日

完了条件:ライブラリコードの修正、テストの追加と合格

@thawk105 thawk105 added the enhancement New feature or request label Jan 30, 2023
@thawk105 thawk105 self-assigned this Jan 30, 2023
@thawk105 thawk105 changed the title read own upsert で read by を残さないことに関する検討 read own upsert で read by を残さないことに関する検討・導入 Feb 16, 2024
@thawk105
Copy link
Contributor Author

thawk105 commented Apr 3, 2024

起票理由の補足:R&Dミーティングで、そのようなことをするべきという指摘を受けたような記憶があるため。

@kuron99 kuron99 self-assigned this May 15, 2024
@thawk105
Copy link
Contributor Author

状況確認の情報共有。

if (in_ws->get_op() != OP_TYPE::UPSERT) {

上記リンク先にあるように、UPSERT なら read info を残さないというような意図・コードコメント・実装の箇所が見受けられました。
既に対応済みの可能性があります

@ban-nobuhiro
Copy link
Contributor

ban-nobuhiro commented Jul 29, 2024

point read では避けているようですが
scan からの read_from_scan の際には read set に入れているように見えます。

if (inws->get_op() == OP_TYPE::DELETE) {
read_register_if_ltx(rec_ptr);
return Status::WARN_NOT_FOUND;
}
if (key_read) {
inws->get_key(buf);
} else {
std::shared_lock<std::shared_mutex> lk{
rec_ptr->get_mtx_value()};
inws->get_value(buf);
}
read_register_if_ltx(rec_ptr);
return Status::OK;

ただ、 range read って write set を考慮している (yakushima scan の結果だけでなく local write set の key集合と merge して動いている) のだろうか? という点は未確認

(追記) → write set にいるなら placeholder が作られているはずだから yakushima scan で見つかるはず

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants