You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Steve Huston (JIRA)" <qp...@incubator.apache.org> on 2009/11/20 01:44:39 UTC

[jira] Created: (QPID-2211) API change to qpid::broker::MessageStore not portable

API change to qpid::broker::MessageStore not portable
-----------------------------------------------------

                 Key: QPID-2211
                 URL: https://issues.apache.org/jira/browse/QPID-2211
             Project: Qpid
          Issue Type: Bug
          Components: C++ Broker
    Affects Versions: 0.6
            Reporter: Steve Huston
            Assignee: Alan Conway


The following pure virtual function was added to qpid::broker::MessageStore:

virtual std::string getStoreDir() const = 0;

Two problems as a result:

1. No corresponding change was made to the qpid/store/MessageStorePlugin.cpp, which is the portable persistence plug-in layer (or, that's it's purpose, anyway). This broker the Windows build.

2. Not all message stores have a store dir - this is (at this point, anyway) an option only for the Red Hat store.

Could this addition be explained please? Also, if it needs to stay as is, please fix the Windows build.


-- 
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:dev-subscribe@qpid.apache.org


RE: [jira] Created: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by Steve Huston <sh...@riverace.com>.
Should we move this discussion to the jira?

-Steve

> -----Original Message-----
> From: Carl Trieloff [mailto:cctrieloff@redhat.com] 
> Sent: Friday, November 20, 2009 10:45 AM
> To: Alan Conway
> Cc: dev@qpid.apache.org; qpid-dev@incubator.apache.org
> Subject: Re: [jira] Created: (QPID-2211) API change to 
> qpid::broker::MessageStore not portable
> 
> 
> Alan Conway wrote:
> > On 11/19/2009 08:17 PM, Carl Trieloff wrote:
> >> Steve Huston (JIRA) wrote:
> >>> API change to qpid::broker::MessageStore not portable
> >>> -----------------------------------------------------
> >>>
> >>> Key: QPID-2211
> >>> URL: https://issues.apache.org/jira/browse/QPID-2211
> >>> Project: Qpid
> >>> Issue Type: Bug
> >>> Components: C++ Broker
> >>> Affects Versions: 0.6
> >>> Reporter: Steve Huston
> >>> Assignee: Alan Conway
> >>>
> >>>
> >>> The following pure virtual function was added to
> >>> qpid::broker::MessageStore:
> >>>
> >>> virtual std::string getStoreDir() const = 0;
> >>>
> >>> Two problems as a result:
> >>>
> >>> 1. No corresponding change was made to the
> >>> qpid/store/MessageStorePlugin.cpp, which is the portable 
> persistence
> >>> plug-in layer (or, that's it's purpose, anyway). This broker the
> >>> Windows build.
> >>>
> >>> 2. Not all message stores have a store dir - this is (at 
> this point,
> >>> anyway) an option only for the Red Hat store.
> >>>
> >>> Could this addition be explained please? Also, if it 
> needs to stay as
> >>> is, please fix the Windows build.
> >>>
> >>>
> >>
> >>
> >> Coping Alan, I expect he just wants to write a marker for 
> cluster auto
> >> restart for crash recovery... I expect he could just as 
> well use data
> >> dir and create a generic file there maybe.
> >>
> >
> > The cluster needs to annotate the store with some 
> additional info: a 
> > cluster-wide store identifier and also a marker to identify stores

> > that were shut down by the same management event.
> >
> > I can move this to data_dir, although logically it belongs with
the 
> > store so it would be nice to keep it together if the store is
moved.
> >
> > For now I will revert the change and use data_dir, but it would be

> > good to come up with a portable way to store 
> plugin-specific state in 
> > a store. Is that feasible at all with the kinds of store 
> you envision? 
> > The cluster's requirements so far are modest (2 UUIDs) but 
> in general 
> > it seems like plugin's may have persistent state that should be 
> > associated with the store.
> >
> 
> Why could the store not provide a dir for such things even if 
> it backed 
> to a DB for example?
> 
> Carl.
> 
> 
> 
>
---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:dev-subscribe@qpid.apache.org
> 
> 


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


