Merge lp://qastaging/~jaypipes/drizzle/publisher into lp://qastaging/~drizzle-trunk/drizzle/development

Proposed by Jay Pipes
Status: Rejected
Rejected by: Monty Taylor
Proposed branch: lp://qastaging/~jaypipes/drizzle/publisher
Merge into: lp://qastaging/~drizzle-trunk/drizzle/development
Diff against target: 2657 lines
To merge this branch: bzr merge lp://qastaging/~jaypipes/drizzle/publisher
Reviewer Review Type Date Requested Status
Brian Aker Disapprove
Eric Day (community) Approve
Drizzle Developers Pending
Review via email: mp+23785@code.qastaging.launchpad.net

Description of the change

First patchset adding basic publisher support to the
replication services component.

A Publisher tracks what transactions have been applied to a channel on
a node and provides an interface for querying for this
information. Later, the publisher will act as a specialized
server which connects to a Subscriber plugin.

Adds a new replication_publishers data_dictionary view,
mostly used in testing to see if publisher registration
was correct.

Adds a new replication_publisher_channels data_dictionary view, again
mostly used in testing registration.

To post a comment you must log in.
Revision history for this message
Jay Pipes (jaypipes) wrote :

Taking into Work In Progress. Eric and I discussed moving the replication.proto into the transaction log module and not requiring publishers and subscribers to keep a GPB manifest if they didn't want to. This makes sense. The GPB manifest is implementation, not interface.

Revision history for this message
Jay Pipes (jaypipes) wrote :

Moves the replication.proto file into /plugin/transaction_log/ since it is implementation-dependent stuff.

1440. By Jay Pipes <jpipes@serialcoder>

