Re: Optimize postgres protocol for fixed size arrays

From: "ktm(at)rice(dot)edu" <ktm(at)rice(dot)edu>
To: Mikko Tiihonen <mikko(dot)tiihonen(at)nitorcreations(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Optimize postgres protocol for fixed size arrays
Date: 2011-11-22 21:58:06
Message-ID: 20111122215806.GP27589@staff-mud-56-27.rice.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-jdbc

On Tue, Nov 22, 2011 at 11:47:22PM +0200, Mikko Tiihonen wrote:
> Hi,
>
> During conversion of the jdbc driver to use binary encoding when receiving array objects from postgres it was noticed
> that for example for int[] arrays the binary encoding is normally 30% to 200% larger in bytes than the text encoding.
>
> This was of concern to some users with slower links to database. Even though the encoded size was larger the binary
> encoding was still constantly faster (with 50% speed up for float[]).
>
> Here is a patch that adds a new flag to the protocol that is set when all elements of the array are of same fixed size.
> When the bit is set the 4 byte length is only sent once and not for each element. Another restriction is that the flag
> can only be set when there are no NULLs in the array.
>

Cool. This would be very useful with the DSPAM binary array driver. Although
the binary is shorter because the values are 8 byte integers, they would be
much shorter without the redundant sizing information. Barring issues:

+1

Regards,
Ken

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2011-11-22 22:35:51 Re: FlexLocks
Previous Message Peter Eisentraut 2011-11-22 21:56:55 Re: pg_upgrade relation OID mismatches

Browse pgsql-jdbc by date

  From Date Subject
Next Message Merlin Moncure 2011-11-22 22:46:24 Re: Optimize postgres protocol for fixed size arrays
Previous Message Mikko Tiihonen 2011-11-22 21:47:22 Optimize postgres protocol for fixed size arrays