Reconstructs a table's index tables. More...
#include <OperationRecreateIndexTables.h>
Public Member Functions | |
OperationRecreateIndexTables (ContextPtr &context, std::string name, TableParts parts) | |
Constructor. More... | |
OperationRecreateIndexTables (ContextPtr &context, const MetaLog::EntityHeader &header) | |
Constructor with MML entity. More... | |
OperationRecreateIndexTables (ContextPtr &context, EventPtr &event) | |
Constructor with client request. More... | |
virtual | ~OperationRecreateIndexTables () |
Destructor. More... | |
void | execute () override |
Carries out recreate index tables operation. More... | |
const String | name () override |
Returns name of operation. More... | |
const String | label () override |
Returns descriptive label for operation. More... | |
void | display_state (std::ostream &os) override |
Writes human readable representation of object to output stream. More... | |
uint8_t | encoding_version_state () const override |
Returns encoding version of serialization format. More... | |
size_t | encoded_length_state () const override |
Returns serialized state length. More... | |
void | encode_state (uint8_t **bufp) const override |
Writes serialized encoding of object state. More... | |
void | decode_state (uint8_t version, const uint8_t **bufp, size_t *remainp) override |
Reads serialized encoding of object state. More... | |
void | decode_state_old (uint8_t version, const uint8_t **bufp, size_t *remainp) override |
Public Member Functions inherited from Hypertable::Operation | |
Operation (ContextPtr &context, int32_t type) | |
Constructor with operation type specifier. More... | |
Operation (ContextPtr &context, EventPtr &event, int32_t type) | |
Constructor with request Event and operation type specifier. More... | |
Operation (ContextPtr &context, const MetaLog::EntityHeader &header_) | |
Constructor with MetaLog::EntityHeader. More... | |
virtual | ~Operation () |
Destructor. More... | |
virtual const String | graphviz_label () |
Human readable operation label used in graphviz output. More... | |
virtual bool | exclusive () |
Indicates if operation is exclusive. More... | |
virtual size_t | encoded_result_length () const |
Length of encoded operation result. More... | |
virtual void | encode_result (uint8_t **bufp) const |
Encode operation result. More... | |
virtual void | decode_result (const uint8_t **bufp, size_t *remainp) |
Decode operation result. More... | |
void | decode (const uint8_t **bufp, size_t *remainp, uint16_t definition_version) override |
Decode operation. More... | |
void | display (std::ostream &os) override |
Write human readable string represenation of operation to output stream. More... | |
int64_t | id () |
Operation identifier. More... | |
ClockT::time_point | expiration_time () |
Returns operation expiration time. More... | |
void | set_remove_approval_mask (uint16_t mask) |
Sets the remove approvals bit mask. More... | |
uint16_t | get_remove_approval_mask () |
Gets the remove approvals bit mask. More... | |
bool | remove_approval_add (uint16_t approval) |
Sets remove approval bits. More... | |
bool | removal_approved () |
Checks if all remove approvals have been received. More... | |
void | record_state (std::vector< MetaLog::EntityPtr > &additional) |
Records operation state and additional entities to the MML. More... | |
void | record_state () |
Records operation state to the MML. More... | |
void | complete_error (int error, const String &msg, std::vector< MetaLog::EntityPtr > &additional) |
Completes operation with error. More... | |
void | complete_error (int error, const String &msg, MetaLog::EntityPtr additional=MetaLog::EntityPtr()) |
Completes operation with error. More... | |
void | complete_error (Exception &e, std::vector< MetaLog::EntityPtr > &additional) |
Completes operation with exception. More... | |
void | complete_error (Exception &e, MetaLog::EntityPtr additional=MetaLog::EntityPtr()) |
Completes operation with exception. More... | |
void | complete_ok (std::vector< MetaLog::EntityPtr > &additional) |
void | complete_ok (MetaLog::EntityPtr additional=MetaLog::EntityPtr()) |
virtual int64_t | hash_code () const |
virtual void | exclusivities (DependencySet &exclusivities) |
virtual void | dependencies (DependencySet &dependencies) |
virtual void | obstructions (DependencySet &obstructions) |
void | add_exclusivity (const String &exclusivity) |
void | add_dependency (const String &dependency) |
void | add_obstruction (const String &obstruction) |
void | add_obstruction_permanent (const String &obstruction) |
void | fetch_sub_operations (std::vector< std::shared_ptr< Operation > > &sub_ops) |
void | pre_run () |
void | post_run () |
int32_t | get_state () |
void | set_state (int32_t state) |
virtual bool | is_perpetual () |
bool | block () |
bool | unblock () |
bool | is_blocked () |
bool | is_complete () |
int32_t | get_original_type () |
void | set_original_type (int32_t original_type) |
void | set_ephemeral () |
Sets the ephemeral flag to true. More... | |
bool | ephemeral () |
Gets the ephemeral flag. More... | |
int32_t | get_error () |
Get error code. More... | |
String | get_error_msg () |
Get error message. More... | |
Public Member Functions inherited from Hypertable::MetaLog::Entity | |
Entity (int32_t type) | |
Constructor from entity type. More... | |
Entity (const EntityHeader &header_) | |
Constructor from entity header. More... | |
virtual | ~Entity () |
Destructor. More... | |
void | lock () |
Locks the entity's mutex. More... | |
void | unlock () |
Unlocks the entity's mutex. More... | |
void | mark_for_removal () |
Marks entity for removal. More... | |
bool | marked_for_removal () |
Checks if entity is marked for removal. More... | |
int64_t | id () const |
Returns the entity ID. More... | |
Public Member Functions inherited from Hypertable::Serializable | |
virtual size_t | encoded_length () const |
Returns serialized object length. More... | |
virtual void | encode (uint8_t **bufp) const |
Writes serialized representation of object to a buffer. More... | |
virtual void | decode (const uint8_t **bufp, size_t *remainp) |
Reads serialized representation of object from a buffer. More... | |
Private Member Functions | |
bool | fetch_schema (std::string &schema) |
Private Attributes | |
Lib::Master::Request::Parameters::RecreateIndexTables | m_params |
Request parmaeters. More... | |
TableParts | m_parts {0} |
Table parts to recreate. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Hypertable::Operation | |
uint8_t | encoding_version () const override |
Returns encoding version. More... | |
size_t | encoded_length_internal () const override |
Returns internal serialized length. More... | |
void | encode_internal (uint8_t **bufp) const override |
Writes serialized representation of object to a buffer. More... | |
void | decode_internal (uint8_t version, const uint8_t **bufp, size_t *remainp) override |
Reads serialized representation of object from a buffer. More... | |
void | decode_old (const uint8_t **bufp, size_t *remainp, uint16_t definition_version) |
bool | validate_subops () |
Handles the results of sub operations. More... | |
void | stage_subop (std::shared_ptr< Operation > operation) |
Stages a sub operation for execution. More... | |
Protected Member Functions inherited from Hypertable::MetaLog::Entity | |
void | encode_entry (uint8_t **bufp) |
Encodes entity header plus serialized state. More... | |
Protected Attributes inherited from Hypertable::Operation | |
ContextPtr | m_context |
Pointer to Master context. More... | |
EventPtr | m_event |
Pointer to client event (if any) that originated the operation. More... | |
uint16_t | m_remove_approvals {} |
Remove approvals received. More... | |
uint16_t | m_remove_approval_mask {} |
Remove approval mask. More... | |
int32_t | m_original_type {} |
Original entity type read from MML (prior to conversion) More... | |
int32_t | m_error {} |
Result error code. More... | |
String | m_error_msg |
Result error message. More... | |
bool | m_unblock_on_exit {} |
Flag to signal operation to be unblocked on exit (post_run()) More... | |
bool | m_blocked {} |
Flag indicating if operation is blocked. More... | |
bool | m_ephemeral {} |
Indicates if operation is ephemeral and does not get persisted to MML. More... | |
ClockT::time_point | m_expiration_time |
Expiration time (used by ResponseManager) More... | |
int64_t | m_hash_code |
Hash code uniqely identifying operation. More... | |
DependencySet | m_exclusivities |
Set of exclusivities. More... | |
DependencySet | m_dependencies |
Set of dependencies. More... | |
DependencySet | m_obstructions |
Set of obstructions. More... | |
DependencySet | m_obstructions_permanent |
Set of permanent obstructions. More... | |
std::vector< int64_t > | m_sub_ops |
Vector of sub operations IDs. More... | |
Protected Attributes inherited from Hypertable::MetaLog::Entity | |
std::mutex | m_mutex |
Mutex for serializing access to members More... | |
EntityHeader | header |
Entity header More... | |
Reconstructs a table's index tables.
Definition at line 43 of file OperationRecreateIndexTables.h.
OperationRecreateIndexTables::OperationRecreateIndexTables | ( | ContextPtr & | context, |
std::string | name, | ||
TableParts | parts | ||
) |
Constructor.
Initializes object by passing MetaLog::EntityType::OPERATION_RECREATE_INDEX_TABLES to parent Operation constructor and then initializes m_params with name
and parts
. Adds name
as an exclusivity.
context | Master context |
name | Pathname of table |
parts | Describes which index tables to re-create |
Definition at line 53 of file OperationRecreateIndexTables.cc.
OperationRecreateIndexTables::OperationRecreateIndexTables | ( | ContextPtr & | context, |
const MetaLog::EntityHeader & | header | ||
) |
Constructor with MML entity.
context | Master context |
header | MetaLog header |
Definition at line 62 of file OperationRecreateIndexTables.cc.
OperationRecreateIndexTables::OperationRecreateIndexTables | ( | ContextPtr & | context, |
EventPtr & | event | ||
) |
Constructor with client request.
Initializes base class constructor, decodes request parameters and adds table name as an exclusivity.
context | Master context |
event | Event received from AsyncComm from client request |
Definition at line 67 of file OperationRecreateIndexTables.cc.
|
inlinevirtual |
Destructor.
Definition at line 71 of file OperationRecreateIndexTables.h.
|
overridevirtual |
Reads serialized encoding of object state.
This method restores the state of the object by decoding a serialized representation of the state from the memory location pointed to by *bufp
.
version | Encoding version |
bufp | Address of source buffer pointer (advanced by call) |
remainp | Amount of remaining buffer pointed to by *bufp (decremented by call) |
Implements Hypertable::Operation.
Definition at line 261 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Implements Hypertable::Operation.
Definition at line 266 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Writes human readable representation of object to output stream.
os | Output stream |
Implements Hypertable::Operation.
Definition at line 243 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Writes serialized encoding of object state.
This method writes a serialized encoding of object state to the memory location pointed to by *bufp
. The encoding has the following format:
Encoding | Description |
---|---|
vstr | Table name |
TableParts | Specification for which index tables to re-create (m_parts) |
bufp | Address of destination buffer pointer (advanced by call) |
Implements Hypertable::Operation.
Definition at line 256 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Returns serialized state length.
This method returns the length of the serialized representation of the object state.
Implements Hypertable::Operation.
Definition at line 252 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Returns encoding version of serialization format.
Implements Hypertable::Operation.
Definition at line 248 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Carries out recreate index tables operation.
This method carries out the operation via the following states:
State | Description |
---|---|
INITIAL |
|
SUSPEND_TABLE_MAINTENANCE |
|
DROP_INDICES |
|
CREATE_INDICES |
|
RESUME_TABLE_MAINTENANCE |
|
FINALIZE |
|
Implements Hypertable::Operation.
Definition at line 150 of file OperationRecreateIndexTables.cc.
|
private |
Definition at line 282 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Returns descriptive label for operation.
Implements Hypertable::Operation.
Definition at line 277 of file OperationRecreateIndexTables.cc.
|
overridevirtual |
Returns name of operation.
Returns name of operation "OperationRecreateIndexTables"
Implements Hypertable::Operation.
Definition at line 273 of file OperationRecreateIndexTables.cc.
|
private |
Request parmaeters.
Definition at line 137 of file OperationRecreateIndexTables.h.
|
private |
Table parts to recreate.
Definition at line 140 of file OperationRecreateIndexTables.h.