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
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 |