summaryrefslogtreecommitdiffstats
path: root/include/util/types.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/util/types.h')
-rw-r--r--include/util/types.h119
1 files changed, 57 insertions, 62 deletions
diff --git a/include/util/types.h b/include/util/types.h
index cf61412..b8a1343 100644
--- a/include/util/types.h
+++ b/include/util/types.h
@@ -1,7 +1,7 @@
/*
* include/util/types.h
*
- * Copyright (C) 2023 Douglas B. Rumbaugh <drumbaugh@psu.edu>
+ * Copyright (C) 2023-2024 Douglas B. Rumbaugh <drumbaugh@psu.edu>
*
* Distributed under the Modified BSD License.
*
@@ -17,10 +17,10 @@
*/
#pragma once
+#include <cassert>
#include <cstdint>
#include <cstdlib>
#include <vector>
-#include <cassert>
namespace de {
@@ -30,14 +30,14 @@ typedef uint32_t PageNum;
/*
* Byte offset within a page. Also used for lengths of records, etc.,
* within the codebase. size_t isn't necessary, as the maximum offset
- * is only parm::PAGE_SIZE
+ * is only parm::PAGE_SIZE
*/
typedef uint16_t PageOffset;
/* A unique identifier for a frame within a buffer or cache */
typedef int32_t FrameId;
-/*
+/*
* A unique timestamp for use in MVCC concurrency control. Currently stored in
* record headers, but not used by anything.
*/
@@ -45,7 +45,7 @@ typedef uint32_t Timestamp;
const Timestamp TIMESTAMP_MIN = 0;
const Timestamp TIMESTAMP_MAX = UINT32_MAX;
-/*
+/*
* Invalid values for various IDs. Used throughout the code base to indicate
* uninitialized values and error conditions.
*/
@@ -60,90 +60,85 @@ const FrameId INVALID_FRID = -1;
* as a contiguous index space.
*/
struct ShardID {
- ssize_t level_idx;
- ssize_t shard_idx;
+ ssize_t level_idx;
+ ssize_t shard_idx;
- friend bool operator==(const ShardID &shid1, const ShardID &shid2) {
- return shid1.level_idx == shid2.level_idx && shid1.shard_idx == shid2.shard_idx;
- }
+ friend bool operator==(const ShardID &shid1, const ShardID &shid2) {
+ return shid1.level_idx == shid2.level_idx &&
+ shid1.shard_idx == shid2.shard_idx;
+ }
};
-/* A placeholder for an invalid shard--also used to indicate the mutable buffer */
+/*
+ * A placeholder for an invalid shard--also used to indicate the
+ * mutable buffer
+ */
const ShardID INVALID_SHID = {-1, -1};
typedef ssize_t level_index;
typedef struct ReconstructionTask {
- std::vector<level_index> sources;
- level_index target;
- size_t reccnt;
+ std::vector<level_index> sources;
+ level_index target;
+ size_t reccnt;
- void add_source(level_index source, size_t cnt) {
- sources.push_back(source);
- reccnt += cnt;
- }
+ void add_source(level_index source, size_t cnt) {
+ sources.push_back(source);
+ reccnt += cnt;
+ }
} ReconstructionTask;
class ReconstructionVector {
public:
- ReconstructionVector()
- : total_reccnt(0) {}
+ ReconstructionVector() : total_reccnt(0) {}
- ~ReconstructionVector() = default;
+ ~ReconstructionVector() = default;
- ReconstructionTask operator[](size_t idx) {
- return m_tasks[idx];
- }
+ ReconstructionTask operator[](size_t idx) { return m_tasks[idx]; }
- void add_reconstruction(level_index source, level_index target, size_t reccnt) {
- m_tasks.push_back({{source}, target, reccnt});
- total_reccnt += reccnt;
- }
+ void add_reconstruction(level_index source, level_index target,
+ size_t reccnt) {
+ m_tasks.push_back({{source}, target, reccnt});
+ total_reccnt += reccnt;
+ }
- void add_reconstruction(ReconstructionTask task) {
- m_tasks.push_back(task);
- }
+ void add_reconstruction(ReconstructionTask task) { m_tasks.push_back(task); }
- ReconstructionTask remove_reconstruction(size_t idx) {
- assert(idx < m_tasks.size());
- auto task = m_tasks[idx];
+ ReconstructionTask remove_reconstruction(size_t idx) {
+ assert(idx < m_tasks.size());
+ auto task = m_tasks[idx];
- m_tasks.erase(m_tasks.begin() + idx);
- total_reccnt -= task.reccnt;
+ m_tasks.erase(m_tasks.begin() + idx);
+ total_reccnt -= task.reccnt;
- return task;
- }
+ return task;
+ }
- ReconstructionTask remove_smallest_reconstruction() {
- size_t min_size = m_tasks[0].reccnt;
- size_t idx = 0;
- for (size_t i=1; i<m_tasks.size(); i++) {
- if (m_tasks[i].reccnt < min_size) {
- min_size = m_tasks[i].reccnt;
- idx = i;
- }
- }
-
- auto task = m_tasks[idx];
- m_tasks.erase(m_tasks.begin() + idx);
- total_reccnt -= task.reccnt;
-
- return task;
+ ReconstructionTask remove_smallest_reconstruction() {
+ size_t min_size = m_tasks[0].reccnt;
+ size_t idx = 0;
+ for (size_t i = 1; i < m_tasks.size(); i++) {
+ if (m_tasks[i].reccnt < min_size) {
+ min_size = m_tasks[i].reccnt;
+ idx = i;
+ }
}
- size_t get_total_reccnt() {
- return total_reccnt;
- }
+ auto task = m_tasks[idx];
+ m_tasks.erase(m_tasks.begin() + idx);
+ total_reccnt -= task.reccnt;
- size_t size() {
- return m_tasks.size();
- }
+ return task;
+ }
+
+ size_t get_total_reccnt() { return total_reccnt; }
+ size_t size() { return m_tasks.size(); }
private:
- std::vector<ReconstructionTask> m_tasks;
- size_t total_reccnt;
+ std::vector<ReconstructionTask> m_tasks;
+ size_t total_reccnt;
};
-}
+} // namespace de