Package | Description |
---|---|
de.uni_kl.cs.discodnc.nc | |
de.uni_kl.cs.discodnc.nc.analyses | |
de.uni_kl.cs.discodnc.nc.arrivalbounds | |
de.uni_kl.cs.discodnc.network |
Modifier and Type | Method | Description |
---|---|---|
java.util.Set<ArrivalCurve> |
ArrivalBound.computeArrivalBound(Link link,
Flow flow_of_interest) |
|
static java.util.Set<ArrivalCurve> |
ArrivalBoundDispatch.computeArrivalBounds(Network network,
AnalysisConfig configuration,
Link link,
java.util.Set<Flow> flows_to_bound,
Flow flow_of_interest) |
|
static java.util.Set<ArrivalCurve> |
ArrivalBoundDispatch.computeArrivalBounds(Network network,
AnalysisConfig configuration,
Server server,
java.util.Set<Flow> flows_to_bound,
Flow flow_of_interest) |
The flow_of_interest low priority supersedes the wish to bound all flows in
flows_to_bound, i.e., if flow_of_interest will be removed from flows_to_bound
before bounding the arrivals such that the result will always hold (only) for
{flows_to_bound} \ {flow_of_interest}.
|
void |
Analysis.performAnalysis(Flow flow_of_interest) |
|
void |
Analysis.performAnalysis(Flow flow_of_interest,
Path path) |
|
static PmooAnalysis |
Analysis.performPmooEnd2End(Network network,
AnalysisConfig configuration,
Flow flow_of_interest) |
|
static PmooAnalysis |
Analysis.performPmooEnd2End(Network network,
Flow flow_of_interest) |
|
static SeparateFlowAnalysis |
Analysis.performSfaEnd2End(Network network,
AnalysisConfig configuration,
Flow flow_of_interest) |
|
static SeparateFlowAnalysis |
Analysis.performSfaEnd2End(Network network,
Flow flow_of_interest) |
|
static TotalFlowAnalysis |
Analysis.performTfaEnd2End(Network network,
AnalysisConfig configuration,
Flow flow_of_interest) |
|
static TotalFlowAnalysis |
Analysis.performTfaEnd2End(Network network,
Flow flow_of_interest) |
Modifier and Type | Method | Description |
---|---|---|
static java.util.Set<ArrivalCurve> |
ArrivalBoundDispatch.computeArrivalBounds(Network network,
AnalysisConfig configuration,
Link link,
java.util.Set<Flow> flows_to_bound,
Flow flow_of_interest) |
|
static java.util.Set<ArrivalCurve> |
ArrivalBoundDispatch.computeArrivalBounds(Network network,
AnalysisConfig configuration,
Server server,
java.util.Set<Flow> flows_to_bound,
Flow flow_of_interest) |
The flow_of_interest low priority supersedes the wish to bound all flows in
flows_to_bound, i.e., if flow_of_interest will be removed from flows_to_bound
before bounding the arrivals such that the result will always hold (only) for
{flows_to_bound} \ {flow_of_interest}.
|
Modifier and Type | Method | Description |
---|---|---|
private java.util.Map<java.util.Set<Flow>,java.util.LinkedList<Path>> |
PmooAnalysis.getProlongationsToSubpaths(Path path,
java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped_original) |
Modifier and Type | Method | Description |
---|---|---|
java.util.Set<ServiceCurve> |
PmooAnalysis.getServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
protected java.util.Set<ServiceCurve> |
SeparateFlowAnalysis.getServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
Deprecated.
|
java.util.Set<ServiceCurve> |
TandemMatchingAnalysis.getServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
private java.util.Set<ServiceCurve> |
PmooAnalysis.getServiceCurvesFP(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
private java.util.Set<ServiceCurve> |
PmooAnalysis.getServiceCurvesStandard(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
java.util.Set<ServiceCurve> |
TandemMatchingAnalysis.getSubTandemServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
void |
PmooAnalysis.performAnalysis(Flow flow_of_interest) |
Performs a pay-multiplexing-only-once (PMOO) analysis for the
flow_of_interest . |
void |
PmooAnalysis.performAnalysis(Flow flow_of_interest,
Path path) |
|
void |
SeparateFlowAnalysis.performAnalysis(Flow flow_of_interest) |
Performs a separated flow analysis for the
flow_of_interest . |
void |
SeparateFlowAnalysis.performAnalysis(Flow flow_of_interest,
Path path) |
|
void |
SeparateFlowAnalysis.performAnalysis(Flow flow_of_interest,
Server server) |
|
void |
TandemMatchingAnalysis.performAnalysis(Flow flow_of_interest) |
Performs a Tandem Matching Analysis for the
flow_of_interest . |
void |
TandemMatchingAnalysis.performAnalysis(Flow flow_of_interest,
Path path) |
|
void |
TotalFlowAnalysis.performAnalysis(Flow flow_of_interest) |
|
void |
TotalFlowAnalysis.performAnalysis(Flow flow_of_interest,
Path path) |
|
static SeparateFlowResults |
SeparateFlowAnalysis.tandemAnalysis(Network network,
Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve,
AnalysisConfig configuration) |
|
private java.util.Set<ServiceCurve> |
PmooAnalysis.xtxSubpathBetas(Flow flow_of_interest,
Path path,
java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped) |
Modifier and Type | Method | Description |
---|---|---|
protected static ServiceCurve |
PmooAnalysis.computePartialPMOOServiceCurve(Path path,
ServiceCurve[] service_curves,
java.util.List<Flow> cross_flow_substitutes,
java.util.Map<Flow,java.lang.Integer> flow_tb_iter_map,
int[] server_rl_iters) |
Calculates the partial PMOO service curve for the given flow set by combining
all servers having an outgoing link contained in the given link-path.
|
protected static ServiceCurve |
PmooAnalysis.computePartialPMOOServiceCurve(Path path,
ServiceCurve[] service_curves,
java.util.List<Flow> cross_flow_substitutes,
java.util.Map<Flow,java.lang.Integer> flow_tb_iter_map,
int[] server_rl_iters) |
Calculates the partial PMOO service curve for the given flow set by combining
all servers having an outgoing link contained in the given link-path.
|
private java.util.Map<java.util.Set<Flow>,java.util.LinkedList<Path>> |
PmooAnalysis.getProlongationsToSubpaths(Path path,
java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped_original) |
|
static ServiceCurve |
PmooAnalysis.getServiceCurve(Path path,
java.util.List<Flow> cross_flow_substitutes) |
Concatenates the service curves along the given path
path
according to the PMOO approach and returns the result. |
java.util.Set<ServiceCurve> |
PmooAnalysis.getServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
protected java.util.Set<ServiceCurve> |
SeparateFlowAnalysis.getServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
Deprecated.
|
java.util.Set<ServiceCurve> |
TandemMatchingAnalysis.getServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
private java.util.Set<ServiceCurve> |
PmooAnalysis.getServiceCurvesFP(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
private java.util.Set<ServiceCurve> |
PmooAnalysis.getServiceCurvesStandard(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
java.util.Set<ServiceCurve> |
TandemMatchingAnalysis.getSubTandemServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
static SeparateFlowResults |
SeparateFlowAnalysis.tandemAnalysis(Network network,
Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve,
AnalysisConfig configuration) |
|
private java.util.Set<ServiceCurve> |
PmooAnalysis.xtxSubpathBetas(Flow flow_of_interest,
Path path,
java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped) |
Modifier and Type | Field | Description |
---|---|---|
(package private) java.util.Map<Link,java.util.Map<Flow,ArrivalCurve>> |
PmooSinkTreeTbRlABCache.map__link__entries |
Modifier and Type | Method | Description |
---|---|---|
protected void |
PmooSinkTreeTbRlABCache.addEntry(Link link,
Flow flow,
ArrivalCurve arrival_bound) |
|
java.util.Set<ArrivalCurve> |
PbooArrivalBound_Concatenation.computeArrivalBound(Link link,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PbooArrivalBound_Concatenation.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PbooArrivalBound_PerHop.computeArrivalBound(Link link,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PbooArrivalBound_PerHop.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
This code path computes the parameters relevant to construct the resulting
arrival bound directly, i.e., it does not compute and store the entire curves
resulting from intermediate computations in order to do so.
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound.computeArrivalBound(Link link,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
Computes the PMOO arrival bound for a set of
flows_to_bound . |
java.util.Set<ArrivalCurve> |
TandemMatchingArrivalBound.computeArrivalBound(Link link,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
TandemMatchingArrivalBound.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBoundDeConvolution(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
This code path uses the DiscoDNC's convolution operation.
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBoundDeConvolutionTBRL(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
This code path uses the DiscoDNC's convolution operation, like
computeArrivalBoundDeConvolutionTBRL does, yet, it uses the optimized
convolution and deconvolution operation, respectively, to directly compute
the relevant parameters defining the resulting curves.
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBoundHomogeneous(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
In homogeneous networks we can simply multiply the common latency with the
length of a flow's path instead of iterating over its servers and sum up for
each one's value individually.
|
protected ArrivalCurve |
PmooSinkTreeTbRlABCache.getEntry(Link link,
Flow flow) |
Modifier and Type | Method | Description |
---|---|---|
java.util.Set<ArrivalCurve> |
PbooArrivalBound_Concatenation.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PbooArrivalBound_PerHop.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
This code path computes the parameters relevant to construct the resulting
arrival bound directly, i.e., it does not compute and store the entire curves
resulting from intermediate computations in order to do so.
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
Computes the PMOO arrival bound for a set of
flows_to_bound . |
java.util.Set<ArrivalCurve> |
TandemMatchingArrivalBound.computeArrivalBound(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBoundDeConvolution(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
This code path uses the DiscoDNC's convolution operation.
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBoundDeConvolutionTBRL(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
This code path uses the DiscoDNC's convolution operation, like
computeArrivalBoundDeConvolutionTBRL does, yet, it uses the optimized
convolution and deconvolution operation, respectively, to directly compute
the relevant parameters defining the resulting curves.
|
java.util.Set<ArrivalCurve> |
PmooArrivalBound_SinkTreeTbRl.computeArrivalBoundHomogeneous(Link link,
java.util.Set<Flow> f_xfcaller,
Flow flow_of_interest) |
In homogeneous networks we can simply multiply the common latency with the
length of a flow's path instead of iterating over its servers and sum up for
each one's value individually.
|
Modifier and Type | Field | Description |
---|---|---|
static Flow |
Flow.NULL_FLOW |
Modifier and Type | Field | Description |
---|---|---|
private java.util.Set<Flow> |
Network.flows |
|
private java.util.Map<java.lang.Integer,Flow> |
Network.map__id__flow |
|
private java.util.Map<Link,java.util.Set<Flow>> |
Network.map__link__flows |
|
private java.util.Map<Server,java.util.Set<Flow>> |
Network.map__server__flows |
|
private java.util.Map<Server,java.util.Set<Flow>> |
Network.map__server__source_flows |
Modifier and Type | Method | Description |
---|---|---|
protected Flow |
Network.addFlow(ArrivalCurve arrival_curve,
Path path) |
|
Flow |
Network.addFlow(ArrivalCurve arrival_curve,
Server single_hop) |
Creates a flow and adds it to the network.
|
Flow |
Network.addFlow(ArrivalCurve arrival_curve,
Server source,
Server sink) |
Creates a flow and adds it to the network.
|
Flow |
Network.addFlow(ArrivalCurve arrival_curve,
java.util.List path) |
|
Flow |
Network.addFlow(java.lang.String alias,
ArrivalCurve arrival_curve,
Server single_hop) |
Creates a flow and adds it to the network.
|
Flow |
Network.addFlow(java.lang.String alias,
ArrivalCurve arrival_curve,
Server source,
Server sink) |
Creates a flow and adds it to the network.
|
Flow |
Network.addFlow(java.lang.String alias,
ArrivalCurve arrival_curve,
java.util.List path) |
Creates a flow and adds it to the network.
|
private Flow |
Network.addFlowToNetwork(java.lang.String alias,
ArrivalCurve arrival_curve,
Path path) |
|
static Flow |
Flow.createDummyFlow(java.lang.String alias,
ArrivalCurve ac,
Path path) |
Creates a dummy flow with an arrival curve.
All dummy flows share the same id -1. |
Flow |
Network.getFlow(int id) |
Modifier and Type | Method | Description |
---|---|---|
java.util.Set<Flow> |
Network.getFlows() |
|
java.util.Set<Flow> |
Network.getFlows(Link l) |
|
java.util.Set<Flow> |
Network.getFlows(Path p) |
|
java.util.Set<Flow> |
Network.getFlows(Server s) |
|
java.util.Set<Flow> |
Network.getFlows(java.util.Set<Link> links) |
|
java.util.Map<Server,java.util.Set<Flow>> |
Network.getFlowsPerServer(Path p,
java.util.Set<Flow> excluded_flows) |
Do not confuse with getServerJoiningFlowsMap
|
java.util.Map<Path,java.util.Set<Flow>> |
Network.getFlowsPerSubPath(Path p) |
For every distinct sub-path of p this method returns the flows taking it
entirely.
|
java.util.Map<Server,java.util.Set<Flow>> |
Network.getServerJoiningFlowsMap(Path path) |
|
java.util.Map<Server,java.util.Set<Flow>> |
Network.getServerLeavingFlowsMap(Path path) |
|
java.util.Set<Flow> |
Network.getSourceFlows(Server source) |
|
java.util.Map<org.apache.commons.math3.util.Pair<Link,Path>,java.util.Set<Flow>> |
Network.groupFlowsPerInlinkSubPath(Path p,
java.util.Set<Flow> flows_to_group) |
|
java.util.Map<Path,java.util.Set<Flow>> |
Network.groupFlowsPerSubPath(Path p,
java.util.Set<Flow> flows_to_group) |
|
private java.util.Map<org.apache.commons.math3.util.Pair<Server,Path>,java.util.Set<Flow>> |
Network.groupFlowsPerSubPathInternal(Path p,
java.util.Set<Flow> flows_to_group) |
Modifier and Type | Method | Description |
---|---|---|
void |
Network.removeFlow(Flow f) |
Removes a flow from the network.
|
Modifier and Type | Method | Description |
---|---|---|
Server |
Network.findSplittingServer(Server server_common_dest,
java.util.Set<Flow> flows_of_interest) |
Returns the server at which the flows in
flows_of_interest first
all meet each other (when viewed from the source). |
java.util.Map<Server,java.util.Set<Flow>> |
Network.getFlowsPerServer(Path p,
java.util.Set<Flow> excluded_flows) |
Do not confuse with getServerJoiningFlowsMap
|
ArrivalCurve |
Network.getSourceFlowArrivalCurve(Server source,
java.util.Set<Flow> source_flows) |
Returns an aggregate arrival curve for all flows originating in
source and contained in the set outgoing_flows . |
java.util.Map<org.apache.commons.math3.util.Pair<Link,Path>,java.util.Set<Flow>> |
Network.groupFlowsPerInlinkSubPath(Path p,
java.util.Set<Flow> flows_to_group) |
|
java.util.Map<Path,java.util.Set<Flow>> |
Network.groupFlowsPerSubPath(Path p,
java.util.Set<Flow> flows_to_group) |
|
private java.util.Map<org.apache.commons.math3.util.Pair<Server,Path>,java.util.Set<Flow>> |
Network.groupFlowsPerSubPathInternal(Path p,
java.util.Set<Flow> flows_to_group) |