Hi Michal and TJ,

The nice thing about Postgres extensions is that they are loaded directly into the session's process space. Therefore the overhead is minimal, almost non-existing. Not so with Oracle cartridges/extensions that are loaded in a separate process, the extproc process.

The overhead per call into PYPL is on the order of tens of microseconds, which could be a lot or not, depending on how many calls you do and what kind of calls.

I have tried to do a naïve SSS search with PYPL and HasSubstructMatch() on a database of 70 000 compounds (seventy thousand) and it took several minutes to complete so it was not really usable. If you need any kind of speed you need to use fingerprints to find an initial hit list, and you need to pass fingerprints in bulk to PYPL to avoid too much call overhead.

> Do consecutive pypl calls always share the same interpreter?

On Oracle 10g and 11g, yes. I do have a disclaimer that it might not be the case if you run shared server, but in my experience even shared server ensures that each session gets its own private instance of an interpreter (its own extproc process). And, if you run a multi-threaded extproc configuration then there are no guarantees, but I don't know anyone who does that.

On 12c I just don't know yet. The little I have done with it seems to indicate that it behaves like 10 and 11, so looking good so far.

Cheers
-- Jan

On 2015-03-13 00:43, TJ O'Donnell wrote:
I've implemented a suite of rdkit functions
for postgres using plpython
https://github.com/tjod/rdchord
and the overhead is minimal
since most of the heavy lifting of substructure searching
is done by rdkit.

I think the same would be true of oracle.
-------------------
TJ O'Donnell

On Thu, Mar 12, 2015 at 4:24 PM, Michal Krompiec <[email protected] <mailto:[email protected]>> wrote:

    Hello, has anybody tried to implement substructure searching in an
    Oracle database using PYPL and RDKit? Is it just a matter of
    writing a wrapper function for molecule.HasSubstructMatch(pattern)
    or is the overhead of calling pypl each time too costly timewise?
    Do consecutive pypl calls always share the same interpreter?
    Best wishes,
    Michal



------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to