在postgresql数据库中存储erlang PID的数据类型是什么?

在postgresql数据库中存储erlang PID的数据类型是什么?,postgresql,erlang,Postgresql,Erlang,我需要将erlang PID存储在sql数据库(postgresql)中 我可以使用varchar(N),但pid在结构上似乎是由三个整数组成的序列,所以我认为可能有更好的方法。erlang应用程序可能是分布式的,因此pid的节点部分并不总是为零 是否值得创建一个复合类型,如中所示: CREATE TYPE pid AS ( a integer, b integer, c integer ); 这是否会在尝试跨节点识别PID时产生问题(例如,如果节点写入和节点读取db不

我需要将erlang PID存储在sql数据库(postgresql)中

我可以使用varchar(N),但pid在结构上似乎是由三个整数组成的序列,所以我认为可能有更好的方法。erlang应用程序可能是分布式的,因此pid的节点部分并不总是为零

是否值得创建一个复合类型,如中所示:

CREATE TYPE pid AS (
    a integer,
    b integer,
    c integer
);
这是否会在尝试跨节点识别PID时产生问题(例如,如果节点写入和节点读取db不相同)?还是其他问题

这是不是太麻烦了,我只使用了varchar(N)?在哪种情况下有最大字符串长度

致以感谢和良好的祝愿

伊万

ps我读过这两个问题:


    • 谢谢大家。我现在明白了存储PID是个坏主意。正如Marc Worrell在其他地方所建议的那样,我将尝试使用gen_tracker(基于ets):github.com/erlyvideo/gen_tracker

      我不明白为什么要将PID存储在数据库中。您能解释一下为什么需要将内部进程id存储到备份存储中吗?将PID存储在持久存储中是愚蠢的,因为当VM终止时,PID会失效。您是否尝试过使用ets或mnesia来代替它?谢谢大家。我现在明白了存储PID是个坏主意。正如Marc Worrell在其他地方所建议的,我将尝试使用gen_tracker(基于ets):