[ 
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)

Reply via email to