Chen Luo created ASTERIXDB-2600:
-----------------------------------

             Summary: Introduce ConcurrentMergePolicy
                 Key: ASTERIXDB-2600
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2600
             Project: Apache AsterixDB
          Issue Type: Improvement
            Reporter: Chen Luo
            Assignee: Chen Luo


The default PrefixMergePolicy has a number of problems: it only schedules 1 
merge at a time; it stops merging components when they are too large. Both 
problems will lead to undesirable performance behavior. This issue introduces a 
ConcurrentMergePolicy that fixes these problems.

It has the following four parameters:
* minComponentMergeCount: the minimum number of components to trigger a merge
* maxComponentMergeCount: the maximum number of components per merge
* maxComponentCount: the maximum number of components tolerated in total; when 
this number is reached, flush will be stopped
* sizeRatio: a merge is scheduled if the size of the oldest component <= 
sizeRatio * total size of youngest components. A larger size ratio(>1) implies 
fewer merges, but this leads to more components. A smaller size ratio (<1) 
implies more merges, but this improves query performance and space utilization.

Concurrent merges will be scheduled as well. Given a sequence of components 
ordered by newest to oldest, this policy first finds a longest prefix of this 
sequence so that no component is being merged. The merge decision will then be 
based on this prefix.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to