How and when does PostgreSQL BTree node balancing? Does it hold a full tree lock? I'm assuming there will be an edge case in performance degradation where the right tree is very much longer than the left.
The split algorithm merely splits a node into 2 with the page is full, however I don't think it will resolve the problem of unbalanced Btree.