Return-Path: X-Original-To: apmail-directmemory-dev-archive@www.apache.org Delivered-To: apmail-directmemory-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 CAF38D71F for ; Sat, 29 Sep 2012 14:53:37 +0000 (UTC) Received: (qmail 49178 invoked by uid 500); 29 Sep 2012 14:53:37 -0000 Delivered-To: apmail-directmemory-dev-archive@directmemory.apache.org Received: (qmail 49147 invoked by uid 500); 29 Sep 2012 14:53:37 -0000 Mailing-List: contact dev-help@directmemory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directmemory.apache.org Delivered-To: mailing list dev@directmemory.apache.org Received: (qmail 49138 invoked by uid 99); 29 Sep 2012 14:53:37 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 29 Sep 2012 14:53:37 +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 (athena.apache.org: domain of raffaele.p.guidi@gmail.com designates 74.125.82.50 as permitted sender) Received: from [74.125.82.50] (HELO mail-wg0-f50.google.com) (74.125.82.50) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 29 Sep 2012 14:53:33 +0000 Received: by wgi16 with SMTP id 16so657873wgi.19 for ; Sat, 29 Sep 2012 07:53:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=Fj/10NV5eTgW944rQdvQIduNiYQcPFqOlZShbhHN/nw=; b=uXx0VDWlRqGfjLWvmluOvyVcdDYPYYdCzgRSAfADKcuK+3YD/2+ufJzh5MtwCs1LxE UnSznJVIqkmWcZ+QTMMzAVgolAwxWxYSXd0NtRKQpqmtFmJ9f+xdPUcYeNzpVAyUdeub WZDHBiY+N6zYsfQdaB3F8EmugHpkB2rt2x9HcwAP1IfTvpKR+R7nVLpSIHHYu04P+9oe Il9uNH2iXKTigZJ0+UyfKaIM+JRaMBa2VfxVUOJe48Mub/m+yPuPr4lpfsqKzfkAm6TL RsahnjY6XzOWCPhS8Zw7S1H7nVxl6xvU1iJecgctqP2RQLKXXSFruWpoCYujAnjleWeO Da4A== MIME-Version: 1.0 Received: by 10.180.79.2 with SMTP id f2mr4087850wix.2.1348930391505; Sat, 29 Sep 2012 07:53:11 -0700 (PDT) Received: by 10.216.142.141 with HTTP; Sat, 29 Sep 2012 07:53:11 -0700 (PDT) Received: by 10.216.142.141 with HTTP; Sat, 29 Sep 2012 07:53:11 -0700 (PDT) In-Reply-To: References: <5066EC3F.6040602@noctarius.com> <5066F730.9040905@noctarius.com> Date: Sat, 29 Sep 2012 16:53:11 +0200 Message-ID: Subject: Re: Additional Serializer and raw Buffer access From: "Raffaele P. Guidi" To: dev@directmemory.apache.org Content-Type: multipart/alternative; boundary=f46d04428c26cffad204cad85460 X-Virus-Checked: Checked by ClamAV on apache.org --f46d04428c26cffad204cad85460 Content-Type: text/plain; charset=ISO-8859-1 Ok so it's up to noctarius - your move! ;-) Regarding the new unsafe storage: it's an opt-in feature that can be set with the fluent API (and soon through the conference file). Ciao, R Il giorno 29/set/2012 16:45, "Olivier Lamy" ha scritto: > 2012/9/29 Raffaele P. Guidi : > >>> At least for the moment he can provide a patch to be integrated in DM > :-) > > > > Sure, but as lightning is not in any public mvn repo should its code be > > re-published in our svn? Or what? > @Apache we don't care about binaries, only sources are important ! (a > bit theorical for sure but that's it :-) ). > So if Noctarius was the only guy who participate in lightning. He can > just provide a patch we could integrate as a new dm module (note: the > patch must not contains any more copyright and all sources must have > ASF licenses). > > "Copyright 2012 the original author or authors." must be removed. > And BTW package must be changed :-) (com.github is not acceptable @asf > :-) )(@Noctarius are you working for github ? :-) ) > > And having him as a committer will be only a matter of voting (we have > a great chair who take cares of administrative stuff :P ) > > If some others have participated in the project, we must pass tru an > ip clearance mechanism > (http://incubator.apache.org/ip-clearance/index.html) and all > contributors to lightning must provide a cla. (It it's the case I can > help) > > > > >>> perso I'd like we avoid hard dependency on Unsafe as maybe some use > > other jdks :-) > > > > Well, I believe Unsafe is supported by Sun JDK, OpenJDK, IBM JDK and > > JRockit - and I believe that it is more than enough. Also keep in mind > that > > we already have an alternative Unsafe based memory storage - and although > > it's not thoroughly tested for performance it dramaticaly simplifies > code, > > I have great expectations about it. > Me too :-). Yup definitely more simple and faster ! > But we must provide a switch off configuration mechanism if some users > don't want to use that (because Unsafe is just "Unsafe" :-) ) > And sorry I didn't have a look yet at your changes with using Unsafe. > > > > Cheers, > > R > > > > On Sat, Sep 29, 2012 at 4:03 PM, Olivier Lamy wrote: > > > >> 2012/9/29 Raffaele P. Guidi : > >> > What do you think about: > >> > 1) implementing a lightning serialization module > >> > 2) creating a serializer that directly works on a directmemory > provider > >> > ByteBuffer or (maybe better) Unsafe based Pointer? > >> > >> Sounds good (perso I'd like we avoid hard dependency on Unsafe as > >> maybe some use other jdks :-) ) > >> > > >> > Now I see lightning is apache licensed and this is fine but I don't > think > >> > it is published in any public maven repo, am I right? We could find a > way > >> > to deal with this; options vary from publishing lightning to the free > >> > sonatype repo, joining the ASF (which is great anyhow!) and > republishing > >> > lightning code in DirectMemory becoming a commiter (which has to > undergo > >> a > >> > PMC vote). > >> > >> At least for the moment he can provide a patch to be integrated in DM > :-) > >> > >> > > >> > I'd like to hear your and the team feelings on this. > >> > > >> > Thanks, > >> > Raffaele > >> > > >> > On Sat, Sep 29, 2012 at 3:27 PM, Noctarius wrote: > >> > > >> >> Hey Raffaele, > >> >> > >> >> that's quite similar to what I did at work. We're developing Flash > >> >> online games and using a customized AMF serialization. To support > >> >> async writing of the clients event results I added serialization of > >> >> the components / entities to the players zone calculation and stored > >> >> the pre-serialized bytestream directly to the off-heap (using > >> >> direct-ring-cache implementation). When the client requests the > >> >> results (using long-polling) I just write the pre-serialized data to > >> >> the right position to deserialize it by standard ways on Flash side. > >> >> > >> >> So yeah an seriliaztion to off-heap algorithm would be fine. You can > >> >> avoid using byte arrays and minimalize GC. > >> >> > >> >> Cheers > >> >> Chris > >> >> > >> >> Am 29.09.2012 15:02, schrieb Raffaele P. Guidi: > >> >> > Nice to hear back from you! Yes, I was thinking about creating a > new > >> >> memory > >> >> > storage implementation using Unsafe (and I did it, recently) and > >> also, as > >> >> > DirectMemory relies heavily on serialization (and supports many of > >> them, > >> >> > protostuff, protobuf, msgpack and of course standard > serialization), > >> >> about > >> >> > creating a simple embedded serializer leveraging the same > techniques > >> you > >> >> > used (Unsafe and bytecode generation). > >> >> > The idea with embedding is avoiding to serialize in a byte array > and > >> then > >> >> > moving the byte array to off-heap memory (via Unsafe or > ByteBuffers), > >> and > >> >> > serializing directly into a "managed" off-heap buffer, thus further > >> >> > optimizing heap utilization (less GC). > >> >> > > >> >> > What do you think about it? Does it make any sense to you? > >> >> > > >> >> > Ciao, > >> >> > R > >> >> > > >> >> > On Sat, Sep 29, 2012 at 2:40 PM, Noctarius > wrote: > >> >> > > >> >> >> Hey guys, > >> >> >> > >> >> >> Raffaele found out about a project of mine (Lightning) a few weeks > >> >> >> ago. Lightning is a heavy Unsafe and Bytecode generation using > >> >> >> Serializer implementation. He told me that he was interested in > >> >> >> adding something similar to DirectMemory and I would be glad to > help > >> >> >> out in this. > >> >> >> > >> >> >> Another project I started a few days ago, since it was needed for > >> >> >> work is DirectRingCache. The name not really meets to actual > >> >> >> implementation since it's not yet a ring buffer using cache. I > used > >> >> >> this for a pre-serialization simple bytestream cache with > >> >> >> self-growing buffers. It could be nice to have DirectMemory having > >> >> >> raw "buffers" to write to or to read from. > >> >> >> > >> >> >> Here are the links from the projects: > >> >> >> https://github.com/noctarius/Lightning > >> >> >> https://github.com/noctarius/direct-ring-cache > >> >> >> > >> >> >> It would be nice to help out since I really like the idea of > >> >> >> DirectMemory and since direct-ring-cache is some kind of > reinventing > >> >> >> the wheel. > >> >> >> > >> >> >> Cheers > >> >> >> Noctarius (Chris) > >> >> >> > >> >> > > >> >> > >> >> > >> >> > >> > >> > >> > >> -- > >> Olivier Lamy > >> Talend: http://coders.talend.com > >> http://twitter.com/olamy | http://linkedin.com/in/olamy > >> > > > > -- > Olivier Lamy > Talend: http://coders.talend.com > http://twitter.com/olamy | http://linkedin.com/in/olamy > --f46d04428c26cffad204cad85460--