6.90 SDO_NET.LOGICAL_PARTITION

Format

SDO_NET.LOGICAL_PARTITION(      
  network              IN VARCHAR2,      
  partition_table_name IN VARCHAR2,      
  max_num_nodes        IN NUMBER,      
  log_loc              IN VARCHAR2,      
  log_file             IN VARCHAR2,      
  open_mode            IN VARCHAR2 DEFAULT 'A',      
  link_level           IN NUMBER DEFAULT 1);

or

SDO_NET.LOGICAL_PARTITION(      
  network              IN VARCHAR2,      
  partition_table_name IN VARCHAR2,      
  max_num_nodes        IN NUMBER,      
  log_loc              IN VARCHAR2,      
  log_file             IN VARCHAR2,      
  open_mode            IN VARCHAR2 DEFAULT 'A',      
  link_level           IN NUMBER DEFAULT 1,      
  part_size_tolerance  IN NUMBER);

Description

Partitions a logical network, and stores the information in the partition table.

Note:

If the logical network is a power law (scale-free) network, do not use this procedure to partition it, but instead use the SDO_NET.LOGICAL_POWERLAW_PARTITION procedure.

Parameters

network

Network name.

partition_table_name

Name of the partition table, which is created by this procedure. (If an existing table with the specified name already exists, it is updated with partition information for the specified link level.) The partition table is described in Partition Table.

max_num_nodes

Maximum number of nodes to include in each partition. For example, if you specify 5000 and if the network contains 50,000 nodes, each partition will have 5000 or fewer nodes, and the total number of partitions will be 10 or higher.

log_loc

Directory object that identifies the path for the log file. To create a directory object, use the SQL*Plus command CREATE DIRECTORY.

log_file

Log file containing information about operations on the logical network, including any possible errors or problems.

open_mode

A one-character code indicating the mode in which to open the log file: W for write over (that is, delete any existing log file at the specified location and name, and create a new file), or A (the default) for append (that is, append information to the existing specified log file). If you specify A and the log file does not exist, a new log file is created.

link_level

Network link level on which to perform the partitioning (default = 1). The link level reflects the priority level for the link, and is used for network analysis, so that links with higher priority levels can be considered first in computing a path.

part_size_tolerance

Allowed tolerance in partition size expressed as a decimal fraction of max_num_nodes. Must be from 0 to 1. This parameter allows the partitioning procedure to create partitions with sizes larger than the one specified by max_num_nodes, thereby providing the flexibility to generate partitions with reduced inter-connectivity. For example, if max_num_nodes is 5000 and part_size_tolerance is 0.1, a partition can include up to 5500 (5000+500 because 500 is 0.1*5000) nodes.

Usage Notes

The format with the part_size_tolerance parameter enables you to partition logical networks with a primary focus on reducing the inter-connectivity among partitions while keeping the edge-cut small.

After you use this procedure to create the partitions, consider using the SDO_NET.GENERATE_PARTITION_BLOBS procedure, to enable better performance for many network analysis operations, especially with large networks.

Examples

The following example creates partitions for link level 1 in the MY_LOGICAL_NET network, and creates the MY_LOGICAL_PART_TAB table. The maximum number of nodes to be placed in any partition is 5000. Information about the operation is added (open_mode => 'a') to the my_logical_part.log file located in the location associated with the directory object named LOG_DIR.

EXECUTE SDO_NET.LOGICAL_PARTITION(network => 'MY_LOGICAL_NET', -
  partition_table_name => 'my_logical_part_tab',-
  max_num_nodes => 5000,-
  log_loc => 'LOG_DIR', log_file=> 'my_logical_part.log',-
  link_level => 1, open_mode => 'a');

The following example creates partitions for link level 1 in the MY_LOGICAL_NET network, and creates the MY_LOGICAL_PART_TAB table. The maximum number of nodes to be placed in any partition is 5500 because of the combination of the max_num_nodes and part_size_tolerance values (5000 + 0.1*5000 = 5500). Information about the operation is written (open_mode => 'w') to the my_logical_part.log file located in the location associated with the directory object named LOG_DIR, replacing any existing file with that name in that location.

EXECUTE SDO_NET.LOGICAL_PARTITION(network => 'MY_LOGICAL_NET', -
  partition_table_name => 'my_logical_part_tab',-
  max_num_nodes => 5000,-
  log_loc => 'LOG_DIR', log_file=> 'my_logical_part.log',-
  link_level => 1, open_mode => 'w',
  part_size_tolerance => 0.1);