RE: Re: [ADMIN] High memory usage [PATCH]
От | Dave Cramer |
---|---|
Тема | RE: Re: [ADMIN] High memory usage [PATCH] |
Дата | |
Msg-id | 000001c0fb28$65546ff0$0201a8c0@INSPIRON обсуждение исходный текст |
Ответ на | RE: Re: [ADMIN] High memory usage [PATCH] ("Rainer Mager" <rmager@vgkk.com>) |
Список | pgsql-jdbc |
I am going to have a look at the spec in more detail to see how they expect the driver to be used within threads I am in a similar situation wrt using the driver in server and will check if the memory usage is better. Dave -----Original Message----- From: pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Rainer Mager Sent: June 22, 2001 12:56 AM To: Dave Cramer; Bruce Momjian Cc: PostgreSQL jdbc list Subject: RE: [JDBC] Re: [ADMIN] High memory usage [PATCH] Good questions, I'll answer what I can... > 1) what is the problem that this is trying to solve, I assume from the > subject that it is some sort of high memory usage? Yes it involves memory usage and a memory leak. Basically, the way the code was before the patch, each instantiation of a PreparedStatement created 2 new ThreadLocal objects. According to Sun's Javadocs, these objects are not freed until the thread is completed. For a single thread app or main thread of an application (in our case a server) the thread NEVER goes away. Therefore these ThreadLocal objects just keep adding up and using memory, forever. The patch removes the use of these ThreadLocals. > 2) I am trying to understand how a statement would ever be used > by more than > one thread at a time? I would think that it would be impossible to share > statements across threads. This I can't really answer. The code appeared to be written to be thread safe so I attempted to continue that. Whether thread safe for a Statement is necessary or not I can't directly say. Although, I agree with you, I can't imagine a need to use a single Statement in multiple threads. > 3) The double locking method used is alledgedly unsafe on SMP machines > http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-double_p.html. Interesting. I wasn't aware of this. If question #2 is answered such that thread safe isn't necessary, then this problem goes away pretty easily. If thread safety is needed then this would have to be rewritten, I can look into doing this if you like. > Dave --Rainer ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
В списке pgsql-jdbc по дате отправления: