There are cases where a document split is overdue and it continues to grow until it hits the MongoDB limit of 16MB.
It gets more likely, the more cluster nodes are running and when they all update the same property with a somewhat larger value. E.g. the :childOrder property of a node with many children.
The current split logic has multiple triggers that will result in creating a previous document.
- There are 100 old changes for a cluster node that can be moved
- A node was recreated with a binary bigger than 4k
- The main document is bigger than 256k and 30% of its size can be moved to a previous document
The last condition may cause the uncontrolled growth of the document when there are many cluster nodes. If all cluster nodes continuously change a property on a node, then none of the cluster nodes will be able to move 30% of the document.