The IPartition interface is a logical representation of a physical storage partition and exists even if the partition is not physically allocated. It is mapped to the _Storage-object record in the database and is thus never explicitly created or deleted by the service. Thus, partition collections do not support an Add( ) or Remove( ) method. There is always one partition for each
Tenant group
Tenant that is not part of a group
Multi-tenant enabled table index and LOB field in the database
IPartition is an exception among most other IDataAdminElement interfaces in that it does not have a single scalar key. IPartition has a new Owner property of type IPartitionOwner, allowing the interface to define the relation to ITenant, ITenantGroup, ITable, IField, IIndex, and IpartitionPolicyDetail with the same key property. The collection interfaces through which partitions can be accessed using these properties include, IPartitionCollection, IPartitionMap, and ISchemaPartitionMap.
The DataAdminService does not provide any CRUD methods for partitions alone, as partitions always exist to support other entities.
IPartition has an AllocationState property that can be set to "Allocated", "Delayed", or "None" and is initialized based on the value of the DefaultAllocationState property on the ITenant or ITenantGroup or IPartitionPolicyDetail to which it belongs. The "Delayed" setting allows the allocation to be delayed or allocated later using the Allocate( ) method on an ITenant or ITenantGroup or IPartitionPolicyDetail. The "None" setting also postpones the allocation and allows the partition to be allocated individually later (or never). The property setting cannot be changed once it is set to "Allocated".
IPartition has an Allocate( ) method that is the equivalent of setting AllocationState to "Allocated" but in addition returns TRUE or FALSE to indicate whether the allocation has actually completed.
The AllocationState property can only be edited in table partitions. Field and index partitions obtain the setting from table partitions.
All entity objects that have partitions have Allocate( ) methods that allow allocation of all contained partitions. The default is to allocate partitions set to "Delayed" similar to the database. However, in some cases the API also allows allocation of multiple partitions that are set to "None".
If you want to use an area other than the default, you must also set the Area property on IPartition before the partition is allocated.