[ 
https://issues.apache.org/jira/browse/QPID-2017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Steve Huston updated QPID-2017:
-------------------------------

    Attachment: store.tar
                store-new.patch

I've attached two new files related to this:

- store.tar: The store files I'm proposing to add. This has two levels:
                   store - the portable store code
                   ms-sql - the code particular to the Microsoft SQL Server 
storage provider

- store-new.patch: Patch for the existing broker to allow the above to work. 
There are a couple of areas here:
      - Extend the plugin loading to sense the module file suffix for the 
platform (.so vs .dll)
      - Remove the init(Options*) method from the MessageStore interface. The 
new store::MessageStorePlugin class (in the portable store layer) takes are of 
initialization at earlyInitialize - the init() method was never called anywhere 
in the broker except from the store anyway.

I'd like to be sure this is included in 0.6. If you have feedback on this, 
please let me know ASAP as I'd like to get this checked in this week.

> Files for Async Store interface layer (NOTE, read carefully - license issues)
> -----------------------------------------------------------------------------
>
>                 Key: QPID-2017
>                 URL: https://issues.apache.org/jira/browse/QPID-2017
>             Project: Qpid
>          Issue Type: Task
>          Components: C++ Broker
>            Reporter: Kim van der Riet
>            Assignee: Steve Huston
>         Attachments: BindingDbt.cpp, BindingDbt.h, BufferValue.cpp, 
> BufferValue.h, IdDbt.cpp, IdDbt.h, IdSequence.cpp, IdSequence.h, 
> JournalImpl.h, MessageStoreImpl.cpp, MessageStoreImpl.h, 
> PreparedTransaction.cpp, PreparedTransaction.h, store-new.patch, store.tar, 
> StoreException.h, StorePlugin.cpp, TxnCtxt.cpp, TxnCtxt.h
>
>
> These are the interface layer files for the C++ async store. They are 
> encumbered with BDB, which is used to save the broker state. For this reason, 
> these files are LGPL - and may not be checked in to subversion until BDB is 
> replaced with an appropriate ASF-compatible replacement. Then these files may 
> be re-licensed with an ASF license.
> The StorePlugin.cpp file contains the actual plugin code; this in turn 
> creates an instance of MessageStoreImpl, subclassed from 
> qpid::broker::MessageStore.
> MessageStoreImpl: This class is the centre of the async store and is 
> responsible for coordinating recovery, initialization, transactions (both 
> local and distributed), flow-to-disk loading and unloading and persisting 
> broker state (queues, bindings etc.) in BDB. This class is in need of a 
> tidy-up and refactorization - it has become rather large and unwieldy.
> JournalImpl: This is the implementation of the async store. The header file 
> is provided for context, as this is used throughout the MessageStoreImpl 
> class.
> DataTokenImpl: This is also a part of the async store implementation: an 
> instance of this class tracks each stored message through the asyncronous 
> write cycle, and can be used to track its status and find information such as 
> the record ID (rid) in the store.
> TxnCtxt: This class is the transaction context; an instance of this class is 
> created for each transaction.
> The remaining files are for various data structures which are reasonably 
> straight forward to understand.
> ASF legal recommends cleaning the files, then re-attaching to the JIRA 
> without BDB code & with ASL headers before then committing to svn.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to