[Pljava-dev] A couple PL/Java github branches worth previewing

From: Chapman Flack <chap(at)anastigmatix(dot)net>
To:
Subject: [Pljava-dev] A couple PL/Java github branches worth previewing
Date: 2019-03-09 00:26:26
Message-ID: 5C830832.7090002@anastigmatix.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

Hello,

There are a couple of branches at github that are not merged into any
release yet, but would be worth building and testing for anyone so inclined.

The trackpg/REL1_5_STABLE/pg12 branch, as its name implies, contains all
the (currently identified) changes necessary for PL/Java to work with
the upcoming PG 12. There is not a pull request yet for this branch; I plan
to wait until at least there is a PG 12 beta, in case any more changes
become necessary. But the branch currently builds with the current state
of pg 12 development, and is testable.

https://github.com/tada/pljava/tree/trackpg/REL1_5_STABLE/pg12

The refactor/REL1_5_STABLE/finalizers branch is described in detail in the
pull request #206: https://github.com/tada/pljava/pull/206

It eliminates the use of Object.finalize() in PL/Java's code (Java 9
officially deprecates that method). Without finalizers, PL/Java itself
has no more need to call into PostgreSQL from more than one Java thread
(which has been a significant source of PL/Java's code complexity).

With this branch, PL/Java itself can load, and complete all the examples
that auto-run in the pljava-examples deployment descriptor, without
calling into PG on any other thread but the main one.

It is still possible that user code written for PL/Java could make such
calls from other threads, so this branch adds a new configuration setting,
pljava.java_thread_pg_entry, that can be set to allow (the traditional
behavior), error (for vetting user code to see if it contains such calls),
or block (an efficient choice if the user code is known to be free of them).

I would be interested in hearing how much code there is in the wild, if any,
that produces errors if pljava.java_thread_pg_entry is set to 'error'.

The 1.5.2 release was tested with the OpenJ9 JVM as well as with Hotspot,
and was generally reliable, but would occasionally end up with a blocked
object finalizer thread. This branch seems to eliminate that one quirk on
OpenJ9.

-Chap
_______________________________________________
Pljava-dev mailing list
Pljava-dev(at)lists(dot)pgfoundry(dot)org
http://lists.pgfoundry.org/mailman/listinfo/pljava-dev

Browse pljava-dev by date

  From Date Subject
Next Message Chapman Flack 2019-09-29 01:23:33 [Pljava-dev] PL/Java 1.5.3 draft release notes
Previous Message Chapman Flack 2019-02-27 19:38:51 Re: PL/Java 1.5.2 - fixes one regression in date conversion in 1.5.1