-
Notifications
You must be signed in to change notification settings - Fork 14
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
Log empty or nil select calls #277
Log empty or nil select calls #277
Conversation
a70c0c4
to
7445256
Compare
7445256
to
c2553b3
Compare
282a529
to
1e55d88
Compare
1e55d88
to
cdb2689
Compare
6daa4a5
to
3475906
Compare
3475906
to
ebae0f3
Compare
ebae0f3
to
aed33cc
Compare
I will delete a doc entry:
from doc/select.md after #295 (or I'll do it there, it depends on the merging order). |
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.
I think we should merge #295 first and then deal with this PR.
Are there any plans to add more critical log conditions or we decided to stop for now?
Thank you for the review! I think that we decided to stop with current conditions. |
aed33cc
to
b4434d9
Compare
b4434d9
to
8f63d19
Compare
Before the patch we copy an original EQ/REQ condition to post-filter and change the original to GE/LE. The problem is that EQ/REQ can't be a stop condition. As a result EQ/REQ + after unexpectedly became a full scan. The patch removes this behavior, the query becomes more expected and in base executes as regular EQ/REQ. We had an idea to replace EQ with GE+LE. This would help to skip less tuples in the executor inside scroll_to_after_tuple. But unfortunately, due to a bug[1], this will break the current behavior. So we need to fix the bug first. In additional, the 'potentially long select'[2] warning is confused by the GE/LE in the query plan. This patch only changes the internal behavior and does not affect a client code. 1. #301 2. #277
8f63d19
to
637a7f8
Compare
A note |
This comment was marked as outdated.
This comment was marked as outdated.
Before the patch we copy an original EQ/REQ condition to post-filter and change the original to GE/LE. The problem is that EQ/REQ can't be a stop condition. As a result EQ/REQ + after unexpectedly became a full scan. The patch removes this behavior, the query becomes more expected and in base executes as regular EQ/REQ. We had an idea to replace EQ with GE+LE. This would help to skip less tuples in the executor inside scroll_to_after_tuple. But unfortunately, due to a bug[1], this will break the current behavior. So we need to fix the bug first. In additional, the 'potentially long select'[2] warning is confused by the GE/LE in the query plan. This patch only changes the internal behavior and does not affect a client code. 1. #301 2. #277
Potentially long select calls on user spaces tend to be dangerous. A critical log entry containing the current stack traceback is created upon potentially long select calls — a user can explicitly request a full scan though by passing fullscan = true to select's options table argument in which a case a log entry will not be created. Tarantool has a similar implementation[1][2]. 1. tarantool/tarantool#7064 2. tarantool/tarantool#7131 Part of #276
Potentially long count calls on user spaces tend to be dangerous. A critical log entry containing the current stack traceback is created upon potentially long count calls — a user can explicitly request a full scan though by passing fullscan = true to count's options table argument in which a case a log entry will not be created. Closes #276
637a7f8
to
2df8d76
Compare
Empty or nil select calls on user spaces tend to be dangerous.
A critical log entry containing the current stack traceback is created
upon empty or nil select calls — a user can explicitly request a full
scan though by passing fullscan = true to select's options table
argument in which a case a log entry will not be created.
Tarantool has a similar implementation[1].
select
calls tarantool#7064Closes #276