Re: M3 feature preview

John Huss <[email protected]> Mon, 6 Jul 2026 16:04:29 -0500
Newsgroups gmane.comp.java.cayenne.devel
Message-ID <CAOUwSGsLKSu1W4R-GrO4f1Jf7L_mP3+ZWP2GQ8o7Jty=tVNvqw@mail.gmail.com>
--000000000000d388300655f79f2b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

2x faster select queries is amazing! =F0=9F=94=A5

I'm testing it right away! Thank you!

On Mon, Jul 6, 2026 at 3:29=E2=80=AFPM Michael Gentry <[email protected]>=
 wrote:

> But... The Screaming Logs is so punk.
>
> On Mon, Jul 6, 2026 at 9:37=E2=80=AFAM Andrus Adamchik <[email protected]=
om>
> wrote:
>
> > Hi,
> >
> > I wanted to highlight a few things in the upcoming M3. They are already
> on
> > master, so maybe some brave souls can take it for a spin and give us
> > feedback :)
> >
> > 1. Cayenne no longer wraps selecting queries (or at least those it can
> > reliably identify as selecting) into transactions.
> >
> > I had a suspicion for years that we shouldn't be doing that. Now I was
> > able to vibecode real benchmarks on multiple databases, and time saving=
s
> in
> > the JDBC layer with faster queries are about 2x! (as each useless
> "commit"
> > is a separate command sent to DB that needs to be processed). But this
> > means that for the first time Cayenne operates with Connection
> > "autoCommit=3Dtrue". So I'd appreciate feedback if this causes any
> weirdness
> > with your DataSources.
> >
> >
> > 2. SQL logging changes. There are multiple changes. Some address
> > operational concerns (saving hundreds of GB of storage space; single-li=
ne
> > logs are easier to parse), others are "quality of life":
> >
> > * No tx for selects (mentioned above) by itself cuts down on 2 log line=
s
> > per query
> > * The new logger name is short and descriptive "cayenne-sql"
> > * ERROR log level for queries that result in exceptions
> > * SQL query logs are single-line. Parameters, timers, result counters,
> > generated keys are placed on one line and rendered in a compact format.
> Tx
> > wrapping is still done on separate lines (as a tx can include more than
> one
> > SQL statement)
> >
> > INFO cayenne-sql tx started
> > INFO cayenne-sql INSERT INTO BINARY_PK_TEST1(BIN_ID, NAME) VALUES(?, ?)=
 |
> >
> bind:[BIN_ID:FBBC4034ED8F0214B2C559CF1029C1868A66F0D59208A36C9365126C248C=
...,NAME:'master1']
> > updated:1 time_ms:0
> > INFO cayenne-sql tx committed
> >
> > * Mnemonic table aliases. No more meaningless t0, t1, t2:
> >
> > INFO cayenne-sql SELECT p.ESTIMATED_PRICE, p.PAINTING_DESCRIPTION,
> > p.PAINTING_TITLE, p.ARTIST_ID, p.GALLERY_ID, p.PAINTING_ID, g.GALLERY_I=
D,
> > g.GALLERY_NAME FROM PAINTING p LEFT JOIN GALLERY g ON p.GALLERY_ID =3D
> > g.GALLERY_ID | selected:1 time_ms:0
> >
> > * No alias for single-table queries
> >
> > INFO cayenne-sql - SELECT ESTIMATED_PRICE, PAINTING_DESCRIPTION,
> > PAINTING_TITLE, ARTIST_ID, GALLERY_ID, PAINTING_ID FROM PAINTING |
> > selected:2 time_ms:0
> >
> >
> > (I am also thinking of lowercasing the SQL so that logs don't look like
> > they are screaming at you :))
> >
> > Andrus
> >
> >
> >
> >
> >
>

--000000000000d388300655f79f2b--