A Divide and Conquer with Semi-Global Failover for Software Defined Networks