Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D9001200C0F for ; Wed, 18 Jan 2017 19:39:32 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id D7C66160B43; Wed, 18 Jan 2017 18:39:32 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 32502160B22 for ; Wed, 18 Jan 2017 19:39:32 +0100 (CET) Received: (qmail 52757 invoked by uid 500); 18 Jan 2017 18:39:31 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 52746 invoked by uid 99); 18 Jan 2017 18:39:31 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jan 2017 18:39:31 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id CC2ED18066C for ; Wed, 18 Jan 2017 18:39:30 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -1.199 X-Spam-Level: X-Spam-Status: No, score=-1.199 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-2.999] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id Q0sx8X4PosW5 for ; Wed, 18 Jan 2017 18:39:28 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 3F1815FB6A for ; Wed, 18 Jan 2017 18:39:28 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 74CA3E0952 for ; Wed, 18 Jan 2017 18:39:27 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 5FD6625284 for ; Wed, 18 Jan 2017 18:39:26 +0000 (UTC) Date: Wed, 18 Jan 2017 18:39:26 +0000 (UTC) From: "Wiktor N (JIRA)" To: issues@commons.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (JCS-171) Multiple CacheEventQueue.QProcessor spawned for the same cache region MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Wed, 18 Jan 2017 18:39:33 -0000 [ https://issues.apache.org/jira/browse/JCS-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15828534#comment-15828534 ] Wiktor N commented on JCS-171: ------------------------------ In both cases you have 8 threads processing cache events. In thread pool mode any thread may get event for any cache region (and file). So you can have a situation, that you have two threads trying to process event for one cache. Because of the locking in *DiskCache, you can have only one writing thread. So the other waits. In single queue, the processing thread process the events only for it's own cache. So there is no lock contention and basically, only cache reads may block it from writing the cache. As for why you get OOM in threaded mode - the only guess I have, is that single mode process events so fast, that the queue doesn't grow that much, thus you don't get OOM's. It's interesting, what is the High Water Mark on the queue in the single mode, and then - check - how many events would be dropped, with such boundarySize of thread queue. > Multiple CacheEventQueue.QProcessor spawned for the same cache region > --------------------------------------------------------------------- > > Key: JCS-171 > URL: https://issues.apache.org/jira/browse/JCS-171 > Project: Commons JCS > Issue Type: Bug > Components: Composite Cache > Affects Versions: jcs-2.0 > Reporter: Wiktor N > Assignee: Thomas Vandahl > Fix For: jcs-2.1 > > Attachments: CacheEventQueue.patch, jcs-perf-test.zip > > > I noticed that running on new version of JCS I get multiple CacheEventQueue.QProcessor thread. They spawn from time to time. > I've checked recent changes and changes few things in r1774925 look suspicious: > 1. In previous code we spawned a new thread in synchronized section. This got us a guarantee, that there will be no two threads trying to spawn a new thread in the same time. Maybe some locking is needed around thread creation? > 2. QProcessor uses isAlive() method. But this is defined by Thread.isAlive() while it should probably check for CacheEventQueue.this.isAlive() -- This message was sent by Atlassian JIRA (v6.3.4#6332)