Re: [jira] Created: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by Carl Trieloff <cc...@redhat.com>.
Alan Conway wrote:
> On 11/19/2009 08:17 PM, Carl Trieloff wrote:
>> Steve Huston (JIRA) wrote:
>>> API change to qpid::broker::MessageStore not portable
>>> -----------------------------------------------------
>>>
>>> Key: QPID-2211
>>> URL: https://issues.apache.org/jira/browse/QPID-2211
>>> Project: Qpid
>>> Issue Type: Bug
>>> Components: C++ Broker
>>> Affects Versions: 0.6
>>> Reporter: Steve Huston
>>> Assignee: Alan Conway
>>>
>>>
>>> The following pure virtual function was added to
>>> qpid::broker::MessageStore:
>>>
>>> virtual std::string getStoreDir() const = 0;
>>>
>>> Two problems as a result:
>>>
>>> 1. No corresponding change was made to the
>>> qpid/store/MessageStorePlugin.cpp, which is the portable persistence
>>> plug-in layer (or, that's it's purpose, anyway). This broker the
>>> Windows build.
>>>
>>> 2. Not all message stores have a store dir - this is (at this point,
>>> anyway) an option only for the Red Hat store.
>>>
>>> Could this addition be explained please? Also, if it needs to stay as
>>> is, please fix the Windows build.
>>>
>>>
>>
>>
>> Coping Alan, I expect he just wants to write a marker for cluster auto
>> restart for crash recovery... I expect he could just as well use data
>> dir and create a generic file there maybe.
>>
>
> The cluster needs to annotate the store with some additional info: a 
> cluster-wide store identifier and also a marker to identify stores 
> that were shut down by the same management event.
>
> I can move this to data_dir, although logically it belongs with the 
> store so it would be nice to keep it together if the store is moved.
>
> For now I will revert the change and use data_dir, but it would be 
> good to come up with a portable way to store plugin-specific state in 
> a store. Is that feasible at all with the kinds of store you envision? 
> The cluster's requirements so far are modest (2 UUIDs) but in general 
> it seems like plugin's may have persistent state that should be 
> associated with the store.
>

Why could the store not provide a dir for such things even if it backed 
to a DB for example?

Carl.



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


Re: [jira] Created: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by Alan Conway <ac...@redhat.com>.
On 11/19/2009 08:17 PM, Carl Trieloff wrote:
> Steve Huston (JIRA) wrote:
>> API change to qpid::broker::MessageStore not portable
>> -----------------------------------------------------
>>
>> Key: QPID-2211
>> URL: https://issues.apache.org/jira/browse/QPID-2211
>> Project: Qpid
>> Issue Type: Bug
>> Components: C++ Broker
>> Affects Versions: 0.6
>> Reporter: Steve Huston
>> Assignee: Alan Conway
>>
>>
>> The following pure virtual function was added to
>> qpid::broker::MessageStore:
>>
>> virtual std::string getStoreDir() const = 0;
>>
>> Two problems as a result:
>>
>> 1. No corresponding change was made to the
>> qpid/store/MessageStorePlugin.cpp, which is the portable persistence
>> plug-in layer (or, that's it's purpose, anyway). This broker the
>> Windows build.
>>
>> 2. Not all message stores have a store dir - this is (at this point,
>> anyway) an option only for the Red Hat store.
>>
>> Could this addition be explained please? Also, if it needs to stay as
>> is, please fix the Windows build.
>>
>>
>
>
> Coping Alan, I expect he just wants to write a marker for cluster auto
> restart for crash recovery... I expect he could just as well use data
> dir and create a generic file there maybe.
>

The cluster needs to annotate the store with some additional info: a 
cluster-wide store identifier and also a marker to identify stores that were 
shut down by the same management event.

I can move this to data_dir, although logically it belongs with the store so it 
would be nice to keep it together if the store is moved.

For now I will revert the change and use data_dir, but it would be good to come 
up with a portable way to store plugin-specific state in a store. Is that 
feasible at all with the kinds of store you envision? The cluster's requirements 
so far are modest (2 UUIDs) but in general it seems like plugin's may have 
persistent state that should be associated with the store.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


Re: [jira] Created: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by Carl Trieloff <cc...@redhat.com>.
Steve Huston (JIRA) wrote:
> API change to qpid::broker::MessageStore not portable
> -----------------------------------------------------
>
>                  Key: QPID-2211
>                  URL: https://issues.apache.org/jira/browse/QPID-2211
>              Project: Qpid
>           Issue Type: Bug
>           Components: C++ Broker
>     Affects Versions: 0.6
>             Reporter: Steve Huston
>             Assignee: Alan Conway
>
>
> The following pure virtual function was added to qpid::broker::MessageStore:
>
> virtual std::string getStoreDir() const = 0;
>
> Two problems as a result:
>
> 1. No corresponding change was made to the qpid/store/MessageStorePlugin.cpp, which is the portable persistence plug-in layer (or, that's it's purpose, anyway). This broker the Windows build.
>
> 2. Not all message stores have a store dir - this is (at this point, anyway) an option only for the Red Hat store.
>
> Could this addition be explained please? Also, if it needs to stay as is, please fix the Windows build.
>
>
>   


Coping Alan, I expect he just wants to write a marker for cluster auto 
restart for crash recovery... I expect he could just as well use data 
dir and create a generic file there maybe.