Publisher manifest file now written to disk properly (was using incorrect ByteSize() instead of std::string::size(). Also, manifest is read on startup

1441. By Jay Pipes <jpipes@serialcoder>

Adds a custom test suite and framework for testing the replication pieces. The first test case tests basic functionality of creating and writing a serialized publisher manifest file.

1442. By Jay Pipes <jpipes@serialcoder>

Connect replication test suite into main transaction_log test suite

1443. By Jay Pipes <jpipes@serialcoder>

Adds test cases to replication test suite for checking
startup when a corrupted manifest file is present, as
well as a good publisher manifest is present. Changes
the TransactionLogPublisher constructor to throw a proper
error and disable the publisher plugin properly.

Revision history for this message
Eric Day (eday) wrote :

Great work! Plugin point for Publisher looks sane, as for locking in the transaction log publisher plugin (your comment on using a scoreboard method), it depends how expensive the calls are in the lock. We might just want to break it down to one lock/channel.

Revision history for this message
Eric Day (eday) :
review: Approve
1444. By Jay Pipes <jpipes@serialcoder>

Fix valgrind issue due to not initializing the publisher's mutex before calling readManifestFile()

Revision history for this message
Jay Pipes (jaypipes) wrote :

FYI, saw the valgrind error and have pushed a fix.

1445. By Jay Pipes <jpipes@serialcoder>

Merge trunk

Revision history for this message
Brian Aker (brianaker) :
review: Needs Information
Revision history for this message
Jay Pipes (jaypipes) wrote :

Heya, what information do you need on this one? Related to the
testing in Python or something else? Happy to answer, just let me
know...

On Thu, May 27, 2010 at 1:07 AM, Brian Aker <email address hidden> wrote:
> Review: Needs Information
>
> --
> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
> You are the owner of lp:~jaypipes/drizzle/publisher.
>

Revision history for this message
Brian Aker (brianaker) wrote :

Hi!

I marked it because of the python testing. PatrickC offered to look at extend test-run.pl so solve this issue so I am currently waiting to hear from him about it.

Cheers,
 -Brian

On May 27, 2010, at 8:42 AM, Jay Pipes wrote:

> Heya, what information do you need on this one? Related to the
> testing in Python or something else? Happy to answer, just let me
> know...
>
> On Thu, May 27, 2010 at 1:07 AM, Brian Aker <email address hidden> wrote:
>> Review: Needs Information
>>
>> --
>> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
>> You are the owner of lp:~jaypipes/drizzle/publisher.
>>
> --
> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
> You are reviewing the proposed merge of lp:~jaypipes/drizzle/publisher into lp:drizzle.

Revision history for this message
Patrick Crews (patrick-crews) wrote :

Expect to have some word on this next week. I've been a bit occupied with
some other tasks this week. I'll likely be in touch with you then, Jay. My
apologies for the hold-up on the review.

On Fri, May 28, 2010 at 6:34 PM, Brian Aker <email address hidden> wrote:

> Hi!
>
> I marked it because of the python testing. PatrickC offered to look at
> extend test-run.pl so solve this issue so I am currently waiting to hear
> from him about it.
>
> Cheers,
> -Brian
>
> On May 27, 2010, at 8:42 AM, Jay Pipes wrote:
>
> > Heya, what information do you need on this one? Related to the
> > testing in Python or something else? Happy to answer, just let me
> > know...
> >
> > On Thu, May 27, 2010 at 1:07 AM, Brian Aker <email address hidden> wrote:
> >> Review: Needs Information
> >>
> >> --
> >> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
> >> You are the owner of lp:~jaypipes/drizzle/publisher.
> >>
> > --
> > https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
> > You are reviewing the proposed merge of lp:~jaypipes/drizzle/publisher
> into lp:drizzle.
>
> --
> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
> Your team Drizzle-developers is requested to review the proposed merge of
> lp:~jaypipes/drizzle/publisher into lp:drizzle.
>

Revision history for this message
Jay Pipes (jaypipes) wrote :

No worries at all, Patrick.

On Fri, May 28, 2010 at 6:39 PM, Patrick Crews <email address hidden> wrote:
> Expect to have some word on this next week.  I've been a bit occupied with
> some other tasks this week.  I'll likely be in touch with you then, Jay.  My
> apologies for the hold-up on the review.
>
> On Fri, May 28, 2010 at 6:34 PM, Brian Aker <email address hidden> wrote:
>
>> Hi!
>>
>> I marked it because of the python testing. PatrickC offered to look at
>> extend test-run.pl so solve this issue so I am currently waiting to hear
>> from him about it.
>>
>> Cheers,
>>        -Brian
>>
>> On May 27, 2010, at 8:42 AM, Jay Pipes wrote:
>>
>> > Heya, what information do you need on this one?  Related to the
>> > testing in Python or something else?  Happy to answer, just let me
>> > know...
>> >
>> > On Thu, May 27, 2010 at 1:07 AM, Brian Aker <email address hidden> wrote:
>> >> Review: Needs Information
>> >>
>> >> --
>> >> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
>> >> You are the owner of lp:~jaypipes/drizzle/publisher.
>> >>
>> > --
>> > https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
>> > You are reviewing the proposed merge of lp:~jaypipes/drizzle/publisher
>> into lp:drizzle.
>>
>> --
>> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
>> Your team Drizzle-developers is requested to review the proposed merge of
>> lp:~jaypipes/drizzle/publisher into lp:drizzle.
>>
>
> --
> https://code.launchpad.net/~jaypipes/drizzle/publisher/+merge/23785
> You are the owner of lp:~jaypipes/drizzle/publisher.
>

Revision history for this message
Stewart Smith (stewart) wrote :

On Fri, 28 May 2010 22:39:30 -0000, Patrick Crews <email address hidden> wrote:
> Expect to have some word on this next week. I've been a bit occupied with
> some other tasks this week. I'll likely be in touch with you then, Jay. My
> apologies for the hold-up on the review.

We should really port mtr2 back in before doing lots of modifications.

--
Stewart Smith

Revision history for this message
Patrick Crews (patrick-crews) wrote :

After looking at the tests here, I have to say that I'm in favor of leaving the Python testing as-is unless there is some really urgent need to not have it.

My reasoning:
* protoc doesn't produce perl code. We use the python-generated code to interact with the manifest and get useful, test-related data.
* The current python code is awfully clean and assertion based, which can fill in gaps that test-run doesn't cover effectively. It's also well-developed / not-half-baked and we can expand the Python test without a lot of fuss.

If the use of python is a deal-breaker, we probably could do something to make it work, but I fear that the effort involved would not be worth the pay-off (at least at present).

I will be looking at - https://bugs.launchpad.net/drizzle/+bug/570948 - bad command-line options hang test cases so that we can improve test-run, but it's just my feeling that we can move things forward by keeping the current test(s)

Revision history for this message
Stewart Smith (stewart) wrote :

On Thu, 03 Jun 2010 16:03:26 -0000, Patrick Crews <email address hidden> wrote:
> If the use of python is a deal-breaker, we probably could do something to make it work, but I fear that the effort involved would not be worth the pay-off (at least at present).

We rely on python for parts of the build system anyway, so it's not a
show stopper (if it runs on the pre-historic versions that solaris ship with)

--
Stewart Smith

Revision history for this message
Jay Pipes (jaypipes) wrote :

Not sure why we even are discussing this. Brian's made a decision and that's apparently all that matters.

Revision history for this message
Brian Aker (brianaker) wrote :

Hi!

Until it fits under the test framework we have it won't be mergable. As pointed out in previous comments "and we can expand the Python test without a lot of fuss" is exactly the issue. Once we have two systems we end up with a tower babble. So until we can test with the current framework this patch is non-starter.

Cheers,
  -Brian

review: Disapprove

Unmerged revisions

1445. By Jay Pipes <jpipes@serialcoder>

Merge trunk

1444. By Jay Pipes <jpipes@serialcoder>

Fix valgrind issue due to not initializing the publisher's mutex before calling readManifestFile()

1443. By Jay Pipes <jpipes@serialcoder>

Adds test cases to replication test suite for checking
startup when a corrupted manifest file is present, as
well as a good publisher manifest is present. Changes
the TransactionLogPublisher constructor to throw a proper
error and disable the publisher plugin properly.

1442. By Jay Pipes <jpipes@serialcoder>

Connect replication test suite into main transaction_log test suite

1441. By Jay Pipes <jpipes@serialcoder>

Adds a custom test suite and framework for testing the replication pieces. The first test case tests basic functionality of creating and writing a serialized publisher manifest file.

1440. By Jay Pipes <jpipes@serialcoder>

Publisher manifest file now written to disk properly (was using incorrect ByteSize() instead of std::string::size(). Also, manifest is read on startup

1439. By Jay Pipes <jpipes@serialcoder>

Merge Monty build fixes

1438. By Jay Pipes <jpipes@serialcoder>

remove references to /drizzled/message/replication.pb.h

1437. By Jay Pipes <jpipes@serialcoder>

Moves replication.proto out of /drizzled/message and into /plugin/transaction_log/ since it is implementation-specific.

1436. By Jay Pipes <jpipes@serialcoder>

Remove unused ZeroCopyStream buffer

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.