Versions Compared

Key

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

...

The following design issues bases based on current management task implementation are present:

...

  • autogeneration AsciiDoc documentation for management commands with converting them to HTML and Unix man pages;
  • integration with existing command-line frameworks like jcommander [2], picocli [3] etc.

Description

Design Model

Command Execution

The ComputeTask is a common way for building various cluster management tasks and execution via an Ignite thin client. commands with the ability to execute them via Ignite Binary Protocol. Taking into account the current limitations mentioned above the following must be a part of design solution to create a common internal management API:

  1. A ProxyManagementTask - an entry point for each management request through the thin client API.
  2. Input arguments to find the required command by given path.
  3. Input argements to execute the corresponding command with. This is a map of parameters with String  as a key, and String  or String[]  as a value.
  4. The output execution result – BinaryObject. It may be formatted to different string results depending on what type of client is used (e.g. REST, CLI, JMX). 

Command Registration


  1. Static Registration
  2. ServiceLoader
  3. Annotation Scanner

Command Execution Model

draw.io Diagram
bordertrue
diagramNameCommand Registry
simpleViewerfalse
linksauto
tbstyletop
lboxtrue
diagramWidth1433
revision1

...

draw.io Diagram
bordertrue
diagramNameCommand Work Flow
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1431
revision3

...

Management commands are always wrapped with the ProxyManagementTask. The management command may be executed on a single cluster node only or broadcasted broadcast to all nodes with reducing the execution results.

...