You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tubemq.apache.org by "Jeff Zhou (Jira)" <ji...@apache.org> on 2020/06/10 07:52:00 UTC

[jira] [Updated] (TUBEMQ-233) Performance Improvement on FileSegmentList

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

Jeff Zhou updated TUBEMQ-233:
-----------------------------
    Description: 
Current implementation of FileSegmentList is based on *native compact array* (Object[]), so:
 1. it lacks flexibility on add/remove;
 2. it would suffer a great performance impact while applying CAS performing an operation;
 3. it may cause phantom read as multiple temporary copy of candidates may fail to announce its update due to unintended currentView change;
 4. less space efficiency, as there might be multiple temporary copies in system in order to do an update.

So this issue is raised to optimize the storage list, and it's to exploit *RoundQueue* structure to achieve a better performance while make use of *weak CAS* to better adapt multi-threaded runtime.

  was:
Current implementation of FileSegmentList is based on native compact array (Object[]), so:
1. it lacks flexibility on add/remove;
2. it would suffer a great performance impact while applying CAS performing an operation;
3. it may cause phantom read as multiple temporary copy of candidates may fail to announce its update due to unintended currentView change;
4. less space efficiency, as there might be multiple temporary copies in system in order to do an update.
So this issue is raised to optimize the storage list, and it's to exploit RoundQueue structure to achieve a better performance while make use of weak CAS to better adapt multi-threaded runtime.


> Performance Improvement on FileSegmentList
> ------------------------------------------
>
>                 Key: TUBEMQ-233
>                 URL: https://issues.apache.org/jira/browse/TUBEMQ-233
>             Project: Apache TubeMQ
>          Issue Type: Improvement
>          Components: Broker
>            Reporter: Jeff Zhou
>            Assignee: Jeff Zhou
>            Priority: Major
>              Labels: performance
>
> Current implementation of FileSegmentList is based on *native compact array* (Object[]), so:
>  1. it lacks flexibility on add/remove;
>  2. it would suffer a great performance impact while applying CAS performing an operation;
>  3. it may cause phantom read as multiple temporary copy of candidates may fail to announce its update due to unintended currentView change;
>  4. less space efficiency, as there might be multiple temporary copies in system in order to do an update.
> So this issue is raised to optimize the storage list, and it's to exploit *RoundQueue* structure to achieve a better performance while make use of *weak CAS* to better adapt multi-threaded runtime.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)