Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 42848 invoked from network); 25 Mar 2011 04:02:13 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 25 Mar 2011 04:02:13 -0000 Received: (qmail 49258 invoked by uid 500); 25 Mar 2011 04:02:12 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 48649 invoked by uid 500); 25 Mar 2011 04:02:10 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 48639 invoked by uid 99); 25 Mar 2011 04:02:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 25 Mar 2011 04:02:10 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.68.5.16] (HELO relay02.pair.com) (209.68.5.16) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 25 Mar 2011 04:02:02 +0000 Received: (qmail 79717 invoked from network); 25 Mar 2011 04:01:40 -0000 Received: from 69.181.72.204 (HELO ?10.0.1.17?) (69.181.72.204) by relay02.pair.com with SMTP; 25 Mar 2011 04:01:40 -0000 X-pair-Authenticated: 69.181.72.204 User-Agent: Microsoft-MacOutlook/14.2.0.101115 Date: Thu, 24 Mar 2011 21:01:36 -0700 Subject: NIFs and pre-R14B Erlang From: Damien Katz To: "dev@couchdb.apache.org" Message-ID: Thread-Topic: NIFs and pre-R14B Erlang Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit After discovering the huge amounts of CPU we spend parsing and encoding JSON, I've been working on getting big num support into Paul Davis's JSON NIF parser so we can include it in CouchDB a get nice performance win. I'm really loving the NIF interface and it's potential to give us performance boosts in CouchDB's CPU intensive areas. With the NIF support, we are going to see a much faster CouchDB. However, the problem is they don't work pre R14B. So to include NIF functions and get the gains, either we need to raise the minimal Erlang version of trunk CouchDB for R14B, OR have both a slow erlang version of the NIF for older version, and fast NIF version for newer versions and a way to load the different versions. Maybe the NIF system has that stuff built in, or maybe we can do it somehow with the build system. Since this is trunk, we'll be raising the minimal version of something like 1.2, not 1.0.3, for example. Anyway, wanted to get that out there and see what people think about how to handle it. -Damien