Switch branches/tags
XXXX candidate-3.2.x candidate-3.4.x candidate-3.4.0 candidate-3.4.2 candidate-3.6.x candidate-3.6.0 candidate-3.6.2 candidate-3.8.x candidate-3.8.0 candidate-3.8.2 candidate-3.8.4 candidate-3.8.6 candidate-3.10.x candidate-3.10.0 candidate-3.10.2 candidate-3.10.4 candidate-3.10.6 candidate-3.10.8 candidate-4.0.0 candidate-4.0.2 candidate-4.0.4 candidate-4.0.6 candidate-4.2.0 candidate-4.2.2 candidate-4.2.4 candidate-4.2.6 candidate-4.2.8 candidate-4.2.10 candidate-4.2.12 candidate-5.0.0 candidate-5.0.2 candidate-5.0.4 candidate-5.0.6 candidate-5.0.8 candidate-5.0.10 candidate-5.0.12 candidate-5.0.14 candidate-5.0.16 candidate-5.2.0 candidate-5.2.2 candidate-5.2.4 candidate-5.2.6 candidate-5.2.8 candidate-5.2.10 candidate-5.4.0 candidate-5.4.2 candidate-5.4.4 candidate-5.4.6 candidate-5.4.8 candidate-5.4.10 candidate-5.4.12 candidate-5.6.0 candidate-5.6.2 candidate-5.6.4 candidate-5.6.6 candidate-5.6.8 candidate-6.0.x candidate-6.0.0 candidate-6.0.2 candidate-6.0.4 candidate-6.0.6 candidate-6.0.8 candidate-6.0.10 candidate-6.0.12 candidate-6.2.x candidate-6.2.0 candidate-6.2.2 candidate-6.2.4 candidate-6.2.6 candidate-6.2.8 candidate-6.2.10 candidate-6.2.12 candidate-6.2.14 candidate-6.2.16 candidate-6.2.18 candidate-6.2.20 candidate-6.2.22 candidate-6.2.24 candidate-6.2.26 candidate-6.2.28 candidate-6.2.30 candidate-6.4.x candidate-6.4.0 candidate-6.4.2 candidate-6.4.4 candidate-6.4.6 candidate-6.4.8 candidate-6.4.10 candidate-6.4.12 candidate-6.4.14 candidate-6.4.16 candidate-6.4.18 candidate-6.4.20 candidate-6.4.22 candidate-6.4.24 candidate-6.4.26 candidate-6.4.28 candidate-6.4.30 candidate-7.0.x candidate-7.0.0-rc2 candidate-7.0.0beta1 candidate-7.0.0beta2 candidate-7.0.0 candidate-7.0.2 candidate-7.0.4 candidate-7.0.6 candidate-7.2.0 closedown-4.0.x docsplit-3.6 gleb_cherry_2940 master release-3.2.0 release-3.2.2 revert-6861-HPCC-12862-improvement revert-7735-hpcc-14050 revert-8370-issue15082 revert-9563-bundle-errors revert-9816-16869DropIE8 revert-10493-hpcc-18193 revert-11089-issue19555 revert-11673-HPCC-20385 richardkchapman-patch-1 split-3.2 split-3.4 stable
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
75 lines (51 sloc) 4.31 KB

Description / Rationale

HPCC Systems offers an enterprise ready, open source supercomputing platform to solve big data problems. As compared to Hadoop, the platform offers analysis of big data using less code and less nodes for greater efficiencies and offers a single programming language, a single platform and a single architecture for efficient processing. HPCC Systems is a technology division of LexisNexis Risk Solutions.

Getting Started


The HPCC Systems architecture incorporates the Thor and Roxie clusters as well as common middleware components, an external communications layer, client interfaces which provide both end-user services and system management tools, and auxiliary components to support monitoring and to facilitate loading and storing of filesystem data from external sources. An HPCC environment can include only Thor clusters, or both Thor and Roxie clusters. Each of these cluster types is described in more detail in the following sections below the architecture diagram.


Thor (the Data Refinery Cluster) is responsible for consuming vast amounts of data, transforming, linking and indexing that data. It functions as a distributed file system with parallel processing power spread across the nodes. A cluster can scale from a single node to thousands of nodes.

  • Single-threaded
  • Distributed parallel processing
  • Distributed file system
  • Powerful parallel processing programming language (ECL)
  • Optimized for Extraction, Transformation, Loading, Sorting, Indexing and Linking
  • Scales from 1-1000s of nodes


Roxie (the Query Cluster) provides separate high-performance online query processing and data warehouse capabilities. Roxie (Rapid Online XML Inquiry Engine) is the data delivery engine used in HPCC to serve data quickly and can support many thousands of requests per node per second.

  • Multi-threaded
  • Distributed parallel processing
  • Distributed file system
  • Powerful parallel processing programming language (ECL)
  • Optimized for concurrent query processing
  • Scales from 1-1000s of nodes


ECL (Enterprise Control Language) is the powerful programming language that is ideally suited for the manipulation of Big Data.

  • Transparent and implicitly parallel programming language
  • Non-procedural and dataflow oriented
  • Modular, reusable, extensible syntax
  • Combines data representation and algorithm implementation
  • Easily extend using C++ libraries
  • ECL is compiled into optimized C++


ECL IDE is a modern IDE used to code, debug and monitor ECL programs.

  • Access to shared source code repositories
  • Complete development, debugging and testing environment for developing ECL dataflow programs
  • Access to the ECLWatch tool is built-in, allowing developers to watch job graphs as they are executing
  • Access to current and historical job workunits


ESP (Enterprise Services Platform) provides an easy to use interface to access ECL queries using XML, HTTP, SOAP and REST.

  • Standards-based interface to access ECL functions

Developer documentation

The following links describe the structure of the system and detail some of the key components: