Return-Path: X-Original-To: apmail-cayenne-dev-archive@www.apache.org Delivered-To: apmail-cayenne-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 44A7E917B for ; Thu, 23 Feb 2012 21:05:39 +0000 (UTC) Received: (qmail 82106 invoked by uid 500); 23 Feb 2012 21:05:39 -0000 Delivered-To: apmail-cayenne-dev-archive@cayenne.apache.org Received: (qmail 82057 invoked by uid 500); 23 Feb 2012 21:05:38 -0000 Mailing-List: contact dev-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list dev@cayenne.apache.org Received: (qmail 82049 invoked by uid 99); 23 Feb 2012 21:05:38 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2012 21:05:38 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ben.manes@gmail.com designates 209.85.210.43 as permitted sender) Received: from [209.85.210.43] (HELO mail-pz0-f43.google.com) (209.85.210.43) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2012 21:05:28 +0000 Received: by damc16 with SMTP id c16so2193487dam.16 for ; Thu, 23 Feb 2012 13:05:07 -0800 (PST) Received-SPF: pass (google.com: domain of ben.manes@gmail.com designates 10.68.135.71 as permitted sender) client-ip=10.68.135.71; Authentication-Results: mr.google.com; spf=pass (google.com: domain of ben.manes@gmail.com designates 10.68.135.71 as permitted sender) smtp.mail=ben.manes@gmail.com; dkim=pass header.i=ben.manes@gmail.com Received: from mr.google.com ([10.68.135.71]) by 10.68.135.71 with SMTP id pq7mr8890931pbb.27.1330031107064 (num_hops = 1); Thu, 23 Feb 2012 13:05:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:content-type:subject:date:message-id:cc:to:mime-version :x-mailer; bh=qwITVr2XqszRU43BcjiMbrCsqpUbI/9cG3VcIbS4dc8=; b=hW/9Tlj83+8lggjVA15ctOJJVpMGLirIWI2H0L9AS5fn0TzvhshdEaYk9W4ljSb5Ch KW4BWPLWlrsjSLzku5jG22DUxIQn+pOb6d6eAEHqycqUkW9ZHfJkumJjL4VGc7h1lcU1 54IYqwIewbdkij43hOCngKSBY+l8IokmkXqEM= Received: by 10.68.135.71 with SMTP id pq7mr7284877pbb.27.1330031107018; Thu, 23 Feb 2012 13:05:07 -0800 (PST) Received: from [192.168.1.239] ([157.22.28.35]) by mx.google.com with ESMTPS id d7sm2372561pbh.59.2012.02.23.13.05.04 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 23 Feb 2012 13:05:05 -0800 (PST) From: Benjamin Manes Content-Type: multipart/alternative; boundary="Apple-Mail=_5B11BA4B-9A3F-47FA-BE23-147A8BFE0137" Subject: Re: Non-blocking DataRowStore - need help to test Date: Thu, 23 Feb 2012 13:05:05 -0800 Message-Id: <173121F7-A665-45AD-8AB6-DD99FEE44570@gmail.com> Cc: dev@cayenne.apache.org To: andrus@objectstyle.org Mime-Version: 1.0 (Apple Message framework v1257) X-Mailer: Apple Mail (2.1257) X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail=_5B11BA4B-9A3F-47FA-BE23-147A8BFE0137 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hi, I'm the author of CLHM, brought to you by a friendly Google alert. :) If Cayenne is currently using Guava, then there won't be a dependency = increase. I helped rearchitect MapMaker and design its replacement, = CacheBuilder, which are based on CLHM's algorithms. This is a more = feature-rich implementation with the support of a team at Google = (whereas CLHM is my weekend project). We also fixed my mistake of only = weighing by value, since I hadn't realized how popular memory-based = weighing would be (I was trying to avoid unbounded collections as = values). Technically CLHM provides more concurrency than CacheBuilder by not = relying on segment locks and later using a lock-free ring buffer. These = will be an advantage when it is backed by JDK8's new CHM (see = ConcurrentHashMapV8) or Cliff Click's NBHM. A JSR-166 implementation = will be a marriage of CHMv8, CLHM, and CacheBuilder. CLHM is back-ported to JDK5 on every release, so you'll find the JDK5 = source under /tags. I do development on /trunk assuming JDK6. Feel free to file issues against CLHM (or Guava) if you'd like = enhancements to either. Both are used in large production environments. Cheers, Ben= --Apple-Mail=_5B11BA4B-9A3F-47FA-BE23-147A8BFE0137--