Details
-
Task
-
Resolution: Fixed
-
Minor
-
Lustre 2.7.0
-
16444
Description
The Lustre* file system client implementation for the IO path (called CLIO) is responsible for issuing RPC commands for reading and writing data to the OSTs. CLIO was reconstructed in Lustre software version 2.0 for cross-platform portability. The 2.x client implementation has proven over time to be highly complex thus making the code hard to understand and maintain.
Liblustre has not been maintained or tested for a number of release cycles. Today, the code compiles successfully but no evidence to show that anybody is using liblustre. This code only serves to confuse engineers and it should be removed.
In addition, CLIO is highly complex, with a significant amount of this complexity being contributed by the cl_lock. This complexity creates a high barrier to entry for engineers wanting to modify, enhance and identify bugs. As a result enhancements to the client code are time consuming and a significant number of BUGs arrive from the cl_lock portions of the code. These BUGs can only be fixed by a few engineers because of the code complexity. LLNL has mentioned that "even our experienced engineers can't understand the Client IO code". The most complex part of cl_lock should be removed to reduce complexity and confusion. After this is complete CLIO will be easier to understand.
This project is described in the scope statement here:
http://wiki.opensfs.org/images/8/83/CLIOSimplificationDesign_ScopeStatement.pdf
Attachments
Issue Links
- is blocked by
-
LU-5814 encapsulate lov_stripe_md (LSM) to LOV layer
- Resolved
-
LU-5823 Replace some obsolete obd operations with CLIO ioctl interface
- Resolved
-
LU-5971 removal of ccc_ layer
- Resolved
-
LU-3259 cl_lock refactoring
- Resolved
- is related to
-
LU-10257 vvp_lock, lov_page, and lovsub_{lock,page} are (more or less) unused
- Closed
- is related to
-
LU-3260 Solution Architecture and HLD
- Closed