Re: Request for review of new redis-fdw module

From: George Silva <georger(dot)silva(at)gmail(dot)com>
To: Leon Dang <ldang(at)nahannisys(dot)com>
Cc: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>, pgsql-general(at)postgresql(dot)org
Subject: Re: Request for review of new redis-fdw module
Date: 2015-01-28 19:49:15
Message-ID: CAGyPVTuXeWM8u+cp8XaifeytzV8bgLQ4bFtxOuEoJcfeOG0Vjg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Great. Congratulations.

How big is the latency in the FDW? This opens up new possibilities using
redis. Very cool.

On Wed, Jan 28, 2015 at 5:19 PM, Leon Dang <ldang(at)nahannisys(dot)com> wrote:

>
> Andreas Kretschmer wrote on 01/28/2015 03:36 AM:
>
>> > I've implemented a completely new Redis FDW module which has little to
>> do with
>> > github.com/pg-redis-fdw/redis_fdw; although I did take some
>> inspiration from in
>> > on how the tables were to be designed but most I got from looking at the
>> > oracle-fdw.
>> >
>> > My redis-fdw implementation supports read and write to the Redis
>> backend, so
>> > you can do insert, update, and delete. e.g. you can define a hash table
>> as:
>>
>> is it possible to write multiple row's into the redis? something like
>>
>> insert into foreign_redis_table select * from big_table
>>
>>
> Thanks for pointing this out. I had a small bug which didn't let it
> succeed, but now it's been fixed and committed; I've also added a
> bulkdata.sql test script in the code to show an example.
>
>
> Anyway, thx, compiled and installed (just for fun, i'm not familiar with
>> redis, and i'm not a coder)
>>
>>
> Redis is great for session management as it allows you to set an expiry
> for each key. So by using redis_fdw, you don't need to do multiple queries
> to determine of the session is still valid. e.g.:
>
> -- use a string (key-value) dataset for user sessions
> CREATE FOREIGN TABLE rsessions(
> sessid TEXT,
> value TEXT,
> expiry INT
> ) SERVER localredis
> OPTIONS (tabletype 'string');
> ALTER FOREIGN TABLE rsessions ALTER COLUMN sessid OPTIONS (ADD param
> 'key');
>
> -- a user table in postgres, can contain a whole bunch of other fields.
> CREATE TEMP TABLE users (
> userid INT,
> username TEXT,
> sessid TEXT
> );
>
>
> --
> -- get user's details at the same time as determining if they're session
> is still valid
> --
> WITH u AS (SELECT * FROM users WHERE username = 'foo')
> SELECT u.*, r.value, r.expiry
> FROM rsessions r, u
> WHERE r.sessid = (SELECT u.sessid FROM u);
>
>
>
> If the user's session is still valid then a row will be returned (Redis
> automatically destroys the key on expiry).
>
>
> --
> -- to reset the expiry timeout for the user
> --
> UPDATE rsessions SET expiry = 40 WHERE sessid = $1;
>
>
>
> Leon
>
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

--
George R. C. Silva
SIGMA Consultoria
----------------------------
http://www.consultoriasigma.com.br/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Day, David 2015-01-28 20:23:37 Re: segmentation fault postgres 9.3.5 core dump perlu related ?
Previous Message Leon Dang 2015-01-28 19:19:25 Re: Request for review of new redis-fdw module