libfoedus-core
FOEDUS Core Library
xct_options.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2015, Hewlett-Packard Development Company, LP.
3  * This program is free software; you can redistribute it and/or modify it
4  * under the terms of the GNU General Public License as published by the Free
5  * Software Foundation; either version 2 of the License, or (at your option)
6  * any later version.
7  *
8  * This program is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11  * more details. You should have received a copy of the GNU General Public
12  * License along with this program; if not, write to the Free Software
13  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14  *
15  * HP designates this particular file as subject to the "Classpath" exception
16  * as provided by HP in the LICENSE.txt file that accompanied this code.
17  */
18 #ifndef FOEDUS_XCT_XCT_OPTIONS_HPP_
19 #define FOEDUS_XCT_XCT_OPTIONS_HPP_
20 #include <stdint.h>
21 
22 #include <iosfwd>
23 
24 #include "foedus/cxx11.hpp"
26 
27 namespace foedus {
28 namespace xct {
37  enum Constants {
52  kDefaultHotThreshold = 256, // OCC by default (for test cases and benchamrks that don't set it)
53  };
54 
58  XctOptions();
59 
61 
68  uint32_t max_read_set_size_;
69 
77 
85 
93 
102 
113 
124 
136 
156 
165 };
166 } // namespace xct
167 } // namespace foedus
168 #endif // FOEDUS_XCT_XCT_OPTIONS_HPP_
Represents an object that can be written to and read from files/bytes in XML format.
uint32_t max_lock_free_read_set_size_
The maximum number of lock-free read-set one transaction can have.
Definition: xct_options.hpp:84
bool enable_retrospective_lock_list_
Whether to use Retrospective Lock List (RLL) after aborts.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Definition: assert_nd.hpp:44
Default value for max_read_set_size_.
Definition: xct_options.hpp:39
#define EXTERNALIZABLE(clazz)
Macro to declare/define essential methods for an externalizable class.
Set of options for xct manager.
Definition: xct_options.hpp:35
uint32_t epoch_advance_interval_ms_
Intervals in milliseconds between epoch advancements.
#define CXX11_FINAL
Used in public headers in place of "final" of C++11.
Definition: cxx11.hpp:131
uint32_t max_lock_free_write_set_size_
The maximum number of lock-free write-set one transaction can have.
Definition: xct_options.hpp:92
uint16_t hot_threshold_for_retrospective_lock_list_
When we construct Retrospective Lock List (RLL) after aborts, we add read-locks on records whose hotn...
uint32_t max_write_set_size_
The maximum number of write-set one transaction can have.
Definition: xct_options.hpp:76
Default value for max_lock_free_read_set_size_.
Definition: xct_options.hpp:43
Default value for max_lock_free_write_set_size_.
Definition: xct_options.hpp:45
bool force_canonical_xlocks_in_precommit_
Whether precommit always releases all locks that violate canonical mode before taking X-locks...
Constants
Constant values.
Definition: xct_options.hpp:37
XctOptions()
Constructs option values with default values.
Definition: xct_options.cpp:22
uint16_t mcs_implementation_type_
Defines which implementation of MCS locks to use for RW locks.
uint32_t max_read_set_size_
The maximum number of read-set one transaction can have.
Definition: xct_options.hpp:60
uint32_t local_work_memory_size_mb_
Size of local and temporary work memory one transaction can use during transaction.
Default value for local_work_memory_size_mb_.
Definition: xct_options.hpp:47
Default value for max_write_set_size_.
Definition: xct_options.hpp:41
Default value for epoch_advance_interval_ms_.
Definition: xct_options.hpp:49