Editions: Community and PRO
MooseFS is built in two editions. Community Edition is the open-source edition. MooseFS PRO is the commercial edition. PRO has capabilities that Community Edition does not have.
What it is
An edition is a variant of MooseFS built from one source tree. Community Edition (CE) is published under the GNU General Public License version 2. MooseFS PRO runs under a commercial license. The license is delivered to the cluster as a file that every Master Server reads.
The edition is decided when the packages are built, not when they are configured. No option turns PRO on. A module keeps its edition while it runs. Each module reports the edition that it was built as. The version that the module announces includes the edition too. You can therefore read which edition you have from a running cluster. A module of the wrong edition is noticed at once.
On the server side, an instance runs one edition throughout. A PRO Master Server refuses to register a Community Edition Chunkserver. That Chunkserver therefore never joins the cluster. Every other pairing of a Master Server with a module of the other edition connects and raises an alert of its own. Mounts are the exception: a client of either edition works against a cluster of the other edition. A Community Edition client against a PRO cluster does not implement a part of the MooseFS protocol. The cluster raises an alert for that pairing and names the risk: unpredicted behavior, including data loss. The version of a client, rather than its edition, decides which redundancy formats the client can read. By default, the Master Server refuses a client that is too old to read all of the data (RESTRICT_INCOMPATIBLE_CLIENT_VERSIONS).
Why it matters
The edition decides which capabilities exist at all. You choose the edition before anything is deployed. Of all the differences, the Master Server shapes a design most. PRO runs several Master Servers and passes the Leader PRO (PRO Edition only) role between them without an operator. Community Edition runs exactly one Master Server. The question of what survives a failure begins with that single Master Server. Locations, Erasure Coding with more than one parity part, and the Windows Client are PRO as well. Every page states the edition that its subject belongs to. The edition comparison compares the differences.
The second difference is in what the software requires of you in return. Community Edition sets no limit on how much data you store, how long you run it, or how many Chunkservers you attach. A PRO license bounds how much data the instance may hold and includes the terms it was granted under. The limits and terms of both editions are described under how licensing works.
How MooseFS implements it
Both editions come from the same source tree. The tree marks the PRO-only parts. A Community Edition build leaves those parts out. Some capabilities disappear that way. Other capabilities remain but are narrowed. The same code is built against a smaller bound, so Community Edition offers a single value where PRO offers a range. The page of each capability states its bound.
Each edition is then delivered as software to install, not as a decision to make later. The source of the Community Edition is published on GitHub. Both editions are distributed as binary packages, ready installers included, for the platforms that MooseFS supports. The packages of the two editions have different names. Installing them is otherwise the same work.
Related tasks
Related terms
- Master Server, Leader, and Follower: the component that has the largest difference.
- No single point of failure: what one Master Server costs, and what it does not.
- Location: the division of an instance that PRO adds.
- Erasure Coding: the redundancy format whose parity width the edition bounds.
- Client and mount: the forms of client, the Windows Client among them.