THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
PlantUML |
---|
skinparam dpi 80
@startuml
hide members
title FunctionService - Class Diagram
interface Function
interface ResultSender
interface ResultCollector
interface FunctionContext
interface Execution
interface RegionFunctionContext
AbstractExecution --|> Execution
DistributedRegionFunctionExecutor --|> AbstractExecution
MemberFunctionExecutor --|> AbstractExecution
PartitionedRegionFunctionExecutor --|> AbstractExecution
ServerFunctionExecutor --|> AbstractExecution
PartitionedRegionFunctionResultSender -up-|> ResultSender
DistributedRegionFunctionResultSender -up-|> ResultSender
MemberFunctionResultSender -up-|> ResultSender
ServerToClientResultSender -up-|> ResultSender
FunctionContextImpl --|> FunctionContext
RegionFunctionContextImpl --|> FunctionContextImpl
RegionFunctionContextImpl --|> RegionFunctionContext
RegionFunctionContext --|> FunctionContext
AbstractExecution *-- ResultCollector
AbstractExecution *-- Function
Function --> FunctionContext
FunctionContext *-- ResultSender
@enduml |
PlantUML |
---|
skinparam dpi 80
title PartionRegion Function Execution
actor peer
participant FnService
participant FnServiceManager
participant AbstractExecution
peer -> FnService : onRegion
FnService -> FnServiceManager : onRegion()
FnServiceManager -> PRFnExecutor : constructor
PRFnExecutor -> FnServiceManager
FnServiceManager -> FnService: Execution
FnService -> peer : Execution
peer -> AbstractExecution : execute()
AbstractExecution -> PRFnExecutor : executeFn()
PRFnExecutor -> PR : executeFn()
PR -> PR : executeOn\nAllBuckets()
PR -> AbstractExecution : getFailedNodes() (If retry)
AbstractExecution -> PR
PR -> AbstractExecution : setExecutionNodes
AbstractExecution -> PR
note right
creates
PRFnResultSender
FnRemoteContext
end note
PR -> PRFnResultWaiter : getPartitioned\nDataFrom()
note right
creates
PRFnStreamingResultCollector
for processing response
end note
PRFnResultWaiter -> PRFnStreamingResultCollector : constructor
PRFnResultWaiter -> DM : putOutgoing(PRFn\nStreamingMessage)
DM --> PartitionMessage
PartitionMessage -> PRFnStreamingMessage : operateOnPR()
PRFnStreamingMessage -> PRDataStore : executeOnDataStore()
note right
creates
RegionFunctionContextImpl
PRFnResultSender
end note
PRDataStore -> Fn : execute()
Fn -> PRFnResultSender: sendResult()
PRFnResultSender -> PRFnStreamingMessage : sendReplyForOneResult()
PRFnStreamingMessage -> DM : putOutgoing
DM --> PRFnStreamingResultCollector
PRFnStreamingResultCollector -> PRFnResultWaiter : results
PRFnResultWaiter -> PR
PR -> PRFnExecutor
PRFnExecutor -> AbstractExecution
AbstractExecution -> peer : ResultCollector
|