github.com/zuoyebang/bitalostable@v1.0.1-0.20240229032404-e3b99a834294/testdata/range_del (about) 1 # 1 memtable. 2 3 define 4 mem 5 a.SET.1:b 6 a.SET.3:c 7 a.SET.5:d 8 b.MERGE.1:b 9 b.MERGE.3:c 10 b.MERGE.5:d 11 b.RANGEDEL.6:c 12 b.MERGE.7:e 13 c.SET.1:b 14 c.SET.3:c 15 c.SET.5:d 16 ---- 17 mem: 1 18 19 get seq=2 20 a 21 b 22 c 23 ---- 24 a:b 25 b:b 26 c:b 27 28 get seq=4 29 a 30 b 31 c 32 ---- 33 a:c 34 b:bc 35 c:c 36 37 get seq=6 38 a 39 b 40 c 41 ---- 42 a:d 43 b:bcd 44 c:d 45 46 get seq=7 47 a 48 b 49 c 50 ---- 51 a:d 52 b: bitable: not found 53 c:d 54 55 get seq=8 56 a 57 b 58 c 59 ---- 60 a:d 61 b:e 62 c:d 63 64 get seq=6 65 a 66 b 67 c 68 ---- 69 a:d 70 b:bcd 71 c:d 72 73 iter seq=6 74 first 75 next 76 next 77 next 78 seek-ge a 79 seek-ge b 80 seek-ge c 81 seek-ge d 82 last 83 prev 84 prev 85 prev 86 seek-lt a 87 seek-lt b 88 seek-lt c 89 seek-lt d 90 ---- 91 a:d 92 b:bcd 93 c:d 94 . 95 a:d 96 b:bcd 97 c:d 98 . 99 c:d 100 b:bcd 101 a:d 102 . 103 . 104 a:d 105 b:bcd 106 c:d 107 108 iter seq=7 109 first 110 next 111 next 112 seek-ge a 113 seek-ge b 114 seek-ge c 115 seek-ge d 116 last 117 prev 118 prev 119 seek-lt a 120 seek-lt b 121 seek-lt c 122 seek-lt d 123 ---- 124 a:d 125 c:d 126 . 127 a:d 128 c:d 129 c:d 130 . 131 c:d 132 a:d 133 . 134 . 135 a:d 136 a:d 137 c:d 138 139 # Multiple memtables. 140 141 define 142 mem 143 a.SET.1:b 144 b.MERGE.1:b 145 c.SET.1:b 146 mem 147 a.SET.3:c 148 b.MERGE.3:c 149 c.SET.3:c 150 mem 151 a.SET.5:d 152 b.MERGE.5:d 153 c.SET.5:d 154 mem 155 b.RANGEDEL.6:c 156 mem 157 b.MERGE.7:e 158 ---- 159 mem: 5 160 161 get seq=2 162 a 163 b 164 c 165 ---- 166 a:b 167 b:b 168 c:b 169 170 get seq=4 171 a 172 b 173 c 174 ---- 175 a:c 176 b:bc 177 c:c 178 179 get seq=6 180 a 181 b 182 c 183 ---- 184 a:d 185 b:bcd 186 c:d 187 188 get seq=7 189 a 190 b 191 c 192 ---- 193 a:d 194 b: bitable: not found 195 c:d 196 197 get seq=8 198 a 199 b 200 c 201 ---- 202 a:d 203 b:e 204 c:d 205 206 get seq=6 207 a 208 b 209 c 210 ---- 211 a:d 212 b:bcd 213 c:d 214 215 iter seq=6 216 first 217 next 218 next 219 next 220 seek-ge a 221 seek-ge b 222 seek-ge c 223 seek-ge d 224 last 225 prev 226 prev 227 prev 228 seek-lt a 229 seek-lt b 230 seek-lt c 231 seek-lt d 232 ---- 233 a:d 234 b:bcd 235 c:d 236 . 237 a:d 238 b:bcd 239 c:d 240 . 241 c:d 242 b:bcd 243 a:d 244 . 245 . 246 a:d 247 b:bcd 248 c:d 249 250 iter seq=7 251 first 252 next 253 next 254 seek-ge a 255 seek-ge b 256 seek-ge c 257 seek-ge d 258 last 259 prev 260 prev 261 seek-lt a 262 seek-lt b 263 seek-lt c 264 seek-lt d 265 ---- 266 a:d 267 c:d 268 . 269 a:d 270 c:d 271 c:d 272 . 273 c:d 274 a:d 275 . 276 . 277 a:d 278 a:d 279 c:d 280 281 # Overlapping range deletions in the same memtable. 282 283 define 284 mem 285 a.SET.1:1 286 a.SET.3:2 287 a.SET.5:3 288 a.SET.7:4 289 b.SET.1:1 290 b.SET.3:2 291 b.SET.5:3 292 b.SET.7:4 293 c.SET.1:1 294 c.SET.3:2 295 c.SET.5:3 296 c.SET.7:4 297 d.SET.1:1 298 d.SET.3:2 299 d.SET.5:3 300 d.SET.7:4 301 a.RANGEDEL.2:b 302 b.RANGEDEL.4:c 303 b.RANGEDEL.2:c 304 c.RANGEDEL.6:d 305 c.RANGEDEL.4:d 306 c.RANGEDEL.2:d 307 ---- 308 mem: 1 309 310 get seq=2 311 a 312 b 313 c 314 d 315 ---- 316 a:1 317 b:1 318 c:1 319 d:1 320 321 get seq=3 322 a 323 b 324 c 325 d 326 ---- 327 a: bitable: not found 328 b: bitable: not found 329 c: bitable: not found 330 d:1 331 332 get seq=5 333 a 334 b 335 c 336 d 337 ---- 338 a:2 339 b: bitable: not found 340 c: bitable: not found 341 d:2 342 343 get seq=7 344 a 345 b 346 c 347 d 348 ---- 349 a:3 350 b:3 351 c: bitable: not found 352 d:3 353 354 get seq=9 355 a 356 b 357 c 358 d 359 ---- 360 a:4 361 b:4 362 c:4 363 d:4 364 365 iter seq=2 366 first 367 next 368 next 369 next 370 next 371 last 372 prev 373 prev 374 prev 375 prev 376 ---- 377 a:1 378 b:1 379 c:1 380 d:1 381 . 382 d:1 383 c:1 384 b:1 385 a:1 386 . 387 388 iter seq=3 389 first 390 next 391 last 392 prev 393 ---- 394 d:1 395 . 396 d:1 397 . 398 399 iter seq=5 400 first 401 next 402 next 403 last 404 prev 405 prev 406 ---- 407 a:2 408 d:2 409 . 410 d:2 411 a:2 412 . 413 414 iter seq=7 415 first 416 next 417 next 418 next 419 last 420 prev 421 prev 422 prev 423 ---- 424 a:3 425 b:3 426 d:3 427 . 428 d:3 429 b:3 430 a:3 431 . 432 433 iter seq=9 434 first 435 next 436 next 437 next 438 next 439 last 440 prev 441 prev 442 prev 443 prev 444 ---- 445 a:4 446 b:4 447 c:4 448 d:4 449 . 450 d:4 451 c:4 452 b:4 453 a:4 454 . 455 456 # Overlapping range deletions in different memtables. Note that the 457 # range tombstones are not fragmented in this case. 458 459 define 460 mem 461 a.SET.1:1 462 b.SET.1:1 463 c.SET.1:1 464 d.SET.1:1 465 mem 466 a.SET.3:2 467 b.SET.3:2 468 c.SET.3:2 469 d.SET.3:2 470 a.RANGEDEL.2:d 471 mem 472 a.SET.5:3 473 b.SET.5:3 474 c.SET.5:3 475 d.SET.5:3 476 b.RANGEDEL.4:d 477 mem 478 a.SET.7:4 479 b.SET.7:4 480 c.SET.7:4 481 d.SET.7:4 482 c.RANGEDEL.4:d 483 ---- 484 mem: 4 485 486 get seq=2 487 a 488 b 489 c 490 d 491 ---- 492 a:1 493 b:1 494 c:1 495 d:1 496 497 get seq=3 498 a 499 b 500 c 501 d 502 ---- 503 a: bitable: not found 504 b: bitable: not found 505 c: bitable: not found 506 d:1 507 508 get seq=5 509 a 510 b 511 c 512 d 513 ---- 514 a:2 515 b: bitable: not found 516 c: bitable: not found 517 d:2 518 519 get seq=7 520 a 521 b 522 c 523 d 524 ---- 525 a:3 526 b:3 527 c: bitable: not found 528 d:3 529 530 get seq=9 531 a 532 b 533 c 534 d 535 ---- 536 a:4 537 b:4 538 c:4 539 d:4 540 541 iter seq=2 542 first 543 next 544 next 545 next 546 next 547 last 548 prev 549 prev 550 prev 551 prev 552 ---- 553 a:1 554 b:1 555 c:1 556 d:1 557 . 558 d:1 559 c:1 560 b:1 561 a:1 562 . 563 564 iter seq=3 565 first 566 next 567 last 568 prev 569 ---- 570 d:1 571 . 572 d:1 573 . 574 575 iter seq=5 576 first 577 next 578 next 579 last 580 prev 581 prev 582 ---- 583 a:2 584 d:2 585 . 586 d:2 587 a:2 588 . 589 590 iter seq=7 591 first 592 next 593 next 594 next 595 last 596 prev 597 prev 598 prev 599 ---- 600 a:3 601 b:3 602 d:3 603 . 604 d:3 605 b:3 606 a:3 607 . 608 609 iter seq=9 610 first 611 next 612 next 613 next 614 next 615 last 616 prev 617 prev 618 prev 619 prev 620 ---- 621 a:4 622 b:4 623 c:4 624 d:4 625 . 626 d:4 627 c:4 628 b:4 629 a:4 630 . 631 632 # User-key that spans tables in a level. 633 634 define 635 L1 636 a.SET.3:3 637 L1 638 a.SET.2:2 639 L1 640 a.SET.1:1 641 ---- 642 mem: 1 643 1: 644 000004:[a#3,SET-a#3,SET] 645 000005:[a#2,SET-a#2,SET] 646 000006:[a#1,SET-a#1,SET] 647 648 get seq=1 649 a 650 ---- 651 a: bitable: not found 652 653 get seq=2 654 a 655 ---- 656 a:1 657 658 get seq=3 659 a 660 ---- 661 a:2 662 663 get seq=4 664 a 665 ---- 666 a:3 667 668 iter seq=2 669 first 670 seek-ge a 671 seek-ge b 672 last 673 seek-lt a 674 seek-lt b 675 ---- 676 a:1 677 a:1 678 . 679 a:1 680 . 681 a:1 682 683 iter seq=3 684 first 685 seek-ge a 686 seek-ge b 687 last 688 seek-lt a 689 seek-lt b 690 ---- 691 a:2 692 a:2 693 . 694 a:2 695 . 696 a:2 697 698 iter seq=4 699 first 700 seek-ge a 701 seek-ge b 702 last 703 seek-lt a 704 seek-lt b 705 ---- 706 a:3 707 a:3 708 . 709 a:3 710 . 711 a:3 712 713 define 714 L1 715 a.MERGE.3:3 716 L1 717 a.MERGE.2:2 718 L1 719 a.MERGE.1:1 720 ---- 721 mem: 1 722 1: 723 000004:[a#3,MERGE-a#3,MERGE] 724 000005:[a#2,MERGE-a#2,MERGE] 725 000006:[a#1,MERGE-a#1,MERGE] 726 727 get seq=1 728 a 729 ---- 730 a: bitable: not found 731 732 get seq=2 733 a 734 ---- 735 a:1 736 737 get seq=3 738 a 739 ---- 740 a:12 741 742 get seq=4 743 a 744 ---- 745 a:123 746 747 iter seq=2 748 first 749 seek-ge a 750 seek-ge b 751 last 752 seek-lt a 753 seek-lt b 754 ---- 755 a:1 756 a:1 757 . 758 a:1 759 . 760 a:1 761 762 iter seq=3 763 first 764 seek-ge a 765 seek-ge b 766 last 767 seek-lt a 768 seek-lt b 769 ---- 770 a:12 771 a:12 772 . 773 a:12 774 . 775 a:12 776 777 iter seq=4 778 first 779 seek-ge a 780 seek-ge b 781 last 782 seek-lt a 783 seek-lt b 784 ---- 785 a:123 786 a:123 787 . 788 a:123 789 . 790 a:123 791 792 # User-key spread across multiple levels. 793 794 define 795 mem 796 a.MERGE.4:4 797 L1 798 a.MERGE.3:3 799 L2 800 a.MERGE.2:2 801 L3 802 a.MERGE.1:1 803 ---- 804 mem: 1 805 1: 806 000004:[a#3,MERGE-a#3,MERGE] 807 2: 808 000005:[a#2,MERGE-a#2,MERGE] 809 3: 810 000006:[a#1,MERGE-a#1,MERGE] 811 812 get seq=1 813 a 814 ---- 815 a: bitable: not found 816 817 get seq=2 818 a 819 ---- 820 a:1 821 822 get seq=3 823 a 824 ---- 825 a:12 826 827 get seq=4 828 a 829 ---- 830 a:123 831 832 get seq=5 833 a 834 ---- 835 a:1234 836 837 iter seq=2 838 first 839 seek-ge a 840 seek-ge b 841 last 842 seek-lt a 843 seek-lt b 844 ---- 845 a:1 846 a:1 847 . 848 a:1 849 . 850 a:1 851 852 iter seq=3 853 first 854 seek-ge a 855 seek-ge b 856 last 857 seek-lt a 858 seek-lt b 859 ---- 860 a:12 861 a:12 862 . 863 a:12 864 . 865 a:12 866 867 iter seq=4 868 first 869 seek-ge a 870 seek-ge b 871 last 872 seek-lt a 873 seek-lt b 874 ---- 875 a:123 876 a:123 877 . 878 a:123 879 . 880 a:123 881 882 iter seq=5 883 first 884 seek-ge a 885 seek-ge b 886 last 887 seek-lt a 888 seek-lt b 889 ---- 890 a:1234 891 a:1234 892 . 893 a:1234 894 . 895 a:1234 896 897 # Range deletions on multiple levels. 898 define 899 L0 900 a.SET.4:4 901 b.SET.4:4 902 d.SET.4:4 903 c.RANGEDEL.4:d 904 L1 905 a.SET.3:3 906 d.SET.3:3 907 b.RANGEDEL.3:d 908 L2 909 d.SET.2:2 910 a.RANGEDEL.2:d 911 L3 912 a.SET.1:1 913 b.SET.1:1 914 c.SET.1:1 915 d.SET.1:1 916 ---- 917 mem: 1 918 0.0: 919 000004:[a#4,SET-d#4,SET] 920 1: 921 000005:[a#3,SET-d#3,SET] 922 2: 923 000006:[a#2,RANGEDEL-d#2,SET] 924 3: 925 000007:[a#1,SET-d#1,SET] 926 927 get seq=2 928 a 929 b 930 c 931 d 932 ---- 933 a:1 934 b:1 935 c:1 936 d:1 937 938 get seq=3 939 a 940 b 941 c 942 d 943 ---- 944 a: bitable: not found 945 b: bitable: not found 946 c: bitable: not found 947 d:2 948 949 get seq=4 950 a 951 b 952 c 953 d 954 ---- 955 a:3 956 b: bitable: not found 957 c: bitable: not found 958 d:3 959 960 get seq=5 961 a 962 b 963 c 964 d 965 ---- 966 a:4 967 b:4 968 c: bitable: not found 969 d:4 970 971 iter seq=2 972 first 973 next 974 next 975 next 976 last 977 prev 978 prev 979 prev 980 ---- 981 a:1 982 b:1 983 c:1 984 d:1 985 d:1 986 c:1 987 b:1 988 a:1 989 990 iter seq=3 991 first 992 last 993 ---- 994 d:2 995 d:2 996 997 iter seq=4 998 first 999 next 1000 last 1001 prev 1002 ---- 1003 a:3 1004 d:3 1005 d:3 1006 a:3 1007 1008 iter seq=5 1009 first 1010 next 1011 next 1012 last 1013 prev 1014 prev 1015 ---- 1016 a:4 1017 b:4 1018 d:4 1019 d:4 1020 b:4 1021 a:4 1022 1023 # Range deletions spanning tables within a level. 1024 1025 define 1026 mem 1027 a.SET.3:3 1028 b.SET.3:3 1029 c.SET.3:3 1030 d.SET.3:3 1031 L1 1032 a.RANGEDEL.2:b 1033 L1 1034 b.RANGEDEL.2:c 1035 L1 1036 c.RANGEDEL.2:d 1037 L2 1038 a.SET.1:1 1039 b.SET.1:1 1040 c.SET.1:1 1041 d.SET.1:1 1042 ---- 1043 mem: 1 1044 1: 1045 000004:[a#2,RANGEDEL-b#72057594037927935,RANGEDEL] 1046 000005:[b#2,RANGEDEL-c#72057594037927935,RANGEDEL] 1047 000006:[c#2,RANGEDEL-d#72057594037927935,RANGEDEL] 1048 2: 1049 000007:[a#1,SET-d#1,SET] 1050 1051 get seq=2 1052 a 1053 b 1054 c 1055 d 1056 ---- 1057 a:1 1058 b:1 1059 c:1 1060 d:1 1061 1062 get seq=3 1063 a 1064 b 1065 c 1066 d 1067 ---- 1068 a: bitable: not found 1069 b: bitable: not found 1070 c: bitable: not found 1071 d:1 1072 1073 get seq=4 1074 a 1075 b 1076 c 1077 d 1078 ---- 1079 a:3 1080 b:3 1081 c:3 1082 d:3 1083 1084 iter seq=2 1085 first 1086 next 1087 next 1088 next 1089 last 1090 prev 1091 prev 1092 prev 1093 ---- 1094 a:1 1095 b:1 1096 c:1 1097 d:1 1098 d:1 1099 c:1 1100 b:1 1101 a:1 1102 1103 iter seq=3 1104 first 1105 last 1106 ---- 1107 d:1 1108 d:1 1109 1110 iter seq=4 1111 first 1112 next 1113 next 1114 next 1115 last 1116 prev 1117 prev 1118 prev 1119 ---- 1120 a:3 1121 b:3 1122 c:3 1123 d:3 1124 d:3 1125 c:3 1126 b:3 1127 a:3 1128 1129 # Invalid LSM structure (range deletion at newer level covers newer 1130 # write at an older level). This LSM structure is not generated 1131 # naturally, but tested here to show the level-by-level nature of Get. 1132 1133 define 1134 L1 1135 a.RANGEDEL.1:b 1136 L2 1137 a.SET.2:2 1138 ---- 1139 mem: 1 1140 1: 1141 000004:[a#1,RANGEDEL-b#72057594037927935,RANGEDEL] 1142 2: 1143 000005:[a#2,SET-a#2,SET] 1144 1145 get seq=3 1146 a 1147 ---- 1148 a: bitable: not found 1149 1150 # A range tombstone straddles two SSTs. One is compacted to a lower level. Its 1151 # keys that are newer than the range tombstone should not disappear. 1152 # 1153 # Uses a snapshot to prevent range tombstone from being elided when it gets 1154 # compacted to the bottommost level. 1155 1156 define target-file-sizes=(100, 1) snapshots=(1) 1157 L0 1158 a.RANGEDEL.1:e 1159 L0 1160 a.SET.2:v 1161 L0 1162 c.SET.3:v 1163 ---- 1164 mem: 1 1165 0.1: 1166 000005:[a#2,SET-a#2,SET] 1167 000006:[c#3,SET-c#3,SET] 1168 0.0: 1169 000004:[a#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1170 1171 compact a-e 1172 ---- 1173 1: 1174 000007:[a#2,SET-c#72057594037927935,RANGEDEL] 1175 000008:[c#3,SET-e#72057594037927935,RANGEDEL] 1176 1177 compact d-e 1178 ---- 1179 1: 1180 000007:[a#2,SET-c#72057594037927935,RANGEDEL] 1181 2: 1182 000008:[c#3,SET-e#72057594037927935,RANGEDEL] 1183 1184 iter seq=4 1185 seek-ge b 1186 next 1187 ---- 1188 c:v 1189 . 1190 1191 # Reverse the above test: compact the left file containing the split range 1192 # tombstone downwards, and iterate from right to left. 1193 1194 define target-file-sizes=(100, 1) snapshots=(1) 1195 L0 1196 a.RANGEDEL.1:e 1197 L0 1198 a.SET.2:v 1199 L0 1200 c.SET.3:v 1201 ---- 1202 mem: 1 1203 0.1: 1204 000005:[a#2,SET-a#2,SET] 1205 000006:[c#3,SET-c#3,SET] 1206 0.0: 1207 000004:[a#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1208 1209 compact a-e 1210 ---- 1211 1: 1212 000007:[a#2,SET-c#72057594037927935,RANGEDEL] 1213 000008:[c#3,SET-e#72057594037927935,RANGEDEL] 1214 1215 compact a-b 1216 ---- 1217 1: 1218 000008:[c#3,SET-e#72057594037927935,RANGEDEL] 1219 2: 1220 000007:[a#2,SET-c#72057594037927935,RANGEDEL] 1221 1222 iter seq=4 1223 seek-lt d 1224 prev 1225 prev 1226 ---- 1227 c:v 1228 a:v 1229 . 1230 1231 # A range tombstone straddles two sstables. One is compacted two 1232 # levels lower. The other is compacted one level lower. The one that 1233 # is compacted one level lower should not see its boundaries expand 1234 # causing it to delete more keys. A snapshot is used to prevent range 1235 # tombstone from being elided when it gets compacted to the bottommost 1236 # level. 1237 1238 define target-file-sizes=(100, 1) snapshots=(1) 1239 L0 1240 a.RANGEDEL.1:e 1241 L0 1242 a.SET.2:v 1243 L0 1244 c.SET.3:v 1245 L2 1246 d.SET.0:v 1247 ---- 1248 mem: 1 1249 0.1: 1250 000005:[a#2,SET-a#2,SET] 1251 000006:[c#3,SET-c#3,SET] 1252 0.0: 1253 000004:[a#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1254 2: 1255 000007:[d#0,SET-d#0,SET] 1256 1257 compact a-b 1258 ---- 1259 1: 1260 000008:[a#2,SET-c#72057594037927935,RANGEDEL] 1261 000009:[c#3,SET-d#72057594037927935,RANGEDEL] 1262 000010:[d#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1263 2: 1264 000007:[d#0,SET-d#0,SET] 1265 1266 compact d-e 1267 ---- 1268 1: 1269 000008:[a#2,SET-c#72057594037927935,RANGEDEL] 1270 000009:[c#3,SET-d#72057594037927935,RANGEDEL] 1271 3: 1272 000011:[d#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1273 1274 get seq=4 1275 c 1276 ---- 1277 c:v 1278 1279 compact a-b L1 1280 ---- 1281 1: 1282 000009:[c#3,SET-d#72057594037927935,RANGEDEL] 1283 2: 1284 000008:[a#2,SET-c#72057594037927935,RANGEDEL] 1285 3: 1286 000011:[d#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1287 1288 get seq=4 1289 c 1290 ---- 1291 c:v 1292 1293 # A slight variation on the scenario above where a range tombstone is 1294 # expanded past the boundaries of its "atomic compaction unit". 1295 1296 define target-file-sizes=(100, 1) snapshots=(1) 1297 L0 1298 a.RANGEDEL.1:e 1299 L0 1300 a.SET.2:v 1301 L0 1302 c.SET.3:v 1303 L0 1304 f.SET.4:v 1305 L2 1306 d.SET.0:v 1307 ---- 1308 mem: 1 1309 0.1: 1310 000005:[a#2,SET-a#2,SET] 1311 000006:[c#3,SET-c#3,SET] 1312 0.0: 1313 000004:[a#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1314 000007:[f#4,SET-f#4,SET] 1315 2: 1316 000008:[d#0,SET-d#0,SET] 1317 1318 compact a-b 1319 ---- 1320 0.0: 1321 000007:[f#4,SET-f#4,SET] 1322 1: 1323 000009:[a#2,SET-c#72057594037927935,RANGEDEL] 1324 000010:[c#3,SET-d#72057594037927935,RANGEDEL] 1325 000011:[d#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1326 2: 1327 000008:[d#0,SET-d#0,SET] 1328 1329 compact d-e 1330 ---- 1331 0.0: 1332 000007:[f#4,SET-f#4,SET] 1333 1: 1334 000009:[a#2,SET-c#72057594037927935,RANGEDEL] 1335 000010:[c#3,SET-d#72057594037927935,RANGEDEL] 1336 3: 1337 000012:[d#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1338 1339 get seq=4 1340 c 1341 ---- 1342 c:v 1343 1344 compact f-f L0 1345 ---- 1346 1: 1347 000009:[a#2,SET-c#72057594037927935,RANGEDEL] 1348 000010:[c#3,SET-d#72057594037927935,RANGEDEL] 1349 000007:[f#4,SET-f#4,SET] 1350 3: 1351 000012:[d#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1352 1353 compact a-f L1 1354 ---- 1355 2: 1356 000013:[a#2,SET-c#72057594037927935,RANGEDEL] 1357 000014:[c#3,SET-d#72057594037927935,RANGEDEL] 1358 000015:[f#4,SET-f#4,SET] 1359 3: 1360 000012:[d#1,RANGEDEL-e#72057594037927935,RANGEDEL] 1361 1362 get seq=4 1363 c 1364 ---- 1365 c:v 1366 1367 define 1368 L0 1369 a.RANGEDEL.3:f 1370 L0 1371 a.RANGEDEL.4:c 1372 c.RANGEDEL.4:f 1373 L1 1374 b.RANGEDEL.2:e 1375 L2 1376 c.RANGEDEL.1:d 1377 ---- 1378 mem: 1 1379 0.1: 1380 000005:[a#4,RANGEDEL-f#72057594037927935,RANGEDEL] 1381 0.0: 1382 000004:[a#3,RANGEDEL-f#72057594037927935,RANGEDEL] 1383 1: 1384 000006:[b#2,RANGEDEL-e#72057594037927935,RANGEDEL] 1385 2: 1386 000007:[c#1,RANGEDEL-d#72057594037927935,RANGEDEL] 1387 1388 wait-pending-table-stats 1389 000007 1390 ---- 1391 num-entries: 1 1392 num-deletions: 1 1393 num-range-key-sets: 0 1394 point-deletions-bytes-estimate: 0 1395 range-deletions-bytes-estimate: 0 1396 1397 wait-pending-table-stats 1398 000006 1399 ---- 1400 num-entries: 1 1401 num-deletions: 1 1402 num-range-key-sets: 0 1403 point-deletions-bytes-estimate: 0 1404 range-deletions-bytes-estimate: 836 1405 1406 wait-pending-table-stats 1407 000004 1408 ---- 1409 num-entries: 1 1410 num-deletions: 1 1411 num-range-key-sets: 0 1412 point-deletions-bytes-estimate: 0 1413 range-deletions-bytes-estimate: 1672 1414 1415 wait-pending-table-stats 1416 000005 1417 ---- 1418 num-entries: 2 1419 num-deletions: 2 1420 num-range-key-sets: 0 1421 point-deletions-bytes-estimate: 0 1422 range-deletions-bytes-estimate: 1672 1423 1424 1425 # Range deletions with varying overlap. 1426 define 1427 L0 1428 a.SET.4:4 1429 b.SET.4:4 1430 d.SET.4:4 1431 c.RANGEDEL.4:d 1432 L1 1433 a.SET.3:3 1434 d.SET.3:3 1435 b.RANGEDEL.3:d 1436 L2 1437 d.SET.2:2 1438 a.RANGEDEL.2:d 1439 L3 1440 a.SET.1:1 1441 b.SET.1:1 1442 c.SET.1:1 1443 d.SET.1:1 1444 ---- 1445 mem: 1 1446 0.0: 1447 000004:[a#4,SET-d#4,SET] 1448 1: 1449 000005:[a#3,SET-d#3,SET] 1450 2: 1451 000006:[a#2,RANGEDEL-d#2,SET] 1452 3: 1453 000007:[a#1,SET-d#1,SET] 1454 1455 wait-pending-table-stats 1456 000007 1457 ---- 1458 num-entries: 4 1459 num-deletions: 0 1460 num-range-key-sets: 0 1461 point-deletions-bytes-estimate: 0 1462 range-deletions-bytes-estimate: 0 1463 1464 wait-pending-table-stats 1465 000006 1466 ---- 1467 num-entries: 2 1468 num-deletions: 1 1469 num-range-key-sets: 0 1470 point-deletions-bytes-estimate: 0 1471 range-deletions-bytes-estimate: 42 1472 1473 wait-pending-table-stats 1474 000005 1475 ---- 1476 num-entries: 3 1477 num-deletions: 1 1478 num-range-key-sets: 0 1479 point-deletions-bytes-estimate: 0 1480 range-deletions-bytes-estimate: 68 1481 1482 wait-pending-table-stats 1483 000004 1484 ---- 1485 num-entries: 4 1486 num-deletions: 1 1487 num-range-key-sets: 0 1488 point-deletions-bytes-estimate: 0 1489 range-deletions-bytes-estimate: 100 1490 1491 # Multiple Range deletions in a table. 1492 define 1493 L0 1494 a.RANGEDEL.6:d 1495 e.RANGEDEL.6:z 1496 L0 1497 a.RANGEDEL.5:d 1498 L0 1499 e.RANGEDEL.4:z 1500 L1 1501 a.SET.2:1 1502 b.SET.2:1 1503 c.SET.2:1 1504 L2 1505 x.SET.1:2 1506 ---- 1507 mem: 1 1508 0.1: 1509 000004:[a#6,RANGEDEL-z#72057594037927935,RANGEDEL] 1510 0.0: 1511 000005:[a#5,RANGEDEL-d#72057594037927935,RANGEDEL] 1512 000006:[e#4,RANGEDEL-z#72057594037927935,RANGEDEL] 1513 1: 1514 000007:[a#2,SET-c#2,SET] 1515 2: 1516 000008:[x#1,SET-x#1,SET] 1517 1518 wait-pending-table-stats 1519 000005 1520 ---- 1521 num-entries: 1 1522 num-deletions: 1 1523 num-range-key-sets: 0 1524 point-deletions-bytes-estimate: 0 1525 range-deletions-bytes-estimate: 782 1526 1527 wait-pending-table-stats 1528 000006 1529 ---- 1530 num-entries: 1 1531 num-deletions: 1 1532 num-range-key-sets: 0 1533 point-deletions-bytes-estimate: 0 1534 range-deletions-bytes-estimate: 771 1535 1536 wait-pending-table-stats 1537 000004 1538 ---- 1539 num-entries: 2 1540 num-deletions: 2 1541 num-range-key-sets: 0 1542 point-deletions-bytes-estimate: 0 1543 range-deletions-bytes-estimate: 1553