FrontPage
06/07†
This Term†
- try to implement an client-server architecture of the system
- then client can register query and get query result from the server
- so we should think about communication between different PCs
- communication mechanism
- the easiest way is to use socket directly, the best way is to use socket is I/O multiplexing or asynchronous I/O
- this is difficult to implement because we should deal with block, buffer and many other things. The best way is to use the method provided by each platform because they can support them by low-level system calls and signals.
- linux: epoll
- windows: iocp
- it is also not good to use epoll/iocp/kqueue directly because they are complex and not cross-platform, so there are some libraries to encapsulate them
- libevent
- libev
- boost::asio
- it is not good to use libevent/libev/boost::asio directly because if we use them, we will deal with binary data directly and it is not object-orientd. It is better to use RPC(remote procedure call).
- RCF( boost::asio)
- eventrpc(libevent)
- evproto(libevent)
Next Term†
05/24†
This Term†
- finish the binary representation of JSON
- now each JSON document has a binary representation other than character stream
- finish the memory manager
- memory allocate unit: page
(each page is divided into chunks, chunk has a fix size, and one record is saved in one chunk)
- finish the queue manager
- void push(Element& element);
- void pop(void);
- void front(Element& element);
- bool isEmpty(void);
- bool isFull(void);
- implementing the synopsis
- window synopsis
- lineage synopsis
- void insertLineage(Lineage& lineage,Element outputElement);
- void getAndDeleteElement(Lineage lineage, Element& outputElement);
- relation synopsis
- void insertElement(Element& element);
- void deleteElement(Element& element);
Next Term†
- finish the implementation of synopsis and operators
05/17†
This Term†
- study about the STREAM
- design the system
- prepare for the integration seminar
Next Term†
4/26†
This Term†
- read the source code of STREAM
- make our system run on linux
- study about Emacs, gdb, make
- design our system
Next Term†
- design and implement our system