You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Jan Lehnardt (JIRA)" <ji...@apache.org> on 2009/01/23 22:07:59 UTC

[jira] Updated: (COUCHDB-224) Improve B-Tree implementation

     [ https://issues.apache.org/jira/browse/COUCHDB-224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan Lehnardt updated COUCHDB-224:
---------------------------------

       Priority: Blocker  (was: Major)
    Description: 
 Also, the current Btree implementation isn't completely self balanacing. It
misses a balancing condition, partially for efficiency (it's an expensive
balancing operation), and for expediency. It was easier to not implement it and
gets the general case perormance boost.

 The thing about this is, the btree code can remain as is if the indexing
compaction just recopies the map values (and back indexes) and recomputes the
reduction values. That's a very simple design, however, if the btree is
completely self balancing, then the btree can be copied on a node by node basis,
instead of a value by value basis, and the reduction values need not be
recomputed all. This will make the compaction significantly faster overall.


  was:
 Also, the current Btree implementation isn't completely self balanacing. It
misses a balancing condition, partially for efficiency (it's an expensive
balancing operation), and for expediency. It was easier to not implement it and
gets the general case perormance boost.

 The thing about this is, the btree code can remain as is if the indexing
compaction just recopies the map values (and back indexes) and recomputes the
reduction values. That's a very simple design, however, if the btree is
completely self balancing, then the btree can be copied on a node by node basis,
instead of a value by value basis, and the reduction values need not be
recomputed all. This will make the compaction significantly faster overall.


Set blocking for 0.9 because I believe this will break the database file format.

> Improve B-Tree implementation
> -----------------------------
>
>                 Key: COUCHDB-224
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-224
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Database Core
>    Affects Versions: 0.8
>            Reporter: Jan Lehnardt
>            Priority: Blocker
>             Fix For: 0.9
>
>
>  Also, the current Btree implementation isn't completely self balanacing. It
> misses a balancing condition, partially for efficiency (it's an expensive
> balancing operation), and for expediency. It was easier to not implement it and
> gets the general case perormance boost.
>  The thing about this is, the btree code can remain as is if the indexing
> compaction just recopies the map values (and back indexes) and recomputes the
> reduction values. That's a very simple design, however, if the btree is
> completely self balancing, then the btree can be copied on a node by node basis,
> instead of a value by value basis, and the reduction values need not be
> recomputed all. This will make the compaction significantly faster overall.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.