1 / 7

OpenLDAP Architecture

OpenLDAP Architecture. Refactoring ABIs Howard Chu March 21, 2003 hyc@symas.com. Objectives: Why Change?. Reduce Redundant Functions Streamline Calling Sequences Enhance Callback Functionality. Reduce Redundancy. bi_op_attribute and bi_op_group Both share a lot of code in common

hollis
Download Presentation

OpenLDAP Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OpenLDAP Architecture Refactoring ABIs Howard Chu March 21, 2003 hyc@symas.com

  2. Objectives: Why Change? • Reduce Redundant Functions • Streamline Calling Sequences • Enhance Callback Functionality

  3. Reduce Redundancy • bi_op_attribute and bi_op_group • Both share a lot of code in common • Frequently require the same bug fixes • backend_group is just backend_attribute with one additional check • Replace with bi_op_entry, get more functionality at the same time

  4. Streamline Calling Sequences • ~ 20% of functions in slapd take Backend, Connection, Operation arguments • 58 of 305 declarations in proto-slap.h • All of the backend operations take <ditto> • They are needed together so frequently, they are essentially one parameter • Consolidating into Operation ensures they are all always available when needed

  5. Enhance Callbacks • Callbacks don’t have direct access to request parameters, must re-parse ber • Again, multiple related arguments for results • Conn, Op, err, matched, text, Controls • Callback nesting eats up stack for arguments • Consolidating parameters into Operation provides more functionality while improving execution efficiency

  6. Other Considerations • Backend layering • Reimplement back-meta as an engine that can be overlaid over any other backend – suffixalias done right, among other things • Overlay back-ldap over any other backend – handle chaining instead of returning references to client

  7. Conclusions • Improve maintainability • Eliminate redundant code, only need to fix bugs once • Improve efficiency and scalability • Enables additional functionality with minimal overhead

More Related