Commit b3fdb9b
Use safer atomic APIs for some memtable code (facebook#13844)
Summary:
Two instances of change that are not just cosmetic:
* InlineSkipList<>::Node::CASNext() was implicitly using memory_order_seq_cst to access `next_` while it's intended to be accessed with acquire/release. This is probably not a correctness issue for compare_exchange_strong but potentially a previously missed optimization.
* Similar for `max_height_` in Insert which is otherwise accessed with relaxed memory order.
* One non-relaxed access to `is_range_del_table_empty_` in a function only used in assertions. Access to this atomic is otherwise relaxed (and should be - comment added)
Didn't do all of memtable.h because some of them are more complicated changes and I should probably add FetchMin and FetchMax functions to simplify and take advantage of C++27 functions where available (intended follow-up).
Pull Request resolved: facebook#13844
Test Plan: existing tests
Reviewed By: xingbowang
Differential Revision: D79742552
Pulled By: pdillinger
fbshipit-source-id: d97ce72ba9af6c105694b7d40622db9e994720cd1 parent 5c7162d commit b3fdb9b
7 files changed
Lines changed: 92 additions & 101 deletions
File tree
- db
- memtable
- util
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
182 | | - | |
| 182 | + | |
183 | 183 | | |
184 | 184 | | |
185 | 185 | | |
| |||
193 | 193 | | |
194 | 194 | | |
195 | 195 | | |
196 | | - | |
| 196 | + | |
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
201 | | - | |
| 201 | + | |
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
| |||
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | | - | |
| 217 | + | |
218 | 218 | | |
219 | 219 | | |
220 | 220 | | |
| |||
756 | 756 | | |
757 | 757 | | |
758 | 758 | | |
759 | | - | |
| 759 | + | |
760 | 760 | | |
761 | 761 | | |
762 | 762 | | |
| |||
767 | 767 | | |
768 | 768 | | |
769 | 769 | | |
770 | | - | |
| 770 | + | |
771 | 771 | | |
772 | 772 | | |
773 | 773 | | |
| |||
831 | 831 | | |
832 | 832 | | |
833 | 833 | | |
834 | | - | |
| 834 | + | |
835 | 835 | | |
836 | 836 | | |
837 | 837 | | |
| |||
854 | 854 | | |
855 | 855 | | |
856 | 856 | | |
857 | | - | |
| 857 | + | |
858 | 858 | | |
859 | 859 | | |
860 | 860 | | |
| |||
864 | 864 | | |
865 | 865 | | |
866 | 866 | | |
867 | | - | |
| 867 | + | |
868 | 868 | | |
869 | 869 | | |
870 | 870 | | |
| |||
994 | 994 | | |
995 | 995 | | |
996 | 996 | | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | | - | |
| 997 | + | |
| 998 | + | |
1001 | 999 | | |
1002 | 1000 | | |
1003 | | - | |
1004 | | - | |
| 1001 | + | |
1005 | 1002 | | |
1006 | | - | |
1007 | | - | |
| 1003 | + | |
| 1004 | + | |
1008 | 1005 | | |
1009 | 1006 | | |
1010 | 1007 | | |
| |||
1105 | 1102 | | |
1106 | 1103 | | |
1107 | 1104 | | |
1108 | | - | |
| 1105 | + | |
1109 | 1106 | | |
1110 | 1107 | | |
1111 | 1108 | | |
| |||
1524 | 1521 | | |
1525 | 1522 | | |
1526 | 1523 | | |
1527 | | - | |
| 1524 | + | |
1528 | 1525 | | |
1529 | 1526 | | |
1530 | 1527 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
| |||
568 | 567 | | |
569 | 568 | | |
570 | 569 | | |
571 | | - | |
| 570 | + | |
572 | 571 | | |
573 | 572 | | |
574 | 573 | | |
| |||
689 | 688 | | |
690 | 689 | | |
691 | 690 | | |
692 | | - | |
693 | | - | |
694 | | - | |
| 691 | + | |
| 692 | + | |
695 | 693 | | |
696 | | - | |
697 | | - | |
| 694 | + | |
698 | 695 | | |
699 | 696 | | |
700 | | - | |
701 | | - | |
| 697 | + | |
702 | 698 | | |
703 | 699 | | |
704 | 700 | | |
| |||
707 | 703 | | |
708 | 704 | | |
709 | 705 | | |
710 | | - | |
711 | | - | |
712 | | - | |
| 706 | + | |
713 | 707 | | |
714 | | - | |
715 | | - | |
716 | | - | |
| 708 | + | |
717 | 709 | | |
718 | 710 | | |
719 | | - | |
| 711 | + | |
720 | 712 | | |
721 | 713 | | |
722 | | - | |
723 | | - | |
724 | | - | |
| 714 | + | |
725 | 715 | | |
726 | | - | |
727 | | - | |
728 | | - | |
| 716 | + | |
729 | 717 | | |
730 | 718 | | |
731 | 719 | | |
732 | 720 | | |
733 | | - | |
| 721 | + | |
734 | 722 | | |
735 | 723 | | |
736 | | - | |
737 | | - | |
738 | | - | |
| 724 | + | |
| 725 | + | |
739 | 726 | | |
740 | 727 | | |
741 | 728 | | |
| |||
827 | 814 | | |
828 | 815 | | |
829 | 816 | | |
830 | | - | |
| 817 | + | |
831 | 818 | | |
832 | 819 | | |
833 | 820 | | |
| |||
853 | 840 | | |
854 | 841 | | |
855 | 842 | | |
856 | | - | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
857 | 850 | | |
858 | 851 | | |
859 | | - | |
860 | | - | |
861 | | - | |
862 | | - | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
863 | 856 | | |
864 | 857 | | |
865 | | - | |
| 858 | + | |
866 | 859 | | |
867 | 860 | | |
868 | 861 | | |
| |||
898 | 891 | | |
899 | 892 | | |
900 | 893 | | |
901 | | - | |
| 894 | + | |
902 | 895 | | |
903 | 896 | | |
904 | 897 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
48 | | - | |
49 | 47 | | |
50 | 48 | | |
51 | 49 | | |
52 | 50 | | |
53 | 51 | | |
54 | 52 | | |
55 | 53 | | |
56 | | - | |
| 54 | + | |
57 | 55 | | |
58 | 56 | | |
59 | 57 | | |
| |||
215 | 213 | | |
216 | 214 | | |
217 | 215 | | |
218 | | - | |
219 | | - | |
220 | | - | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
221 | 220 | | |
222 | 221 | | |
223 | 222 | | |
224 | 223 | | |
225 | 224 | | |
226 | 225 | | |
227 | | - | |
228 | | - | |
229 | | - | |
| 226 | + | |
230 | 227 | | |
231 | 228 | | |
232 | 229 | | |
| |||
311 | 308 | | |
312 | 309 | | |
313 | 310 | | |
314 | | - | |
| 311 | + | |
315 | 312 | | |
316 | 313 | | |
317 | 314 | | |
| |||
332 | 329 | | |
333 | 330 | | |
334 | 331 | | |
335 | | - | |
| 332 | + | |
336 | 333 | | |
337 | 334 | | |
338 | 335 | | |
339 | 336 | | |
340 | 337 | | |
341 | 338 | | |
342 | | - | |
| 339 | + | |
343 | 340 | | |
344 | 341 | | |
345 | 342 | | |
346 | 343 | | |
347 | | - | |
| 344 | + | |
348 | 345 | | |
349 | 346 | | |
350 | 347 | | |
351 | 348 | | |
352 | 349 | | |
353 | | - | |
| 350 | + | |
354 | 351 | | |
355 | 352 | | |
356 | 353 | | |
357 | 354 | | |
358 | | - | |
| 355 | + | |
359 | 356 | | |
360 | 357 | | |
361 | 358 | | |
| |||
369 | 366 | | |
370 | 367 | | |
371 | 368 | | |
372 | | - | |
| 369 | + | |
373 | 370 | | |
374 | 371 | | |
375 | 372 | | |
| |||
789 | 786 | | |
790 | 787 | | |
791 | 788 | | |
792 | | - | |
| 789 | + | |
793 | 790 | | |
794 | 791 | | |
795 | 792 | | |
| |||
923 | 920 | | |
924 | 921 | | |
925 | 922 | | |
926 | | - | |
| 923 | + | |
927 | 924 | | |
928 | | - | |
| 925 | + | |
929 | 926 | | |
930 | 927 | | |
931 | 928 | | |
| |||
0 commit comments