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
|