SharePoint 2013 Non-Rectangular Search Topology
The SharePoint 2013 search topology is the next evolution of the Fast search engine from ESP and Fast Search for SharePoint. In previous releases you were forced to equal number of "rows" and "columns" in your search deployment. This is no longer a constraint in SharePoint 2013. This can be useful in many operational scenarios where you want to take search components off a server for maintenance. You can also imagine scenarios where you store archive content in the same farm with frequently updated/searched content. There is currently no option to configure your own document routing, which is the piece missing to support the hybrid content scenario.
There are some caveats to activating non-rectangular topologies. You will run into an error if you try add a new index partition (column in ESP / FS4SP terminology) that does not have the same replicas as the existing topology or if the current topology is not already rectangular. I have not seen this requirement documented anywhere.
Here's an example on my farm.
Server Name | Admin | Crawler | Content Processing | Analytics Processing | Query Processing | Index Partition 0 | Index Partition 1 |
PDSP002 | x | x | x | ||||
PDSP003 | x | x | x | ||||
PDSP004 | x | x | x |
If I now add a new replica on partition 1. .
Server Name | Admin | Crawler | Content Processing | Analytics Processing | Query Processing | Index Partition 0 | Index Partition 1 |
PDSP002 | x | x | x | ||||
PDSP003 | x | x | x | ||||
PDSP004 | x | x | x | ||||
PDSP007 | x |
I can make my topology even more unbalanced by creating one partition with a single replica and another partition with three replicas.
Server Name | Admin | Crawler | Content Processing | Analytics Processing | Query Processing | Index Partition 0 | Index Partition 1 |
PDSP001 | x | ||||||
PDSP002 | x | x | x | ||||
PDSP003 | x | x | x | ||||
PDSP004 | x | x | x | ||||
PDSP007 | x |
But if I try to add an additional column in either of these states, I will get an error about repartioning the index:
PS C:\Users\SPFarm> Set-SPEnterpriseSearchTopology -Identity $newTopology
Set-SPEnterpriseSearchTopology : Topology activation failed. It is not possible to repartition a non-rectangular topology
At line:1 char:1
+ Set-SPEnterpriseSearchTopology -Identity $newTopology
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Offic...tSearchTopology:SetSearchTopology) [Set-SPEnterpriseSearchTopology], SearchTopologyActivationException
+ FullyQualifiedErrorId : Microsoft.Office.Server.Search.Cmdlet.SetSearchTopology
You can actually get there from here, it just takes a few steps. First revert back to a rectangular topology.
Server Name | Admin | Crawler | Content Processing | Analytics Processing | Query Processing | Index Partition 0 | Index Partition 1 |
PDSP002 | x | x | x | ||||
PDSP003 | x | x | x | ||||
PDSP004 | x | x | x |
And then add the new partition
Server Name | Admin | Crawler | Content Processing | Analytics Processing | Query Processing | Index Partition 0 | Index Partition 1 | Index Partition 2 |
PDSP002 | x | x | x | |||||
PDSP003 | x | x | x | |||||
PDSP004 | x | x | x | |||||
PDSP005 | x |
Finally add back your unbalanced replicas.
Server Name | Admin | Crawler | Content Processing | Analytics Processing | Query Processing | Index Partition 0 | Index Partition 1 | Index Partition 2 |
PDSP001 | x | |||||||
PDSP002 | x | x | x | |||||
PDSP003 | x | x | x | |||||
PDSP004 | x | x | x | |||||
PDSP005 | x | |||||||
PDSP007 | x |