12/20/2007 Summary - Test on non-blocking queue implementation - Implemenation and test: more concurrency for DRMS_GETUNIT - Implemenation and test: drms_stage_records() - Doxygen documentation - Preparation for PostgreSQL upgrade - SUMS test delayed due to SUMS problem Non-blocking queue implementation ================================= Done for sums thread. Implementation: - SUM object pool, each SUM object can handle at most one outstanding request. - Used time conditional wait (pthread_cond_timedwait) to split time between waiting on the sums inbox (request queue) and polling sums service. Test showed it worked. More concurrency for DRMS_GETUNIT ================================= Done for drms server thread. Locking is needed because multiple drms server threads are accessing a share data structure, e.g., SU cache. Moved drms_lock_server() to lower level. Rewrote drms_getunit(). 1. Lookup SU <- lock needed 2. If not cached, stage SU (submit request to sums, then wait for reply) <- no lock needed 3. Lookup SU a second time, if not there, enter cache <- lock needed Test showed it worked. I am thinking about how to do 'dontwait' type of staging. drms_stage_records() ==================== Original implemenation deals with one SU at a time, I had to add a bunch of functions: - drms_getunits() - drms_server_getunits() - drms_su_getsudirs() ... One limitation in my implemenation all records in the record set must come from the same series. It's possible to change it to allow records from different series. the matter has to do with efficient communication using the socket. We need to communicate both sunum and it's corresponding series name for book keeping purpose (SU cache for example). Test showed it worked well. This implemenation is orthogonal to the improvement for non-blocking sums thread and drms server thread. I need to merge these two. Neither has been checked in yet. Doxygen documentation ===================== Worked on a few modules last week. Started to write documenation for drms_server related stuff. Preparation for PostgreSQL upgrade =================================== Need to install new version of postgresql on the same machine where the current postgresql software resides. Found out that rpm's from postgresql website are not relocatable. Decided to compile from source code. Would like to find out all the compilation flags used by the rpm's.