- Notifications
You must be signed in to change notification settings - Fork5
Commit631118f
committed
Get rid of the post-recovery cleanup step of GIN page splits.
Replace it with an approach similar to what GiST uses: when a page is split,the left sibling is marked with a flag indicating that the parent hasn't beenupdated yet. When the parent is updated, the flag is cleared. If an insertionsteps on a page with the flag set, it will finish split before proceedingwith the insertion.The post-recovery cleanup mechanism was never totally reliable, as insertionto the parent could fail e.g because of running out of memory or disk space,leaving the tree in an inconsistent state.This also divides the responsibility of WAL-logging more clearly betweenthe generic ginbtree.c code, and the parts specific to entry and postingtrees. There is now a common WAL record format for insertions and deletions,which is written by ginbtree.c, followed by tree-specific payload, which isreturned by the placetopage- and split- callbacks.1 parentce5326e commit631118f
File tree
9 files changed
+666
-556
lines changed- src
- backend/access
- gin
- rmgrdesc
- include/access
9 files changed
+666
-556
lines changedLines changed: 315 additions & 132 deletions
Large diffs are not rendered by default.
Lines changed: 28 additions & 63 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
227 | 227 |
| |
228 | 228 |
| |
229 | 229 |
| |
| 230 | + | |
230 | 231 |
| |
231 | 232 |
| |
232 | 233 |
| |
| |||
255 | 256 |
| |
256 | 257 |
| |
257 | 258 |
| |
| 259 | + | |
258 | 260 |
| |
259 | 261 |
| |
260 | 262 |
| |
| |||
338 | 340 |
| |
339 | 341 |
| |
340 | 342 |
| |
341 |
| - | |
342 |
| - | |
343 | 343 |
| |
344 |
| - | |
345 |
| - | |
| 344 | + | |
346 | 345 |
| |
347 | 346 |
| |
348 | 347 |
| |
| |||
359 | 358 |
| |
360 | 359 |
| |
361 | 360 |
| |
362 |
| - | |
363 |
| - | |
364 |
| - | |
365 |
| - | |
366 |
| - | |
367 |
| - | |
368 |
| - | |
369 |
| - | |
370 |
| - | |
371 |
| - | |
372 |
| - | |
373 |
| - | |
374 |
| - | |
375 |
| - | |
376 |
| - | |
377 |
| - | |
378 |
| - | |
379 |
| - | |
380 |
| - | |
381 |
| - | |
382 |
| - | |
383 |
| - | |
384 |
| - | |
385 |
| - | |
386 |
| - | |
387 |
| - | |
388 |
| - | |
389 |
| - | |
390 |
| - | |
391 |
| - | |
392 |
| - | |
393 |
| - | |
394 |
| - | |
395 |
| - | |
396 |
| - | |
397 |
| - | |
398 | 361 |
| |
399 | 362 |
| |
400 | 363 |
| |
| 364 | + | |
401 | 365 |
| |
402 | 366 |
| |
403 | 367 |
| |
| |||
415 | 379 |
| |
416 | 380 |
| |
417 | 381 |
| |
| 382 | + | |
418 | 383 |
| |
419 | 384 |
| |
420 |
| - | |
421 |
| - | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
422 | 394 |
| |
423 | 395 |
| |
424 | 396 |
| |
425 | 397 |
| |
426 | 398 |
| |
427 | 399 |
| |
428 | 400 |
| |
429 |
| - | |
430 |
| - | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
431 | 405 |
| |
432 | 406 |
| |
433 | 407 |
| |
| |||
456 | 430 |
| |
457 | 431 |
| |
458 | 432 |
| |
459 |
| - | |
460 |
| - | |
| 433 | + | |
| 434 | + | |
461 | 435 |
| |
462 | 436 |
| |
463 | 437 |
| |
| |||
488 | 462 |
| |
489 | 463 |
| |
490 | 464 |
| |
| 465 | + | |
491 | 466 |
| |
492 | 467 |
| |
493 | 468 |
| |
| |||
566 | 541 |
| |
567 | 542 |
| |
568 | 543 |
| |
569 |
| - | |
570 |
| - | |
571 |
| - | |
572 |
| - | |
573 | 544 |
| |
574 | 545 |
| |
575 |
| - | |
576 |
| - | |
577 |
| - | |
578 | 546 |
| |
579 | 547 |
| |
580 | 548 |
| |
581 | 549 |
| |
582 |
| - | |
| 550 | + | |
583 | 551 |
| |
584 | 552 |
| |
585 | 553 |
| |
586 | 554 |
| |
587 |
| - | |
| 555 | + | |
588 | 556 |
| |
589 | 557 |
| |
590 | 558 |
| |
| |||
610 | 578 |
| |
611 | 579 |
| |
612 | 580 |
| |
613 |
| - | |
| 581 | + | |
614 | 582 |
| |
615 |
| - | |
616 |
| - | |
617 |
| - | |
618 | 583 |
| |
619 | 584 |
| |
620 | 585 |
| |
621 | 586 |
| |
622 |
| - | |
623 |
| - | |
| 587 | + | |
| 588 | + | |
624 | 589 |
| |
625 | 590 |
| |
626 |
| - | |
627 |
| - | |
| 591 | + | |
| 592 | + | |
628 | 593 |
| |
629 | 594 |
| |
630 | 595 |
| |
|
Lines changed: 22 additions & 52 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
504 | 504 |
| |
505 | 505 |
| |
506 | 506 |
| |
507 |
| - | |
| 507 | + | |
508 | 508 |
| |
509 | 509 |
| |
510 | 510 |
| |
511 | 511 |
| |
512 | 512 |
| |
513 | 513 |
| |
514 | 514 |
| |
515 |
| - | |
516 | 515 |
| |
517 | 516 |
| |
518 | 517 |
| |
| |||
522 | 521 |
| |
523 | 522 |
| |
524 | 523 |
| |
525 |
| - | |
526 |
| - | |
527 |
| - | |
528 |
| - | |
529 | 524 |
| |
530 |
| - | |
531 |
| - | |
532 |
| - | |
533 |
| - | |
534 |
| - | |
535 |
| - | |
536 |
| - | |
537 |
| - | |
538 |
| - | |
539 |
| - | |
540 |
| - | |
541 |
| - | |
542 |
| - | |
543 |
| - | |
544 |
| - | |
545 |
| - | |
546 |
| - | |
547 |
| - | |
548 |
| - | |
549 | 525 |
| |
550 | 526 |
| |
551 | 527 |
| |
552 |
| - | |
| 528 | + | |
553 | 529 |
| |
554 | 530 |
| |
555 | 531 |
| |
| |||
577 | 553 |
| |
578 | 554 |
| |
579 | 555 |
| |
| 556 | + | |
580 | 557 |
| |
581 | 558 |
| |
582 | 559 |
| |
| |||
588 | 565 |
| |
589 | 566 |
| |
590 | 567 |
| |
591 |
| - | |
| 568 | + | |
592 | 569 |
| |
593 | 570 |
| |
594 | 571 |
| |
595 |
| - | |
596 |
| - | |
597 |
| - | |
598 | 572 |
| |
599 | 573 |
| |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
600 | 578 |
| |
601 | 579 |
| |
602 |
| - | |
603 | 580 |
| |
604 | 581 |
| |
605 | 582 |
| |
| |||
624 | 601 |
| |
625 | 602 |
| |
626 | 603 |
| |
| 604 | + | |
627 | 605 |
| |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
628 | 610 |
| |
629 | 611 |
| |
630 | 612 |
| |
| |||
654 | 636 |
| |
655 | 637 |
| |
656 | 638 |
| |
657 |
| - | |
658 |
| - | |
659 |
| - | |
660 |
| - | |
661 | 639 |
| |
662 | 640 |
| |
663 |
| - | |
664 |
| - | |
665 |
| - | |
666 | 641 |
| |
667 | 642 |
| |
668 | 643 |
| |
669 |
| - | |
| 644 | + | |
670 | 645 |
| |
671 | 646 |
| |
672 | 647 |
| |
673 | 648 |
| |
674 |
| - | |
| 649 | + | |
675 | 650 |
| |
676 | 651 |
| |
677 | 652 |
| |
| |||
702 | 677 |
| |
703 | 678 |
| |
704 | 679 |
| |
705 |
| - | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
706 | 683 |
| |
707 |
| - | |
708 |
| - | |
709 |
| - | |
710 | 684 |
| |
711 | 685 |
| |
712 |
| - | |
713 |
| - | |
714 |
| - | |
715 |
| - | |
| 686 | + | |
| 687 | + | |
716 | 688 |
| |
717 | 689 |
| |
718 | 690 |
| |
719 |
| - | |
720 |
| - | |
721 |
| - | |
722 |
| - | |
| 691 | + | |
| 692 | + | |
723 | 693 |
| |
724 | 694 |
| |
725 | 695 |
| |
|
0 commit comments
Comments
(0)