Navigation:  Beginner Phase > Key Concepts I >

The Clover philosophy

Let's take a look at a Graph and talk about the way that Clover thinks. There is a lot more to it than this, of course, but these concepts are useful to be aware of.




Clover components deal in Rows of data. It will, by default, pass a row to the next component as soon as each and every single row has been processed.
When a component has processed data, it will almost always send the data to one or more output ports.
An "Edge" is the join line that connects two components via an output and an input port.
"Metadata" must be assigned to an Edge. Metadata describes the format of the data. When connected with an Edge, it defines the Output Data Format of one component and the Input Data Format of component it is connected to.
Clover is multi-threaded. In practical terms this means it tries to run each and every component in parallel. As a row of data is processed, it is passed immediately to the next component. It does not wait until all rows have been read in from the file or the previous component. This makes it very scalable across processor cores. See this section for a detailed description.
Clover can also run "Phases". These allow you to specify that one "Phase" must be completed before another can begin. This allows the designer to make sure that certain tasks are fully complete before another one begins. Bearing in mind the multi-threading, this can be an issue.





Clover Philosphy

An overview of the way Clover thinks about data transformations or "graphs".