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