Hi Dave CLFS is neat and probably blisteringly fast on Windows.
I'm not aware of the current design of the C++ Qpid storage subsystem and how much smarts it requires (in particular does it need/supply indices for selectors on persistent messages queued to disk?). If its just a linear log then using CLFS would be neat in the Windows build; but something else should be swapped in if it's not there and being built somewhere else. That something else must have these two characteristics: 1) Be ASL compatible so it can ship with the source distro and users have a simple out-of-box experience 2) Be very reliable SQLlite is one of the few things that ticks both boxes on C/C++. Its TX handling looks suitably paranoid, and a simple message table with appended inserts could serve as a functional log solution. So I suggest that the storage subsystem defaults to SQLlite by default and picks up any available "better" option during the build process - which would be CLFS on Windows, since its part of the OS and BDB/TokyoCabinet/QDBM/SQLserver/whatever where available. Obviously I'm not looked at this code (shame on me), my desire is only for an easy build of pure ASF distro that works reliably -- i.e. idiot proof. Thoughts? John -----Original Message----- From: David Ingham [mailto:[email protected]] Sent: 12 June 2009 05:25 To: [email protected] Subject: RE: Persistence FAQ for Java Hey John, As Steve mentioned we're working to implement a Windows persistence provider for Qpid/C++. We want this to be based on freely available components that won't require purchasing any proprietary software (over and above Windows itself). Our current thoughts are to build a hybrid store that uses the embeddable SQL Compact Edition for the configuration data and the Common Log File System (CLFS) [1] for the message store. We plan to make this available under the Apache License. For the Windows binary distribution I'd very much like to have a single installer that will install all the necessary components for a full-featured broker. Dave. [1] http://msdn.microsoft.com/en-us/library/bb986747(VS.85).aspx -----Original Message----- From: John O'Hara [mailto:[email protected]] Sent: Thursday, June 11, 2009 6:02 PM To: [email protected] Subject: RE: Persistence FAQ for Java Steve, Martin, It would be great to get fully competent ASL licensed components throughout -- our out of box experience is lacking because of the "some assembly required" aspects of getting a production ready persistent broker set up. For a DB implementation for C++ that is ASL compatible, I think SQLite (public domain) is probably the only option. It's performance won't be stellar, but it could be very good and its documented robustness characteristics seem good too. Properly abstracted, it would also allow the core of a pluggable SQL store with SQLite as the default..... Cheers John At 15:39 11/06/2009, you wrote: >Hi Martin, > > > Really we should just be sorting out an ASL store. The Java Broker's > > Derby store is good but IIRC still has a couple of bugs that could >do > > with addressing. > > > > I've got some time to do some refactoring based on the designs on > > Message Storage that are on the wiki so hopefully things will >improve > > in this area soon. > >Ok - I'm interested in your efforts here. > > > Are there any plans from the C++ side to make an ASL compatible > > persistent store? > >I have funding from Microsoft to do a persistence store for C++ on >Windows. I'm not 100% certain of the licensing, but I'll check. > >-Steve > > >--------------------------------------------------------------------- >Apache Qpid - AMQP Messaging Implementation >Project: http://qpid.apache.org >Use/Interact: mailto:[email protected] --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected] This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email. --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
