THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Class Diagram
PlantUML |
---|
skinparam dpi 80 @startuml hide members title FunctionService - Class Diagram interface Function interface ResultSender interface ResultCollector interface FunctionContext interface Execution interface RegionFunctionContext class FunctionService AbstractExecution --|> Execution DistributedRegionFunctionExecutor --|> AbstractExecution MemberFunctionExecutor --|> AbstractExecution PartitionedRegionFunctionExecutor --|> AbstractExecution ServerFunctionExecutor --|> AbstractExecution PartitionedRegionFunctionResultSender -up-|> ResultSender DistributedRegionFunctionResultSender -up-|> ResultSender MemberFunctionResultSender -up-|> ResultSender ServerToClientResultSender -up-|> ResultSender FunctionContextImpl -up-|> FunctionContext RegionFunctionContextImpl -up-|> FunctionContextImpl RegionFunctionContextImpl -up-|> RegionFunctionContext RegionFunctionContext -up-|> 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 FunctionContext DefaultResultCollector -up-|> ResultCollector FunctionStreamingResultCollector -up-|> ResultCollector PRFunctionStreamingResultCollector -up-|> ResultCollector LocalResultCollector -up-|> ResultCollector LocalResultCollectorImpl -up-|> LocalResultCollector AbstractExecution -* ResultCollector AbstractExecution -* Function ResultSender -> ResultCollector @enduml: 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 |