This is a NoSQL Database (Document database).
StoneDB
|
|------include
| |------ core.hpp
| |------ dms.hpp
| |------ dmsRecord.hpp
| |------ msg.hpp
| |------ ossLatch.hpp
| |------ ossMmapFile.hpp
| |------ ossLatch.hpp
| |------ ossHash.hpp
| |------ ossPrimitiveFileOp.hpp
| |------ ossQueue.hpp
| |------ ossSocket.hpp
| |------ ossUtil.hpp
| |------ ossLatch.hpp
| |------ ixmBucket.hpp
| |------ pd.hpp
| |------ pmd.hpp
| |------ pmdEDU.hpp
| |------ monCB.hpp
| |------ pmdEDUEvent.hpp
| |------ pmdEDUMgr.hpp
| |------ pmdOptions.hpp
| |------ rtn.hpp
|------oss
| |------ ossSocket.cpp
| |------ ossPrimitiveFileOp.cpp
| |------ ossMmapFile.cpp
|------pd
| |------ pd.cpp
|------rtn
| |------ rtn.cpp
|------mon
| |------ monCB.cpp
|------msg
| |------ msg.cpp
|------dms
| |------ dms.cpp
|------ixm
| |------ ixmBucket.cpp
|------SQL
| |------ lexer.l
| |------ yacc.y
| |------ Tree.h
| |------ AST.h
|------pmd
| |------ pmd.cpp
| |------ pmdEDU.cpp
| |------ pmdEDUMgr.cpp
| |------ pmdAgent.cpp
| |------ pmdMain.cpp
| |------ pmdTCPListener.cpp
| |------ pmdOption.cpp
|------client
| |------ command.hpp
| |------ command.cpp
| |------ commandFactory.hpp
| |------ commandFactory.cpp
| |------ edb.hpp
| |------ edb.cpp
|------Makefile.am
|------Makefile.am.Mac.am
|------build.sh
|------Configure.in
|------Configure.in.bak
step 1 (Done):
a. install Boost C++ library.
b. use autotools to set up compiling environment.
---files related: Makefile.am, build.sh, configure.in, configure.in.bak.
step 2 (Done):
a. encapsulate all necessary socket functions into ossSocket.
b. coding and compiling source code of server and client.
c. define several basic commands of client, like help, connect and etc.
d. send requests from client to server.
---files related: core.hpp, ossSocket.hpp, ossSocket.cpp, command.cpp, command.hpp, commandFactory.cpp, commandFactory.hpp, edb.cpp, edb.hpp, pmdTcpListener.cpp, pmdAgent.cpp.
step 3 (Done):
a. build lock component to keep multi-threading safety.
b. coding queue structure for threads with mutex and conditional variable.
c. build fundamental file operations component.
d. maintain a kernal controller.
f. initialize configuration file.
e. establish Log component.
---files related: ossLatch.hpp, ossPrimitiveFileOp.hpp, ossPrimitiveFileOp.cpp, pmd.hpp, pmd.cpp, pd.cpp, pd.hpp, pmdMain.cpp, pmdOptions.hpp, pmdOptions.cpp.
step 4 (Done):
a. implement Engine Dispatchable Unit.
b. implement thread scheduling mechanism.
c. implement thread pool.
d. implement lock mechanism on thread queues.
---files related: ossUtil.hpp, pmdEDU.hpp, pmdEDU.cpp, pmdEDUMgr.hpp, pmdEDUMgr.cpp, pmdOptions.hpp, pmdOptions.cpp, edb.cpp, edb.hpp, command.cpp, command.hpp, pmdTCPListener.cpp.
step 5 (Done):
a. complete message encapsulation.
b. client part has been done.
c. define special message protocols for StoneDB.
---files related: msg.hpp, msg.cpp, command.cpp, pmdAgent.cpp.
step 6 (Done):
establish mapping betweent disk and memory via Mmap.
---files related: ossMmapFile.cpp.
step 7 (Done):
a. BSON and data records structure design.
b. data files design.
---files related: dms.hpp, dms.cpp, dmsRecord.hpp.
step 8 (Done):
a. to finish the file and data operations like insert, delete, query in dms module, etc.
b. to code runtime system connecting database manager and process manager.
---files related: rtn.hpp, rtn.cpp, dms.hpp, dms.cpp, pmd.cpp.
step 9 (Done):
a. implement hash function on keys.
b. achieve automatically establishing index as soon as StoneDB launchs.
---files related: rtn.hpp, rtn.cpp, ixmBucket.cpp, ixmBucket.hpp, dms.hpp, dms.cpp, ossHash.hpp.
step 10 (Done):
a. understand basic concepts of DB, including transaction, log, ect.
b. define lexical rules of SQL.
c. define grammatical rules of SQL
d. write a SQL Resolver.
---files related: yacc.y, Tree.h, lexer.l, AST.h
step 11 (Done):
finish java driver.
---directory related: driver.
step 12 (Done):
build a snapshot monitor for StoneDB.
---files related: monCB.hpp, monCB.cpp, pmdAgent.cpp, pmd.hpp
step 13 (Done):
a. understand software testing.
b. deploy jenkins.
step 14 (Done):
a. java test app.
b. java monitor app.
------directory related: java, bin.