Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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