Alan would need to comment.

Carl.



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by "Steve Huston (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-2211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12780355#action_12780355 ] 

Steve Huston commented on QPID-2211:
------------------------------------

Also, the unit tests fail to link, getting an unsat for NullMessageStore::getStoreDir(). Not exported, maybe?

> API change to qpid::broker::MessageStore not portable
> -----------------------------------------------------
>
>                 Key: QPID-2211
>                 URL: https://issues.apache.org/jira/browse/QPID-2211
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>            Reporter: Steve Huston
>            Assignee: Alan Conway
>
> The following pure virtual function was added to qpid::broker::MessageStore:
> virtual std::string getStoreDir() const = 0;
> Two problems as a result:
> 1. No corresponding change was made to the qpid/store/MessageStorePlugin.cpp, which is the portable persistence plug-in layer (or, that's it's purpose, anyway). This broker the Windows build.
> 2. Not all message stores have a store dir - this is (at this point, anyway) an option only for the Red Hat store.
> Could this addition be explained please? Also, if it needs to stay as is, please fix the Windows build.

-- 
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:dev-subscribe@qpid.apache.org


[jira] Resolved: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by "Alan Conway (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alan Conway resolved QPID-2211.
-------------------------------

    Resolution: Not A Problem

I'm marking this resolved, there's actually no need to get access to the store directory. It works fine just using the brokers data-dir.

There's still an open question about cluster-store collaboration in QPID-2220

> API change to qpid::broker::MessageStore not portable
> -----------------------------------------------------
>
>                 Key: QPID-2211
>                 URL: https://issues.apache.org/jira/browse/QPID-2211
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>            Reporter: Steve Huston
>            Assignee: Alan Conway
>
> The following pure virtual function was added to qpid::broker::MessageStore:
> virtual std::string getStoreDir() const = 0;
> Two problems as a result:
> 1. No corresponding change was made to the qpid/store/MessageStorePlugin.cpp, which is the portable persistence plug-in layer (or, that's it's purpose, anyway). This broker the Windows build.
> 2. Not all message stores have a store dir - this is (at this point, anyway) an option only for the Red Hat store.
> Could this addition be explained please? Also, if it needs to stay as is, please fix the Windows build.

-- 
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:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by "Steve Huston (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-2211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12780973#action_12780973 ] 

Steve Huston commented on QPID-2211:
------------------------------------

How general is the requirement? Is it too limiting to add methods to store/retrieve the cluster UUIDs?


> API change to qpid::broker::MessageStore not portable
> -----------------------------------------------------
>
>                 Key: QPID-2211
>                 URL: https://issues.apache.org/jira/browse/QPID-2211
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>            Reporter: Steve Huston
>            Assignee: Alan Conway
>
> The following pure virtual function was added to qpid::broker::MessageStore:
> virtual std::string getStoreDir() const = 0;
> Two problems as a result:
> 1. No corresponding change was made to the qpid/store/MessageStorePlugin.cpp, which is the portable persistence plug-in layer (or, that's it's purpose, anyway). This broker the Windows build.
> 2. Not all message stores have a store dir - this is (at this point, anyway) an option only for the Red Hat store.
> Could this addition be explained please? Also, if it needs to stay as is, please fix the Windows build.

-- 
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:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-2211) API change to qpid::broker::MessageStore not portable

Posted by "Alan Conway (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-2211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12780614#action_12780614 ] 

Alan Conway commented on QPID-2211:
-----------------------------------

I reverted the offending commit in r882623, lets find a better solution.

The immediate requirement from the cluster is to associate 2 UUIDs with the store for cluster recovery purposes. While the cluster could store these somewhere else in brokers data-dir, they really are tied to the store and logically belong with it, e.g. if it is moved. It seems like there's a more general requirement that plugins be able to store plugin-specific state in/with a store.  A directory seems like a natural container for such data, but if some stores can't provide a directory, what would be a good API for this?





> API change to qpid::broker::MessageStore not portable
> -----------------------------------------------------
>
>                 Key: QPID-2211
>                 URL: https://issues.apache.org/jira/browse/QPID-2211
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>            Reporter: Steve Huston
>            Assignee: Alan Conway
>
> The following pure virtual function was added to qpid::broker::MessageStore:
> virtual std::string getStoreDir() const = 0;
> Two problems as a result:
> 1. No corresponding change was made to the qpid/store/MessageStorePlugin.cpp, which is the portable persistence plug-in layer (or, that's it's purpose, anyway). This broker the Windows build.
> 2. Not all message stores have a store dir - this is (at this point, anyway) an option only for the Red Hat store.
> Could this addition be explained please? Also, if it needs to stay as is, please fix the Windows build.

-- 
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:dev-subscribe@qpid.apache.org