Return-Path: Delivered-To: apmail-incubator-etch-dev-archive@minotaur.apache.org Received: (qmail 62316 invoked from network); 14 Dec 2010 13:22:04 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 14 Dec 2010 13:22:04 -0000 Received: (qmail 8606 invoked by uid 500); 14 Dec 2010 13:22:04 -0000 Delivered-To: apmail-incubator-etch-dev-archive@incubator.apache.org Received: (qmail 8552 invoked by uid 500); 14 Dec 2010 13:22:02 -0000 Mailing-List: contact etch-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: etch-dev@incubator.apache.org Delivered-To: mailing list etch-dev@incubator.apache.org Received: (qmail 8537 invoked by uid 99); 14 Dec 2010 13:22:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Dec 2010 13:22:02 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of wert1y@mac.com designates 17.148.16.98 as permitted sender) Received: from [17.148.16.98] (HELO asmtpout023.mac.com) (17.148.16.98) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Dec 2010 13:21:54 +0000 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=ISO-8859-1; format=flowed Received: from [10.0.1.204] (rrcs-71-41-6-250.sw.biz.rr.com [71.41.6.250]) by asmtp023.mac.com (Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008; 32bit)) with ESMTPSA id <0LDF00NAI6FW2L70@asmtp023.mac.com> for etch-dev@incubator.apache.org; Tue, 14 Dec 2010 05:21:34 -0800 (PST) X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 ipscore=0 suspectscore=1 phishscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx engine=6.0.2-1010190000 definitions=main-1012140051 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.2.15,1.0.148,0.0.0000 definitions=2010-12-14_08:2010-12-14,2010-12-14,1970-01-01 signatures=0 Message-id: <4D076F57.9060000@mac.com> Date: Tue, 14 Dec 2010 07:21:27 -0600 From: scott comer User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7 To: etch-dev@incubator.apache.org Subject: Re: Big data transfer using etch References: In-reply-to: hi Nicolae! if the data is easily chunked by you, such as a very large byte array, then the standard methods work just fine. for example, to transfer an image or sound, video, etc. you could easily implement an OutputStream to buffer up data and transmit in chunks via etch, reassemble on the other side, etc. the problem comes when you have objects with complicated structure, such as rows from a db table. can you write 100 rows? 1000? depends upon the data in each row. the big message problem has no easy solution, but one that works might be this: create a virtual stream of data by using the etch binary encoding to code your large data structure, then chop the stream up and transmit the chunks, and reassemble on the other side. you have to do the work yourself, but it isn't hard work and could serve as a basis for a real solution for the big message problem. can you say some more about your application? scott out On 12/14/2010 3:57 AM, Nicolae Mihalache wrote: > Hello, > > I'm considering the possibilities to replace CORBA in some application > and I found the etch project. > It looks nice and seem to satisfy all my needs except the Big Message > Problem as described here: > http://incubator.apache.org/etch/big-message-problem.html > > What would be nice is the ability to stream messages, a bit like > @oneway but with guaranteed order and possibility to receive > acknowledge if a message has generated an exception. > The functionality would be somehow similar with standard TCP sockets: > one pushes the data as fast as possible and the write is blocked if > the the network or the reader cannot sustain the throughput. > From the API point of view it will be like: > start transfer > while(not finished): > id=push_data(new_chunk) > end transfer > --> at this point all data is guaranteed to have been delivered > If an exception is caught, the transfer is interrupted and one can get > the id of the message that generated the exception. > > > Strangely enough this functionality useful for file or big data > transfer is missing from all the RPC frameworks I've checked so far. > > It can be emulated somehow with asynchronous calls but one has to > manually tune the number of the back buffers depending on the network > throughput and latency. > > Do you plan to implement such a thing in etch? Or to accept such feature? > > > nicolae