Hi all, we saw that in MB 3.1.0, for several scenarios (ex: 10KB messages, with compression enabled) servers went OOM half way to 1M messages[1]. Please note that this happens with default flow control settings.
AFAIU this is what happened. 1. With MySQL, database was the overall bottleneck in both compression and non-compression scenarios. 2. MSSQL is faster than MySQL and with compression enabled DB is not the bottleneck anymore in inbound message flow. Compression was taking more execution time than db read/writes. Therefore, compression logic becomes the bottleneck in MSSQL scenario. 3. In "contentChunckHandler" (which compress chunks if compression enabled) has executed before[2] "messagePreprocessor" which has the flow control logic[3] implemented. Therefore, lag in compression has not counted in flow control logic. This leads inbound path accept messages from publishers more than server can handle. 4. This might have lead to the OOM. WDYT? [1] https://wso2.org/jira/browse/MB-1683 [2] https://github.com/wso2/andes/blob/v3.1.0/modules/andes-core/broker/src/main/java/org/wso2/andes/kernel/disruptor/inbound/InboundEventManager.java#L154 [3] https://github.com/wso2/andes/blob/v3.1.0/modules/andes-core/broker/src/main/java/org/wso2/andes/kernel/disruptor/inbound/MessagePreProcessor.java#L148 Thanks, -- Pumudu Ruhunage Software Engineer | WSO2 Inc http://wso2.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev