Search

Stitch B-Trees by xor88

Closed
as Won't Fix Help for as Won't Fix

1
0
Sign in
to vote
Type: Suggestion
ID: 774015
Opened: 12/11/2012 3:42:36 AM
Access Restriction: Public
0
Workaround(s)
It should be possible to combine multiple adjacent partitions into one partition without significant data movement. This could be implemented by stitching the B-trees together (just like parallel, offline, non-partitioned index-build does it!).

This feature should also work for schema-compatible tables which contain distinct ranges of data.

Stitching the B-trees would require

- validation of the operation (schema compatibility and adjacent data ranges)
- modifying the page pointers on O(log N) pages
- modifying the tree root page or creating a new root page

It would be an O(log N) operation making it extremely fast even on the biggest tables.

Benefits:

- A very valuable feature for data loading processes (ETL). One could load concurrently into multiple tables and combine them afterwards. No partitioning necessary.
- And for partitioned tables this would provide fast partition merging.
- A similar concept could be implemented for fast partition splitting and table splitting.
- One could convert an existing table into a partitioned one without rebuilding the table. Just split the existing B-tree and add the metadata for all partitions
- One could convert a partitioned table into an unpartitioned one. Again, without rebuilding.

In short, a killer feature for performance of VLDB's.
Details (expand)

Product Language

English

Category

SQL Engine

Proposed Solution

see above

Primary Benefit

Improved Performance

Other Benefits

 

Virtualization

 
File Attachments
0 attachments
Sign in to post a comment.
Posted by Microsoft on 3/1/2013 at 12:34 AM
Hi, Thank you for your feedback. We currently have no plans to implement this feature. Thanks & Regards, Pooja Harjani, Program Manager.
Posted by xor88 on 2/13/2013 at 2:43 PM
It is a pity that this issue was closed without comment. I hope this idea is not lost forever now.
Sign in to post a workaround.