2.6.1.2.4 Duplicating the Contents of One Node to Another
Copying all the contents of an existing node to a new node, where the new node can be a top-level node or a subnode (for example, when a Message object is added to another Message object as an Attachment object). Both nodes end up referencing the same instance of the data block, and subnodes (that is, single-instancing).
Requirement level |
Actions |
---|---|
Required |
The BBT Reference Count for bidData and bidSub of the existing node MUST be incremented. The NBT or SLBLOCK MUST be updated, depending on whether the target is a node or subnode, to reflect the new node, using the same bidData and bidSub values as the existing node. The corresponding rgnid[nidType] field in the HEADER.ROOT structure MUST be incremented. |
Recommended |
None. |
Optional |
None. |
Possible side effects:
Scenario |
Impact |
---|---|
NBT page too full. |
The NBT might need more levels or need to be balanced. |
The target is a subnode and the SLBLOCK is full. |
The subnode BTree needs to grow in depth to accommodate new subnode entry. |
If bidData points to a data tree, there is no need to recursively increment the reference count of its child data blocks.
If the node contains a subnode, there is no need to recursively increment the reference count of its child data blocks.
In many cases the existing node and new node have a different nidParent.