~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/transaction_log/transaction_log.h

Merged with trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
71
71
    ONLINE,
72
72
    WRITING
73
73
  };
 
74
  static const uint32_t SYNC_METHOD_OS= 0; ///< Rely on operating system to sync log file
 
75
  static const uint32_t SYNC_METHOD_EVERY_WRITE= 1; //< Sync on every write to the log file
 
76
  static const uint32_t SYNC_METHOD_EVERY_SECOND= 2; ///< Sync no more than once a second
74
77
public:
75
78
  TransactionLog(std::string name_arg,
76
79
                 const std::string &in_log_file_path,
169
172
   * Clears the current error message
170
173
   */
171
174
  void clearError();
 
175
  /**
 
176
   * Helper method which synchronizes/flushes the transaction log file
 
177
   * according to the transaction_log_sync_method system variable
 
178
   *
 
179
   * @retval
 
180
   *   0 == Success
 
181
   * @retval
 
182
   *   >0 == Failure. Error code.
 
183
   */
 
184
  int syncLogFile();
172
185
 
173
186
  int log_file; ///< Handle for our log file
174
187
  Status state; ///< The state the log is in
178
191
  drizzled::atomic<off_t> log_offset; ///< Offset in log file where log will write next command
179
192
  bool has_error; ///< Is the log in error?
180
193
  std::string error_message; ///< Current error message
 
194
  time_t last_sync_time; ///< Last time the log file was synced (only set in SYNC_METHOD_EVERY_SECOND)
181
195
};
182
196
 
183
197
#endif /* PLUGIN_TRANSACTION_LOG_TRANSACTION_LOG_H */