Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Skill Level:
      Regular Contributors Level (Easy to Medium)

      Description

      I've completely refactored couch_btree.erl in an attempt to make it more palatable for people that want to learn it. The current version is quite organic in its nature and this cleans up the code to be more consumable. Most everyone that's seen this patch has wanted it in trunk but I never got around to committing it.

      The patch I'm about to attach is quite gnarly as it's basically deleting and recreating the entire file. I find it quite a bit more helpful to read the end result which you can do at [1].

      Also, if we do commit this then the code in COUCHDB-1084 will be quite broken for the btree section. If that patch still applies cleanly to the other files I'm going to try and update the btree code for it tonight.

        Activity

        Hide
        Damien Katz added a comment -

        I have't looked closely at the patch, but with this module it's most important to not lose performance. One thing that jumps out at me is the cmp_keys function. I'd be sure to benchmark the the view indexing with large, complex keys, and the less comparisons will likely be happening more often and we've seen that be a performance bottleneck in the past.

        Show
        Damien Katz added a comment - I have't looked closely at the patch, but with this module it's most important to not lose performance. One thing that jumps out at me is the cmp_keys function. I'd be sure to benchmark the the view indexing with large, complex keys, and the less comparisons will likely be happening more often and we've seen that be a performance bottleneck in the past.

          People

          • Assignee:
            Unassigned
            Reporter:
            Paul Joseph Davis
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development