[Pvfs2-cvs] commit by pcarns in pvfs2-1: PVFS2-GLOBAL-TODO.txt

CVS commit program cvs at parl.clemson.edu
Mon Aug 18 15:25:47 EDT 2008


Update of /projects/cvsroot/pvfs2-1
In directory parlweb1:/tmp/cvs-serv7946

Removed Files:
	PVFS2-GLOBAL-TODO.txt 
Log Message:
removing ancient to do list from source tree


--- PVFS2-GLOBAL-TODO.txt	2008-08-18 15:25:47.000000000 -0400
+++ /dev/null	2004-06-24 14:04:38.000000000 -0400
@@ -1,193 +0,0 @@
-####################################################################
-# TODO list for pvfs2 project as a whole
-# 
-#
-
-NOTE: Some (dated) status information can be found in doc/pvfs2-status.tex
-
-improving robustness of I/O apis:
-====================================================================
-- our internal api's should be able to handle the following cases:
-  a) operations posted before initialize() should return error
-  b) operations posted after finalize() has started should return error
-  c) finalize() should gracefully terminate pending operations, although 
-     those operations will have undefined results
-- these API's in particular need update in that regard:
-  - dbpf-attr-cache DONE
-  - trove
-  - bmi
-  - flow
-  - job
-  - request scheduler
-  - device interface
-
-server operations:
-====================================================================
-- not started:
-  - eattrib (set/get)
-  
-- unfinished:
-  - general error handling
-  - performance monitoring (need more metrics)
-
-general server functionality:
-====================================================================
-- attributes (permissions, etc.) on datafiles
-- finishing file system semantics documentation
-- don't forget to define semantics for access times
-
-request scheduler:
-====================================================================
-- more generic implementation
-- smarter concurrency rules
-
-system interface functionality:
-====================================================================
-- not started:
-  - eattrib (set/get)?
-
-- unfinished:
-  - thread safety
-  - way to pass in consistency semantics (timeout values, etc.)
-
-- define how configuration info should be passed in
-  (how to do paths, fstab, url stuff, whatever)
-- define how to pass in distribution and number of datafiles for 
-  cases in which the caller wants to override the defaults
-- add nonblocking api for some functions
-- clean up API (in particular fstab parsing / initialize path, and removal of
-  depricated terminology)
-- make input pointer argumentss to system interface be declared const
-- make sure that system interface functions return an error, rather than
-  asserting, if the caller tries to operate on a bogus handle (one case occurs
-  in assertions following PINT_bucket_map_to_server())
-
-kernel/vfs interface
-====================================================================
-
-performance tuning:
-====================================================================
-- instrumenting
-- steal what we can from mpich2
-- architecture specific locking, etc.
-- thread tuning
-- memory allocation cache
-- do some benchmarking of thread context switches to help decide
-  how trove/job/flow interfaces should interact
-- figure out how to make i/o faster
-
-request encoding:
-====================================================================
-- come up with a mechanism for handling requests that go beyond
-  the BMI defined limit for unexpected messages (mainly an issue
-  on read/write with complex datatypes, but also potentially a 
-  problem on setattr)
-
-error codes:
-====================================================================
-- converting to new error code format (everywhere)
-- documenting valid error codes from functions
-
-I/O path:
-====================================================================
-- buffer cache on top of trove
-- clean up buffer management in BMI to be more useful for I/O buffer 
-  cache, maybe push to a seperate component
-- optimizing small reads and writes (packing data into req/ack messages)
-- native GM flowprotocol
-- general optimizations (lock granularity, immediate completion, etc.)
-- ability to unpost, correct use of timeouts, preposting operations
-- semantics of short read and write operations
-- bmi_tcp scalability and robustness
-- ability to toggle synch behavior in trove
-- use better buffer size in default flow protocol
-- bmi shmem implementation
-- many items in BMI and flow TODO files
-- ability to compile out device support, or at least prevent device thread
-  from spawning if not used
-- ability to fail over with multiple bmi transports
-
-correctness/performance testing
-====================================================================
-- a comprehensive test suite of the system interface API
-- more pts tests
-- profiling code paths
-- eliminate memory leaks
-- handle server or client failures in a reasonable way (log and exit instead
-  of segfault, perhaps)
-
-system management utilities
-====================================================================
-- pvfs2-fsck (serial tool done, evolve into parallel tool)
-- decide what we want/need here?
-  - health monitoring
-  - system recovery
-  - system statistics (raid stat, mem used, etc.)
-  - etc.
-- performance monitoring:
-  - more metrics
-  - more viz tools
-- end user documentation
-- better logging systems
-- maybe make pvfs2-ping compute a cksum on the fs.conf from all
-  servers and issue a warning if they don't all match?
-
-documentation:
-====================================================================
-- come up with an automated way to document the wire packet format
-  - also document headers that bmi tacks on, at least for bmi_tcp
-- update the coding guidelines
-- document config file options
-- automate faq publishing
-- mechanism for exporting to html
-- update all design docs!
-- review
-
-code cleanup:
-====================================================================
-- remove some of the stuff from the test subdir for "make dist" target
-  - in particular, test/common (partial), test/io, test/proto, test/server
-- put in header file wrappers to make them work with c++
-- audit code to make sure that all error paths are handled when
-  assertions are turned off
-- maybe make a checklist for each pvfs2 component to use as we clean 
-  up each section of the code?  (items to check for each component
-  could include stuff like symbol names, PVFS_error code usage,
-  properly error handling when assertions are off, etc.)
-- consistent formatting
-- consistent function naming
-- consistent header file inclusion
-- come up with more named values like TROVE_HANDLE_NULL to use in 
-  other parts of the code
-- try to clean up flow / I/O path some, in particular so we don't have
-  to do so much mallocing to set up from client side
-  - maybe do things like embed file_data struct in flow desc.
-- make permission checking in prelude.sm neater, maybe assert on 
-  unkown op types so we don't forget to add new ones here
-
-fault tolerance:
-=====================================================================
-- what does the API look like
-- data redundancy
-- failover
-
-testing:
-=====================================================================
-- run common test programs and benchmarks, like:
-  - flash
-  - iozone
-  - dbench
-  - ior
-  - bonnie
-  - make kernel
-  - mpiiotest
-  - John May's tests?
-  - piobench
-- more pts tests
-- more datatype testing
-  - remember example of ub < lb
-
-rob's random list:
-=====================================================================
-- do something about the weird PINT_sys_wait and PINT_mgmt_wait macros in
-  client-state-machine.h



More information about the Pvfs2-cvs mailing list