You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Chen Luo (JIRA)" <ji...@apache.org> on 2017/09/29 21:50:00 UTC

[jira] [Created] (ASTERIXDB-2118) Older Memory Component gets flushed to disk first

Chen Luo created ASTERIXDB-2118:
-----------------------------------

             Summary: Older Memory Component gets flushed to disk first
                 Key: ASTERIXDB-2118
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2118
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: STO - Storage
            Reporter: Chen Luo
            Assignee: Chen Luo


Currently we have two memory components, say M1 and M2, as double buffering. The AysnchronousScheduler needs to guarantee M1 and M2 are flushed in a proper order. However, the current scheduler is buggy. Consider the following event sequences.

1. M1 is full
2. schedule flush M1
3. activate M2
4. M2 is full
5. schedule flush M2 (cannot be scheduled since M1 is flushing)
6. A merge operation is finished

At this moment, line 59 of AysnchronousScheduler is executed, and it schedules M2.
Thus, M2 could be finished earlier before M1, resulting in wrong order of flushed disk components on disk.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)