19 #ifndef PANGEA_STORAGE_SERVER_H
20 #define PANGEA_STORAGE_SERVER_H
38 #include <boost/filesystem.hpp>
94 bool flushOrNot =
true,
95 bool directPutOrNot =
false);
101 SetPtr getSet(std::pair<std::string, std::string> databaseAndSet);
110 size_t bufferRecord(pair<std::string, std::string> databaseAndSet,
194 bool addSet(std::string dbName,
195 std::string typeName,
204 bool addSet(std::string dbName,
205 std::string typeName,
218 bool removeSet(std::string dbName, std::string typeName, std::string setName);
223 bool removeSet(std::string dbName, std::string setName);
283 void cleanup(
bool flushOrNot =
true);
290 std::string& errMsg);
295 std::string hdfsNameNodeIp,
296 int hdfsNameNodePort,
299 std::string& errMsg);
343 boost::filesystem::path dbMetaPath);
351 std::map<std::pair<std::string, std::string>, std::pair<DatabaseID, SetID>>*
names2ids;
435 std::map<pair<std::string, std::string>, std::vector<Record<Vector<Handle<Object>>>*>>
439 std::map<pair<std::string, std::string>,
size_t>
sizes;
445 std::map<DatabaseID, DefaultDatabasePtr>*
dbs;
std::map< std::string, UserTypeID > * typename2id
std::map< SetID, TempSetPtr > * tempSets
DefaultDatabasePtr getDatabase(DatabaseID dbId)
shared_ptr< TempSet > TempSetPtr
shared_ptr< PDBPage > PDBPagePtr
std::map< pair< std::string, std::string >, std::vector< Record< Vector< Handle< Object > > > * > > allRecords
bool addSet(std::string dbName, std::string typeName, std::string setName, SetID setId, size_t pageSize=DEFAULT_PAGE_SIZE)
bool removeType(std::string typeName)
std::vector< std::string > dataTempPaths
pthread_mutex_t workingMutex
shared_ptr< PageCache > PageCachePtr
bool exportToFile(std::string dbName, std::string setName, std::string path, std::string format, std::string &errMsg)
std::shared_ptr< PangeaStorageServer > PangeaStorageServerPtr
void addDatabaseBySequenceFiles(string dbName, DatabaseID dbId, boost::filesystem::path dbPath)
bool removeTypeFromDatabase(std::string dbName, std::string typeName)
shared_ptr< DefaultDatabase > DefaultDatabasePtr
TempSetPtr getTempSet(SetID setId)
void stopFlushConsumerThreads()
std::map< std::string, SequenceID * > * usersetSeqIds
void writeBackRecords(pair< std::string, std::string > databaseAndSet, bool flushOrNot=true, bool directPutOrNot=false)
void clearDB(DatabaseID dbId, string dbName)
bool removeTempSet(SetID setId)
void startFlushConsumerThreads()
PDBPagePtr getNewPage(pair< std::string, std::string > databaseAndSet)
SharedMemPtr getSharedMem()
pthread_mutex_t usersetLock
std::map< DatabaseID, DefaultDatabasePtr > * dbs
pthread_mutex_t tempsetLock
string getPathToBackEndServer()
bool initializeFromRootDirs(string metaRootPath, vector< string > dataRootPath)
bool removeDatabase(std::string dbName)
shared_ptr< SharedMem > SharedMemPtr
std::map< std::string, DatabaseID > * name2id
std::map< std::pair< DatabaseID, SetID >, SetPtr > * userSets
bool addDatabase(std::string dbName, DatabaseID dbId)
string encodeDBPath(string rootPath, DatabaseID dbId, string dbName)
PageCircularBufferPtr flushBuffer
std::map< std::string, SetID > * name2tempSetId
std::vector< std::string > dataRootPaths
size_t bufferRecord(pair< std::string, std::string > databaseAndSet, Record< Vector< Handle< Object >>> *addMe)
shared_ptr< PDBWorkerQueue > PDBWorkerQueuePtr
bool addTempSet(std::string setName, SetID &setId, size_t pageSize=DEFAULT_PAGE_SIZE)
pthread_mutex_t counterMutex
shared_ptr< Configuration > ConfigurationPtr
shared_ptr< PDBWorker > PDBWorkerPtr
void addDatabaseByPartitionedFiles(string dbName, DatabaseID dbId, boost::filesystem::path dbMetaPath)
pthread_mutex_t databaseLock
SetPtr getSet(std::pair< std::string, std::string > databaseAndSet)
bool exportToHDFSFile(std::string dbName, std::string setName, std::string hdfsNameNodeIp, int hdfsNameNodePort, std::string path, std::string format, std::string &errMsg)
std::map< std::pair< std::string, std::string >, std::pair< DatabaseID, SetID > > * names2ids
void registerHandlers(PDBServer &forMe) override
bool removeSet(std::string dbName, std::string typeName, std::string setName)
std::shared_ptr< PDBLogger > PDBLoggerPtr
ConfigurationPtr getConf()
PageCircularBufferPtr getFlushBuffer()
shared_ptr< UserSet > SetPtr
#define DEFAULT_PAGE_SIZE
std::map< pair< std::string, std::string >, size_t > sizes
PDBWorkerQueuePtr workers
bool addType(std::string typeName, UserTypeID typeId)
shared_ptr< PageCircularBuffer > PageCircularBufferPtr
int numWaitingBufferDataRequests
PangeaStorageServer(SharedMemPtr shm, PDBWorkerQueuePtr workers, PDBLoggerPtr logger, ConfigurationPtr conf, bool standalone=true)
std::vector< PDBWorkPtr > flushers
string pathToBackEndServer