PGStream.ReceiveTupleV3 and Out of Memory

From: digifork <digifork(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: PGStream.ReceiveTupleV3 and Out of Memory
Date: 2011-04-27 17:59:48
Message-ID: BANLkTikHyO3ineSui4KosP5mn=vPPJtKNg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello All!

I have a question that I hope someone can help me with. I have a very
large query against a PostgreSQL 8.2 database using an iBatis 2.3.4
RowHandler, postgresql-8.2 JDBC4 driver, and a 32-bit Java 1.6 JVM.
The reason why we use the RowHandler is because we know this is a big
query and want to handle it a row at a time.

When I start the query, it takes some time to return the first row.
When the query is about to return the first row, there is a giant
spike in heap memory use and the the JVM runs out of memory. I was
able to snapshot the heap before it crashed. The culprit seems to be
this call:

97.4% - 632 MB - 17,776,474 alloc. org.postgresql.core.PGStream.ReceiveTupleV3

I have analyzed the database and we have no rows that exceed 2K in
size; so I know the problem is not related to returning a giant single
row.

Does anyone have any ideas why ReceiveTupleV3 is returning so much data?

Thank you!

-Dan

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Kevin Grittner 2011-04-27 18:20:03 Re: PGStream.ReceiveTupleV3 and Out of Memory
Previous Message Daniel Migowski 2011-04-27 12:02:40 Re: Configurable Send/Receive Buffer Sizes