Re: Server side session management using the SQLite (per session) database

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
Cc: Neel Patel <neel(dot)patel(at)enterprisedb(dot)com>, Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Server side session management using the SQLite (per session) database
Date: 2016-03-23 08:59:31
Message-ID: CA+OCxowFDgnKBm6ujjs1+Gqh1N7Yq7eX7_VtRVajErd=BL=Mdw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Wed, Mar 23, 2016 at 7:32 AM, Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com
> wrote:

> On Tue, Mar 22, 2016 at 8:41 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>
>> Hi
>>
>> On Thu, Mar 17, 2016 at 5:46 PM, Ashesh Vashi <
>> ashesh(dot)vashi(at)enterprisedb(dot)com> wrote:
>>
>>> Hi Dave/team,
>>>
>>> As discussed, I have implemented the server side session management
>>> using the SQLite database.
>>>
>>> Implementation:
>>> * It creates/reuses the sqlite database per session.
>>> * Stores the key (as text)/value (as blob) in the sqlite database.
>>> * Needs to provide the session directory, where you want to store those
>>> sessions. If this directory does not exist, it creates the directory with
>>> 700 permission. (Default: <USER_HOME>/.pgadmin/sessions directory.)
>>> * Also - sets default value for the log file to be stored in the
>>> '<USER_HOME>/.pgadmin' directory. This will allow us to keep separate
>>> configuration per user on any operation system, when running through
>>> runtime.
>>>
>>> This implementation uses sqlite as session storage, it may affect
>>> because of explicit file system I/O operation. Though - performance should
>>> not be a big issue, as we're not targeting to support very huge parallel
>>> sessions.
>>>
>>
>> Thanks - applied.
>>
> Thanks.
>
>>
>> I assume it's expected at this point that new connections still fail if
>> the backend is restarted (that would come with graceful reconnections)?
>>
> Hmm..
> I did not get that.
>
> Do you mean to say?
> - New Connection to the server should not be established (if it was
> restarted).
> - What about the existing connection, should it re-establish the
> connection after the backend restart (when allowed)?
>

There are still some cases, even with the graceful reconnection patch,
where reconnections don't happen and you get a red alert message on the UI.
I've yet to figure out exactly what they are though - but I think whether
the pgAdmin server or the Python server has restarted or dropped
connections, they should gracefully be re-established.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Magnus Hagander 2016-03-23 09:04:23 Re: Server side session management using the SQLite (per session) database
Previous Message Ashesh Vashi 2016-03-23 08:36:37 Re: Server side session management using the SQLite (per session) database