A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
SequenceFile.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* *
3
* Copyright 2018 Rice University *
4
* *
5
* Licensed under the Apache License, Version 2.0 (the "License"); *
6
* you may not use this file except in compliance with the License. *
7
* You may obtain a copy of the License at *
8
* *
9
* http://www.apache.org/licenses/LICENSE-2.0 *
10
* *
11
* Unless required by applicable law or agreed to in writing, software *
12
* distributed under the License is distributed on an "AS IS" BASIS, *
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
14
* See the License for the specific language governing permissions and *
15
* limitations under the License. *
16
* *
17
*****************************************************************************/
18
19
#ifndef SEQUENCEFILE_H
20
#define SEQUENCEFILE_H
21
22
#include "
PDBFile.h
"
23
#include "
DataTypes.h
"
24
#include <string>
25
#include <memory>
26
#include "
PDBLogger.h
"
27
28
using namespace
std;
29
class
SequenceFile
;
30
typedef
shared_ptr<SequenceFile>
SequenceFilePtr
;
31
36
class
SequenceFile
:
public
PDBFileInterface
{
37
public
:
38
SequenceFile
(
NodeID
nodeId,
39
DatabaseID
dbId,
40
UserTypeID
typeId,
41
SetID
setId,
42
string
path,
43
pdb::PDBLoggerPtr
logger,
44
size_t
pageSize);
45
~
SequenceFile
();
46
47
bool
openAll()
override
;
48
bool
closeAll()
override
;
49
void
clear()
override
;
50
int
appendPage(
FilePartitionID
partitionId,
PDBPagePtr
page)
override
;
51
int
appendPage(
PDBPagePtr
page);
52
int
writeMeta()
override
;
53
int
updateMeta()
override
;
54
65
size_t
loadPage(
PageID
pageId,
char
* pageInCache,
size_t
length);
66
72
size_t
loadPage(
FilePartitionID
partitionId,
73
unsigned
int
pageSeqInPartition,
74
char
* pageInCache,
75
size_t
length)
override
;
76
77
unsigned
int
getAndSetNumFlushedPages()
override
;
78
unsigned
int
getNumFlushedPages()
override
;
79
PageID
getLastFlushedPageID()
override
;
80
PageID
getLatestPageID()
override
;
81
size_t
getPageSize()
override
;
82
size_t
getPageSizeInMeta()
override
;
83
87
FileType
getFileType
()
override
{
88
return
FileType::SequenceFileType
;
89
}
90
91
DatabaseID
getDbId
()
override
{
92
return
dbId;
93
}
94
95
NodeID
getNodeId
()
override
{
96
return
nodeId;
97
}
98
99
SetID
getSetId
()
override
{
100
return
setId;
101
}
102
103
UserTypeID
getTypeId
()
override
{
104
return
typeId;
105
}
106
110
string
getPath
() {
111
return
filePath;
112
}
113
114
115
protected
:
119
int
seekPageSizeInMeta();
120
124
int
seekLastFlushedPageID();
125
129
int
seekPage(
PageID
pageId);
130
134
int
writeData(
void
* data,
size_t
length);
135
139
int
seekEnd();
140
141
private
:
142
NodeID
nodeId
;
143
DatabaseID
dbId
;
144
UserTypeID
typeId
;
145
SetID
setId
;
146
FILE*
file
;
147
string
filePath
;
148
PageID
lastFlushedId
;
149
unsigned
int
numFlushedPages
;
150
size_t
pageSize = 0;
151
size_t
metaSize
;
152
pdb::PDBLoggerPtr
logger
;
153
};
154
155
#endif
/* SEQUENCEFILE_H */
SetID
unsigned int SetID
Definition:
DataTypes.h:31
SequenceFile::typeId
UserTypeID typeId
Definition:
SequenceFile.h:144
PDBPagePtr
shared_ptr< PDBPage > PDBPagePtr
Definition:
PDBPage.h:32
SequenceFile::logger
pdb::PDBLoggerPtr logger
Definition:
SequenceFile.h:152
SequenceFile::getNodeId
NodeID getNodeId() override
Definition:
SequenceFile.h:95
FileType
FileType
Definition:
DataTypes.h:72
SequenceFile::numFlushedPages
unsigned int numFlushedPages
Definition:
SequenceFile.h:149
SequenceFile::setId
SetID setId
Definition:
SequenceFile.h:145
NodeID
unsigned int NodeID
Definition:
DataTypes.h:27
PDBLogger.h
SequenceFileType
Definition:
DataTypes.h:72
SequenceFile::file
FILE * file
Definition:
SequenceFile.h:146
SequenceFile::metaSize
size_t metaSize
Definition:
SequenceFile.h:151
SequenceFile
Definition:
SequenceFile.h:36
DataTypes.h
DatabaseID
unsigned int DatabaseID
Definition:
DataTypes.h:29
SequenceFile::getDbId
DatabaseID getDbId() override
Definition:
SequenceFile.h:91
PageID
unsigned int PageID
Definition:
DataTypes.h:26
PDBFileInterface
Definition:
PDBFile.h:36
SequenceFile::dbId
DatabaseID dbId
Definition:
SequenceFile.h:143
SequenceFile::getSetId
SetID getSetId() override
Definition:
SequenceFile.h:99
SequenceFile::lastFlushedId
PageID lastFlushedId
Definition:
SequenceFile.h:148
SequenceFile::nodeId
NodeID nodeId
Definition:
SequenceFile.h:142
SequenceFile::getFileType
FileType getFileType() override
Definition:
SequenceFile.h:87
SequenceFile::filePath
string filePath
Definition:
SequenceFile.h:147
pdb::PDBLoggerPtr
std::shared_ptr< PDBLogger > PDBLoggerPtr
Definition:
PDBLogger.h:40
PDBFile.h
SequenceFile::getPath
string getPath()
Definition:
SequenceFile.h:110
SequenceFile::getTypeId
UserTypeID getTypeId() override
Definition:
SequenceFile.h:103
FilePartitionID
unsigned int FilePartitionID
Definition:
DataTypes.h:32
SequenceFilePtr
shared_ptr< SequenceFile > SequenceFilePtr
Definition:
SequenceFile.h:29
UserTypeID
unsigned int UserTypeID
Definition:
DataTypes.h:25
plinycompute
pdb
src
storage
headers
SequenceFile.h
Generated on Mon Jun 18 2018 18:10:36 by
1.8.6