You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2017/09/30 03:28:03 UTC
[jira] [Commented] (ASTERIXDB-2118) Older Memory Component gets
flushed to disk first
[ https://issues.apache.org/jira/browse/ASTERIXDB-2118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16186850#comment-16186850 ]
ASF subversion and git services commented on ASTERIXDB-2118:
------------------------------------------------------------
Commit ab8375ea3edec759d5590f5792926211ff22ca1b in asterixdb's branch refs/heads/master from [~luochen01]
[ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=ab8375e ]
[ASTERIXDB-2118][STO] Ensure flush ordering of memory components
- user model changes: no
- storage format changes: no
- interface changes: no
- Fix the bug of AsynchronousScheduler by waking up the next
flush only when the current operation is a FLUSH operation
Change-Id: I7de4a1625fdd3faaa07f65be2ebc714ec7564b29
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2038
Reviewed-by: Ian Maxon <im...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
> 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)