-
Notifications
You must be signed in to change notification settings - Fork 125
[TDB-20] With checkpoint disabled, closing FT file still rotates header #383
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
base: master
Are you sure you want to change the base?
Conversation
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.
Formatting comments only
ft/cachetable/cachetable-internal.h
Outdated
KIBBUTZ client_kibbutz; // pool of worker threads and jobs to do asynchronously for the client. | ||
KIBBUTZ ct_kibbutz; // pool of worker threads and jobs to do asynchronously for the cachetable | ||
KIBBUTZ checkpointing_kibbutz; // small pool for checkpointing cloned pairs | ||
//bool in_backup; // we are in back up or NOT, default is false |
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.
Please no commented-out code?
ft/ft.cc
Outdated
|
||
|
||
// maps to cf->note_pin_by_backup | ||
//Must be protected by ydb lock. |
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.
Spaces after //
ft/ft.cc
Outdated
// Requires: the reflock is held. | ||
static void unpin_by_backup_callback(FT ft, void *extra) { | ||
invariant(extra == NULL); | ||
invariant(ft->num_backups>0); |
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.
Spaces around >
ft/ft.cc
Outdated
static void unpin_by_backup_callback(FT ft, void *extra) { | ||
invariant(extra == NULL); | ||
invariant(ft->num_backups>0); | ||
ft->num_backups --; |
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.
No space before the operator
ft/ft.cc
Outdated
} | ||
|
||
// maps to cf->note_unpin_by_backup | ||
//Must be protected by ydb lock. |
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.
Spaces after //
ft/tests/ft-in-backup-test.cc
Outdated
This file is part of PerconaFT. | ||
Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved. |
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.
2017
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.
Still missed s/2015/2017
ft/tests/ft-in-backup-test.cc
Outdated
along with PerconaFT. If not, see <http://www.gnu.org/licenses/>. | ||
======= */ | ||
|
||
#ident "Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved." |
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.
2017
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.
omg...how did you spot it...hawkeyes
ft/tests/ft-in-backup-test.cc
Outdated
|
||
toku_cachetable_create(&ct, 0, ZERO_LSN, nullptr); | ||
// TEST1 : for normal | ||
r = toku_open_ft_handle(fname, 1, &ft, 1<<12, 1<<9, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); |
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.
This and similar lines below are probably too long. A new file can be clang-formatted without much damage I guess
Thanks. Please review my follow-up |
ft/ft.cc
Outdated
FT ft = (FT) header_v; | ||
toku_ft_grab_reflock(ft); | ||
assert(toku_ft_needed_unlocked(ft)); | ||
ft->num_backups ++; |
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.
No space before the postincrement operator
ft/ft.cc
Outdated
ft_note_pin_by_checkpoint, | ||
ft_note_unpin_by_checkpoint); | ||
ft_note_unpin_by_checkpoint, | ||
ft_note_pin_by_backup, |
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.
Indentation must be wrong either in the added lines, either in the lines above (in which I'm not sure it should be fixed)
ft_note_pin_by_checkpoint, | ||
ft_note_unpin_by_checkpoint); | ||
ft_note_unpin_by_checkpoint, | ||
ft_note_pin_by_backup, |
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.
Likewise
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.
Updated again. Thanks!
&dummy_note_pin, | ||
&dummy_note_unpin | ||
&dummy_note_unpin, | ||
&dummy_note_pin, |
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.
Likewise
&dummy_note_pin, | ||
&dummy_note_unpin | ||
&dummy_note_unpin, | ||
&dummy_note_pin, |
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.
Likewise
ft/tests/cachetable-simple-close.cc
Outdated
&dummy_note_pin, | ||
&dummy_note_unpin | ||
&dummy_note_unpin, | ||
&dummy_note_pin, |
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.
Likewise
ft/tests/cachetable-test.h
Outdated
&dummy_end, | ||
&dummy_note_pin, | ||
&dummy_note_unpin, | ||
&dummy_note_pin, |
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.
Likewise
…der. This is an attempt based on @BohuTANG's patch percona#331 in particular, the ctest is all his credits. Summary: 1) The issue is real. 2) @bohu's patch works for mediating the issue but somewhat introduces a ft leak that the ft with ref=0 may be left until next open/close or checkpoint. 3) If ft_close should be held off upon a backup, then it simply means a backup should hold a ref to the ft and responsible for closing ft up if it is the last one to hold it, like any other possible referencer. including the checkpoint, the txn and ft handlers. 4) mtr test contributed by @BohuTANG still passes
Updated: fixed the format again.
new jenkins test: http://jenkins.percona.com/view/TokuDB/job/PerconaFT-param/107/
Updated: fixed the format.
new Jenkins test: http://jenkins.percona.com/view/TokuDB/job/PerconaFT-param/106
Jenkins: http://jenkins.percona.com/view/TokuDB/job/PerconaFT-param/105/