Re: Sobre pg_advisory_locks

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre pg_advisory_locks
Date: 2010-03-16 18:06:25
Message-ID: 4B9FC8A1.8030005@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jaime Casanova escribió:
> 2010/3/16 Oswaldo Hernández <listas(at)soft-com(dot)es>:
>> La cuestión es que mis id de registro no son normales, simplificando avanzan
>> de 100 en 100, entonces en rango se reduce a 42 millones. Esa es la causa de
>> querer aprovechar ese byte. Lo meditaré a ver que solución tomo.
>>
>
> arriesgandome a parecer tonto, no es mas facil usar una secuencia
> normal, ej: 1, 2, 3...
> y luego al mostrar o hacer algun proceso raro multiplicarlo por 100?
>
>
No, no es para mostrar el valor ni para hacer cálculos con él, se
utiliza únicamente cono identificador del registro.

El tema es que hay un sistema de replicación asíncrona por medio. Si
utilizara nextval() de la forma habitual me encontraría con el problema
que se se generan los mismos id en varios sitios simultáneamente, y al
cruzarse los datos tendría problemas.

Simplificando, lo que hago es utilizar los últimos dígitos del id como
identificador del sitio donde se crea el registro. Para ello en vez de
utilizar nextval() he hecho otra función que al nextval normal le agrega
la identificación del site.

De esta forma los id creados en el site 5 se generarán como 105, 205,
305, ... en el site 6 serán 106, 206, 306, ... etc.

Saludos,
--
Oswaldo Hernández

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message ๏̯͡๏ Guido Barosio 2010-03-16 18:07:01 Re: [OT] Fecha definitivas JSRL2010
Previous Message Ing. Marcos Ortiz Valmaseda 2010-03-16 17:53:25 Re: ayuda con pcp_recovery_node