This is an automated email from the ASF dual-hosted git repository.

duhengforever pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git

commit efbc4a1fccd2e79b339ee2e6da7695a03eb31139
Merge: 1905756db 86568e2d6
Author: Heng Du <[email protected]>
AuthorDate: Thu Jul 21 09:23:27 2022 +0800

    Merge pull request #4484 from apache/5.0.0-beta-dledger-controller
    
    [RIP-44] Support DLedger Controller

 .../apache/rocketmq/broker/BrokerController.java   | 126 ++--
 .../org/apache/rocketmq/broker/BrokerStartup.java  |  28 +-
 .../broker/controller/ReplicasManager.java         | 447 +++++++++++++
 .../apache/rocketmq/broker/out/BrokerOuterAPI.java | 145 ++++-
 .../broker/processor/AdminBrokerProcessor.java     |  68 +-
 .../rocketmq/client/impl/MQClientAPIImpl.java      |  52 ++
 .../org/apache/rocketmq/common/BrokerAddrInfo.java |  78 +++
 .../org/apache/rocketmq/common/BrokerConfig.java   |  63 +-
 .../apache/rocketmq/common/ControllerConfig.java   | 178 ++++++
 .../org/apache/rocketmq/common/EpochEntry.java     |  91 +++
 .../java/org/apache/rocketmq/common/MixAll.java    |   1 +
 .../rocketmq/common/constant/LoggerName.java       |   1 +
 .../rocketmq/common/namesrv/NamesrvConfig.java     |   2 +-
 .../rocketmq/common/protocol/RequestCode.java      |  19 +
 .../rocketmq/common/protocol/ResponseCode.java     |  11 +
 .../common/protocol/body/EpochEntryCache.java      |  87 +++
 .../common/protocol/body/InSyncStateData.java      | 124 ++++
 .../common/protocol/body/SyncStateSet.java         |  55 ++
 .../NotifyBrokerRoleChangedRequestHeader.java      |  83 +++
 .../controller/AlterSyncStateSetRequestHeader.java |  71 +++
 .../AlterSyncStateSetResponseHeader.java           |  45 ++
 .../controller/ElectMasterRequestHeader.java       |  50 ++
 .../controller/ElectMasterResponseHeader.java      |  76 +++
 .../controller/GetMetaDataResponseHeader.java      |  93 +++
 .../controller/GetReplicaInfoRequestHeader.java    |  64 ++
 .../controller/GetReplicaInfoResponseHeader.java   |  66 ++
 .../RegisterBrokerToControllerRequestHeader.java   |  83 +++
 .../RegisterBrokerToControllerResponseHeader.java  |  76 +++
 .../rocketmq/common/utils/CheckpointFile.java      | 155 +++++
 .../rocketmq/common/utils/FastJsonSerializer.java  |  62 ++
 .../apache/rocketmq/common/utils/Serializer.java   |  35 +
 .../rocketmq/common/utils/CheckpointFileTest.java  |  97 +++
 .../container/BrokerContainerProcessor.java        |  30 +-
 .../rocketmq/container/BrokerContainerStartup.java |  28 +-
 .../rocketmq/container/InnerBrokerController.java  |  19 +-
 {namesrv => controller}/pom.xml                    |  54 +-
 .../controller/BrokerHeartbeatManager.java         |  70 ++
 .../controller/BrokerHousekeepingService.java      |  51 ++
 .../org/apache/rocketmq/controller/Controller.java | 109 ++++
 .../rocketmq/controller/ControllerManager.java     | 220 +++++++
 .../rocketmq/controller/ControllerStartup.java     |  60 +-
 .../controller/impl/DLedgerController.java         | 455 +++++++++++++
 .../impl/DLedgerControllerStateMachine.java        |  75 +++
 .../impl/DefaultBrokerHeartbeatManager.java        | 188 ++++++
 .../impl/event/AlterSyncStateSetEvent.java         |  55 ++
 .../controller/impl/event/ApplyBrokerIdEvent.java  |  58 ++
 .../controller/impl/event/ControllerResult.java    |  87 +++
 .../controller/impl/event/ElectMasterEvent.java    |  74 +++
 .../controller/impl/event/EventMessage.java        |  28 +
 .../controller/impl/event/EventSerializer.java     |  77 +++
 .../rocketmq/controller/impl/event/EventType.java  |  57 ++
 .../controller/impl/manager/BrokerInfo.java        |  75 +++
 .../impl/manager/ReplicasInfoManager.java          | 421 ++++++++++++
 .../controller/impl/manager/SyncStateInfo.java     |  82 +++
 .../processor/ControllerRequestProcessor.java      | 143 +++++
 .../impl/controller/ControllerManagerTest.java     | 196 ++++++
 .../controller/impl/DLedgerControllerTest.java     | 280 ++++++++
 .../impl/DefaultBrokerHeartbeatManagerTest.java    |  52 ++
 .../impl/manager/ReplicasInfoManagerTest.java      | 141 ++++
 controller/src/test/resources/logback-test.xml     |  33 +
 distribution/bin/controller/fast-try.sh            | 101 +++
 distribution/bin/mqcontroller                      |  45 ++
 .../bin/{mqshutdown.cmd => mqcontroller.cmd}       |  20 +-
 distribution/bin/mqshutdown                        |  16 +-
 distribution/bin/mqshutdown.cmd                    |   8 +-
 .../conf/controller/quick-start/broker-n0.conf     |  30 +
 .../conf/controller/quick-start/broker-n1.conf     |  30 +
 .../conf/controller/quick-start/namesrv.conf       |  21 +
 distribution/conf/logback_controller.xml           |  94 +++
 docs/cn/controller/deploy.md                       |  93 +++
 docs/cn/controller/design.md                       | 201 ++++++
 docs/cn/controller/quick_start.md                  |  80 +++
 docs/cn/image/controller/controller_design_1.png   | Bin 0 -> 427708 bytes
 .../image/controller/quick-start/changemaster.png  | Bin 0 -> 13598 bytes
 .../cn/image/controller/quick-start/controller.png | Bin 0 -> 315128 bytes
 docs/cn/image/controller/quick-start/epoch.png     | Bin 0 -> 14409 bytes
 .../image/controller/quick-start/syncstateset.png  | Bin 0 -> 13030 bytes
 namesrv/pom.xml                                    |   4 +
 .../apache/rocketmq/namesrv/NamesrvStartup.java    |  97 ++-
 .../namesrv/routeinfo/RouteInfoManager.java        |  65 +-
 pom.xml                                            |  11 +
 .../remoting/netty/NettyRemotingClient.java        |   2 +-
 .../java/org/apache/rocketmq/store/CommitLog.java  |  45 +-
 .../apache/rocketmq/store/DefaultMessageStore.java |  49 +-
 .../org/apache/rocketmq/store/MessageStore.java    |  41 +-
 .../rocketmq/store/config/MessageStoreConfig.java  |  65 +-
 .../apache/rocketmq/store/ha/DefaultHAService.java |  62 +-
 .../rocketmq/store/ha/GroupTransferService.java    |  48 +-
 .../org/apache/rocketmq/store/ha/HAService.java    |  28 +-
 .../store/ha/autoswitch/AutoSwitchHAClient.java    | 526 +++++++++++++++
 .../ha/autoswitch/AutoSwitchHAConnection.java      | 708 +++++++++++++++++++++
 .../store/ha/autoswitch/AutoSwitchHAService.java   | 407 ++++++++++++
 .../store/ha/autoswitch/EpochFileCache.java        | 327 ++++++++++
 .../rocketmq/store/ha/io/AbstractHAReader.java     |  80 +++
 .../apache/rocketmq/store/ha/io/HAReadHook.java    |  22 +
 .../apache/rocketmq/store/ha/io/HAWriteHook.java   |  22 +
 .../org/apache/rocketmq/store/ha/io/HAWriter.java  |  61 ++
 .../org/apache/rocketmq/store/ha/HAServerTest.java |  21 +-
 .../store/ha/autoswitch/AutoSwitchHATest.java      | 505 +++++++++++++++
 .../store/ha/autoswitch/EpochFileCacheTest.java    | 149 +++++
 .../test/autoswitchrole/AutoSwitchRoleBase.java    | 178 ++++++
 .../AutoSwitchRoleIntegrationTest.java             | 239 +++++++
 .../test/container/PullMultipleReplicasIT.java     |   2 +-
 .../rocketmq/test/container/SlaveBrokerIT.java     |   2 +-
 .../rocketmq/tools/admin/DefaultMQAdminExt.java    |  30 +-
 .../tools/admin/DefaultMQAdminExtImpl.java         |  18 +
 .../apache/rocketmq/tools/admin/MQAdminExt.java    |  19 +-
 .../apache/rocketmq/tools/command/CommandUtil.java |   9 +
 .../rocketmq/tools/command/MQAdminStartup.java     |  15 +-
 .../command/broker/GetBrokerEpochCommand.java      | 119 ++++
 .../controller/GetControllerMetaDataCommand.java   |  68 ++
 .../command/ha/GetSyncStateSetSubCommand.java      | 130 ++++
 .../tools/command/ha/HAStatusSubCommand.java       |  10 +-
 113 files changed, 10368 insertions(+), 405 deletions(-)

Reply via email to