18 #ifndef CONFIGURATION_H
19 #define CONFIGURATION_H
24 #include <sys/types.h>
35 #ifndef DEFAULT_PAGE_SIZE
36 #define DEFAULT_PAGE_SIZE ((size_t)(256) * (size_t)(1024) * (size_t)(1024))
39 #ifndef DEFAULT_MAX_PAGE_SIZE
40 #define DEFAULT_MAX_PAGE_SIZE DEFAULT_PAGE_SIZE
43 #ifndef DEFAULT_NET_PAGE_SIZE
44 #define DEFAULT_NET_PAGE_SIZE \
45 DEFAULT_PAGE_SIZE - (sizeof(NodeID) + sizeof(DatabaseID) + sizeof(UserTypeID) + \
46 sizeof(SetID) + sizeof(PageID) + sizeof(int) + sizeof(size_t))
49 #ifndef DEFAULT_SHUFFLE_PAGE_SIZE
50 #define DEFAULT_SHUFFLE_PAGE_SIZE DEFAULT_PAGE_SIZE
53 #ifndef DEFAULT_BROADCAST_PAGE_SIZE
54 #define DEFAULT_BROADCAST_PAGE_SIZE DEFAULT_PAGE_SIZE
58 #ifndef DEFAULT_MAX_CONNECTIONS
59 #define DEFAULT_MAX_CONNECTIONS 200
62 #ifndef DEFAULT_SHAREDMEM_SIZE
63 #define DEFAULT_SHAREDMEM_SIZE ((size_t)12 * (size_t)1024 * (size_t)1024 * (size_t)1024)
66 #ifndef DEFAULT_NUM_THREADS
67 #define DEFAULT_NUM_THREADS 2
70 #ifndef DEFAULT_BATCH_SIZE
71 #define DEFAULT_BATCH_SIZE 100
75 #ifndef DEFAULT_HASH_PAGE_SIZE
76 #define DEFAULT_HASH_PAGE_SIZE ((size_t)(512) * (size_t)(1024) * (size_t)(1024))
80 #ifndef DEFAULT_MEM_SIZE
81 #define DEFAULT_MEM_SIZE ((size_t)(68) * (size_t)(1024) * (size_t)(1024))
84 #ifndef DEFAULT_NUM_CORES
85 #define DEFAULT_NUM_CORES 8
131 serverName =
"testServer";
132 serverAddress =
"localhost";
133 isManagerCatalogServer =
false;
137 logFile =
"serverLog";
140 assert(pageSize <= maxPageSize);
142 assert(shufflePageSize <= maxPageSize);
144 assert(broadcastPageSize <= maxPageSize);
145 useUnixDomainSock =
false;
149 ipcFile =
"/tmp/ipcFile";
150 backEndIpcFile =
"/tmp/backEndIpcFile";
155 statisticsDB =
"statDB";
159 rootDir = std::string(
"pdbRoot_") + serverAddress + std::string(
"_") + std::to_string(port);
161 this->createDir(rootDir);
165 dataDirs = rootDir + std::string(
"/data");
166 metaDir = rootDir + std::string(
"/meta");
167 metaTempDir = rootDir + std::string(
"/metaTmp");
169 dataTempDirs = rootDir + std::string(
"/tmp");
193 return maxConnections;
202 sizeof(
SetID) +
sizeof(
PageID) +
sizeof(
int) +
sizeof(size_t));
211 return shufflePageSize;
216 sizeof(
SetID) +
sizeof(
PageID) +
sizeof(
int) +
sizeof(size_t));
220 return broadcastPageSize;
225 sizeof(
SetID) +
sizeof(
PageID) +
sizeof(
int) +
sizeof(size_t));
246 return useUnixDomainSock;
270 return backEndIpcFile;
274 this->nodeId = nodeId;
278 this->serverName = serverName;
282 this->ipcFile = ipcFile;
286 this->logFile = logFile;
290 this->maxConnections = maxConnections;
294 assert(pageSize <= maxPageSize);
295 this->pageSize = pageSize;
299 assert(pageSize <= maxPageSize);
300 assert(shufflePageSize <= maxPageSize);
301 assert(broadcastPageSize <= maxPageSize);
302 this->maxPageSize = maxPageSize;
306 assert(shufflePageSize < maxPageSize);
307 this->shufflePageSize = shufflePageSize;
311 this->hashPageSize = hashPageSize;
315 assert(broadcastPageSize <= maxPageSize);
316 this->broadcastPageSize = broadcastPageSize;
325 this->shmSize = shmSize;
329 this->useUnixDomainSock = useUnixDomainSock;
333 this->logEnabled = logEnabled;
337 this->dataDirs = dataDirs;
341 this->metaDir = metaDir;
345 this->metaTempDir = tempDir;
349 this->dataTempDirs = tempDirs;
353 this->numThreads = numThreads;
357 this->backEndIpcFile = backEndIpcFile;
361 struct stat st = {0};
362 if (stat(path.c_str(), &st) == -1) {
363 mkdir(path.c_str(), 0777);
372 this->isManager = isManager;
376 return managerNodeHostName;
380 this->managerNodeHostName = managerNodeHostName;
384 return managerNodePort;
388 this->managerNodePort = managerNodePort;
392 return queryPlannerPlace;
396 this->queryPlannerPlace = queryPlannerPlace;
404 this->logLevel = logLevel;
408 this->isManagerCatalogServer = isManagerCatalogServer;
412 return this->isManagerCatalogServer;
416 this->serverAddress = serverAddress;
420 return this->serverAddress;
424 this->usePangea = usePangea;
428 return this->usePangea;
432 return this->batchSize;
436 this->batchSize = batchSize;
440 return this->statisticsDB;
444 this->statisticsDB = statisticsDB;
448 cout <<
"nodeID: " << nodeId << endl;
449 cout <<
"serverName: " << serverName << endl;
450 cout <<
"serverAddress: " << serverAddress << endl;
451 cout <<
"isManagerCatalogServer: " << isManagerCatalogServer << endl;
452 cout <<
"usePangea: " << usePangea << endl;
453 cout <<
"port: " << port << endl;
454 cout <<
"maxConnections: " << maxConnections << endl;
455 cout <<
"ipcFile: " << ipcFile << endl;
456 cout <<
"logFile: " << logFile << endl;
457 cout <<
"pageSize: " << pageSize << endl;
458 cout <<
"maxPageSize: " << maxPageSize << endl;
459 cout <<
"shufflePageSize: " << shufflePageSize << endl;
460 cout <<
"broadcastPageSize: " << broadcastPageSize << endl;
461 cout <<
"hashPageSize: " << hashPageSize << endl;
462 cout <<
"useUnixDomainSock: " << useUnixDomainSock << endl;
463 cout <<
"shmSize: " << shmSize << endl;
464 cout <<
"dataDirs: " << dataDirs << endl;
465 cout <<
"metaDir: " << metaDir << endl;
466 cout <<
"metaTempDir: " << metaTempDir << endl;
467 cout <<
"dataTempDirs: " << dataTempDirs << endl;
468 cout <<
"numThreads: " << numThreads << endl;
469 cout <<
"backEndIpcFile: " << backEndIpcFile << endl;
470 cout <<
"isManager: " << isManager << endl;
471 cout <<
"managerNodeHostName: " << managerNodeHostName << endl;
472 cout <<
"managerNodePort: " << managerNodePort << endl;
473 cout <<
"logEnabled: " << logEnabled << endl;
474 cout <<
"batchSize: " << batchSize << endl;
475 cout <<
"statisticsDB: " << statisticsDB << endl;
#define DEFAULT_NUM_THREADS
int getManagerNodePort() const
void setNumThreads(unsigned int numThreads)
void setServerName(string serverName)
string getDataDirs() const
void setBackEndIpcFile(string backEndIpcFile)
void setLogLevel(LogLevel logLevel)
bool isUseUnixDomainSock() const
bool getManagerCatalogServer()
string getMetaDir() const
void setIpcFile(string ipcFile)
string getServerName() const
void setLogFile(string logFile)
const string getQueryPlannerPlace() const
#define DEFAULT_SHAREDMEM_SIZE
bool getIsManager() const
void setBatchSize(int batchSize)
size_t getPageSize() const
string getDataTempDirs() const
#define DEFAULT_MAX_PAGE_SIZE
void setBroadcastPageSize(size_t broadcastPageSize)
#define DEFAULT_MAX_CONNECTIONS
size_t getNetPageSize() const
void setShufflePageSize(size_t shufflePageSize)
void setStatisticsDB(std::string statisticsDB)
void setHashPageSize(size_t hashPageSize)
string getBackEndIpcFile() const
size_t getBroadcastPageSize() const
size_t getHashPageSize() const
void setUsePangea(bool usePangea)
void setDataDirs(string dataDirs)
#define DEFAULT_BROADCAST_PAGE_SIZE
void setMaxPageSize(size_t maxPageSize)
string managerNodeHostName
void setManagerCatalogServer(bool isManagerCatalogServer)
void setManagerNodePort(int managerNodePort)
size_t getShmSize() const
size_t getNetBroadcastPageSize() const
bool isManagerCatalogServer
#define DEFAULT_SHUFFLE_PAGE_SIZE
void setNodeId(NodeID nodeId)
void setPageSize(size_t pageSize)
void setDataTempDirs(string tempDirs)
void setManagerNodeHostName(string managerNodeHostName)
int getMaxConnections() const
LogLevel getLogLevel() const
string getManagerNodeHostName() const
unsigned int getNumThreads() const
#define DEFAULT_BATCH_SIZE
void setIsManager(bool isManager)
std::string getStatisticsDB()
shared_ptr< Configuration > ConfigurationPtr
string getMetaTempDir() const
void setMaxConnections(int maxConnections)
void setQueryPlannerPlace(const string queryPlannerPlace)
#define DEFAULT_HASH_PAGE_SIZE
void setServerAddress(string serverAddress)
void setShmSize(size_t shmSize)
string getLogFile() const
string getIpcFile() const
void setUseUnixDomainSock(bool useUnixDomainSock)
#define DEFAULT_PAGE_SIZE
void createDir(string path)
size_t getNetShufflePageSize() const
size_t getShufflePageSize() const
void setMetaTempDir(string tempDir)
void setMetaDir(string metaDir)
bool isLogEnabled() const
string getServerAddress()
size_t getMaxPageSize() const
void setLogEnabled(bool logEnabled)