Return-Path: X-Original-To: apmail-jackrabbit-oak-dev-archive@minotaur.apache.org Delivered-To: apmail-jackrabbit-oak-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 384A3E543 for ; Tue, 29 Jan 2013 12:46:07 +0000 (UTC) Received: (qmail 25104 invoked by uid 500); 29 Jan 2013 12:46:07 -0000 Delivered-To: apmail-jackrabbit-oak-dev-archive@jackrabbit.apache.org Received: (qmail 24968 invoked by uid 500); 29 Jan 2013 12:46:05 -0000 Mailing-List: contact oak-dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: oak-dev@jackrabbit.apache.org Delivered-To: mailing list oak-dev@jackrabbit.apache.org Received: (qmail 24940 invoked by uid 99); 29 Jan 2013 12:46:05 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Jan 2013 12:46:05 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of jukka.zitting@gmail.com designates 209.85.214.169 as permitted sender) Received: from [209.85.214.169] (HELO mail-ob0-f169.google.com) (209.85.214.169) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Jan 2013 12:45:57 +0000 Received: by mail-ob0-f169.google.com with SMTP id ta14so360330obb.14 for ; Tue, 29 Jan 2013 04:45:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:content-type:content-transfer-encoding; bh=oPYaT1ngoboB74vbJDgl3qemtFLYdsg0OtnR8eK3RB0=; b=Fe2UqdvHyJR+qkgg8Bc2+wrV7Bn7SXd5T+QsVC1BUo+1Yn4QdtWbUW/PW77xUgmP0k zux4FTSP7gzfFfFPuUvZEzt9STuEAJMpgEiBparCHW/9/6/F42zHXf7sA45rQNWGXuAl VVxPUkzxkwAV3ZMESsDsfskR8rf+yR5k8fkrOHVrGVMQ28AuwAY3MVfwC3VqCUQg1i+Y rvsbcnp9VLvHnoCPa1hRcSH7EG4a6KrEmphap0me5lMyLH3vrriG6cdL226owsNNrIhQ MuLvIJHhmRMzMyZpDTPmpjnqo+iexfxcm4kDJsVFn40ztclWok1T5I5Q4zgIIWTliY5O oDWQ== X-Received: by 10.182.14.39 with SMTP id m7mr553455obc.96.1359463536636; Tue, 29 Jan 2013 04:45:36 -0800 (PST) MIME-Version: 1.0 Received: by 10.182.96.134 with HTTP; Tue, 29 Jan 2013 04:45:16 -0800 (PST) In-Reply-To: <5107B5E1.8070900@apache.org> References: <5107B5E1.8070900@apache.org> From: Jukka Zitting Date: Tue, 29 Jan 2013 14:45:16 +0200 Message-ID: Subject: Re: MongoMK^2 design proposal To: Oak devs Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org Hi, On Tue, Jan 29, 2013 at 1:43 PM, Michael D=FCrig wrote= : > Maybe we can even pick up an earlier idea and use the node type informati= on > (i.e. template records here) to optimise how nodes are stored. That would clearly be useful but I'm a bit hesitant about mixing higher level concerns like node types with the underlying storage model, especially since node types are generally mutable (even the built-in ones changed slightly between JCR 1.0 to 2.0). The template model as described is a more data-driven approach to the same problem. It doesn't reach the level of optimization that could be achieved by making the code understand node types, but on the other hand it deals very well with unstructured nodes that have no hard schema but still follow common patterns. The inspiration for the template idea comes from the way modern JavaScript runtimes generate and use hidden classes for otherwise untyped objects. BR, Jukka Zitting