@InterfaceAudience.Private public final class Constraints extends Object
Constraints can be added on table load time, via the HTableDescriptor.
NOTE: this class is NOT thread safe. Concurrent setting/enabling/disabling of constraints can cause constraints to be run at incorrect times or not at all.
| Modifier and Type | Method and Description |
|---|---|
static void |
add(HTableDescriptor desc,
Class<? extends Constraint>... constraints)
Add configuration-less constraints to the table.
|
static void |
add(HTableDescriptor desc,
Class<? extends Constraint> constraint,
org.apache.hadoop.conf.Configuration conf)
Add a
Constraint to the table with the given configuration |
static void |
add(HTableDescriptor desc,
Pair<Class<? extends Constraint>,org.apache.hadoop.conf.Configuration>... constraints)
Add constraints and their associated configurations to the table.
|
static void |
disable(HTableDescriptor desc)
Turn off processing constraints for a given table, even if constraints have been turned on or
added.
|
static void |
disableConstraint(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Disable the given
Constraint. |
static void |
enable(HTableDescriptor desc)
Enable constraints on a table.
|
static void |
enableConstraint(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Enable the given
Constraint. |
static boolean |
enabled(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Check to see if the given constraint is enabled.
|
static boolean |
has(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Check to see if the Constraint is currently set.
|
static void |
remove(HTableDescriptor desc)
Remove all
Constraints that have been added to the table and turn off the
constraint processing. |
static void |
remove(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Remove the constraint (and associated information) for the table descriptor.
|
static void |
setConfiguration(HTableDescriptor desc,
Class<? extends Constraint> clazz,
org.apache.hadoop.conf.Configuration configuration)
Update the configuration for the
Constraint; does not change the order in which the
constraint is run. |
public static void enable(HTableDescriptor desc) throws IOException
Currently, if you attempt to add a constraint to the table, then Constraints will automatically
be turned on. table description to add the processor If the ConstraintProcessor CP
couldn't be added to the table.
IOExceptionpublic static void disable(HTableDescriptor desc)
HTableDescriptor where to disable Constraints.public static void remove(HTableDescriptor desc)
Constraints that have been added to the table and turn off the
constraint processing.
All Configurations and their associated Constraint are removed.
desc - HTableDescriptor to remove Constraints from.public static boolean has(HTableDescriptor desc, Class<? extends Constraint> clazz)
HTableDescriptor to check
Constraint class to check for.Constraint is present, even if it is disabled.
false otherwise.public static void add(HTableDescriptor desc, Class<? extends Constraint>... constraints) throws IOException
This will overwrite any configuration associated with the previous constraint of the same class.
Each constraint, when added to the table, will have a specific priority, dictating the order in
which the Constraint will be run. A Constraint earlier in the list will be run
before those later in the list. The same logic applies between two Constraints over time
(earlier added is run first on the regionserver). HTableDescriptor to add
Constraints Constraints to add. All constraints are
considered automatically enabled on add If constraint could not be serialized/added to table
IOExceptionpublic static void add(HTableDescriptor desc, Pair<Class<? extends Constraint>,org.apache.hadoop.conf.Configuration>... constraints) throws IOException
Adding the same constraint class twice will overwrite the first constraint's configuration
Each constraint, when added to the table, will have a specific priority, dictating the order in
which the Constraint will be run. A Constraint earlier in the list will be run
before those later in the list. The same logic applies between two Constraints over time
(earlier added is run first on the regionserver). HTableDescriptor to add a
Constraint Pair of a Constraint and its associated
Configuration. The Constraint will be configured on load with the specified
configuration.All constraints are considered automatically enabled on add if any constraint
could not be deserialized. Assumes if 1 constraint is not loaded properly, something has gone
terribly wrong and that all constraints need to be enforced.
IOExceptionpublic static void add(HTableDescriptor desc, Class<? extends Constraint> constraint, org.apache.hadoop.conf.Configuration conf) throws IOException
Constraint to the table with the given configuration
Each constraint, when added to the table, will have a specific priority, dictating the order in
which the Constraint will be run. A Constraint added will run on the
regionserver before those added to the HTableDescriptor later. table descriptor to the
constraint to to be added configuration associated with the constraint if any constraint could
not be deserialized. Assumes if 1 constraint is not loaded properly, something has gone
terribly wrong and that all constraints need to be enforced.
IOExceptionpublic static void setConfiguration(HTableDescriptor desc, Class<? extends Constraint> clazz, org.apache.hadoop.conf.Configuration configuration) throws IOException, IllegalArgumentException
Constraint; does not change the order in which the
constraint is run. HTableDescriptor to update Constraint to update to update
the Constraint with. if the Constraint was not stored correctly if the Constraint was
not present on this table.IOExceptionIllegalArgumentExceptionpublic static void remove(HTableDescriptor desc, Class<? extends Constraint> clazz)
HTableDescriptor to modify Constraint class to removepublic static void enableConstraint(HTableDescriptor desc, Class<? extends Constraint> clazz) throws IOException
Constraint. Retains all the information (e.g. Configuration) for the
Constraint, but makes sure that it gets loaded on the table. HTableDescriptor
to modify Constraint to enable If the constraint cannot be properly deserializedIOExceptionpublic static void disableConstraint(HTableDescriptor desc, Class<? extends Constraint> clazz) throws IOException
Constraint. Retains all the information (e.g. Configuration) for the
Constraint, but it just doesn't load the Constraint on the table.
HTableDescriptor to modify Constraint to disable. if the constraint cannot be
foundIOExceptionpublic static boolean enabled(HTableDescriptor desc, Class<? extends Constraint> clazz) throws IOException
HTableDescriptor to check.
Constraint to check forConstraint is present and enabled. false
otherwise. If the constraint has improperly stored in the tableIOExceptionCopyright © 2007–2020 The Apache Software Foundation. All rights reserved.