Hi Greg

First, I have to apologize for sending this and then not following up. I actually sent it initially using google groups, since accessing NNTP from behind the company firewall isn't easily possible. Strangely my post didn't seem to turn up when the list was viewed via google groups. I had assumed my post didn't make it onto the group, and in fact I sent another one just yesterday. Then when I checked with a real NNTP client I found my old post! So please ignore the post from yesterday, if it shows up at all.

>
> What exactly is the slow part? DBD::Pg uses XS extensively as well,
> so it's good to know about real world limitations where the Perl
> bumps up against the C. Maybe we can fix that part instead of having
> to tie yet another language into the mix.
>

The application has grown over the years, to the point where there are now a number of installations, each handling 100's of thousands of files a day, parsing their content, processing and storing in the database. The database size is in the 10's of TB, and can be processing many GB per day. There are a number of transformations and operations performed on the data before putting it in the database, and as it has grown we have found that a pure perl solution has not been able to keep up.

I doubt you could do much to DBD::Pg to help with this.

> My first instinct is to make the version a requirement somehow.
> Not knowing your system, I'm guessing that's problematic.

Yes, we are doing that at the moment, using RPM dependancies. However it makes it difficult to accomodate additional host OS variants, and there is also the danger that an admin at one of the sites might install another version of DBD::Pg from source.

> At first blush, I don't see any reason to deny that. It's just
> hooking to the underlying plumbing, there is no escalation of
> privs or anything. And we could certainly keep it as a
> super-advanced, here-be-dragons kind of attribute.

OK, I will try some experiments to see if I can come up with a workable solution.

In the other post I attempted to make yesterday I suggested three possible methods:

1. Allow access to the PGconn ptr from perl as an attribute or via a method 2. Provide a C accessor function which can be called externally from another XS module 3. Include a header file with DBD::Pg which defines access macros. Of course I didn't think that through too well as it really does not solve the problem, so perhaps forget that.

My gut feel is to go with option #2, since the raw PG connection is not likely to be that useful from Perl and it allows us to have our module accept a SV* dbi handle as an argument in a transparent way.

Regards
Mike

Reply via email to