在 postgresql 数据库中存储 erlang pids 的数据类型是什么?
What datatype for storing erlang pids in postgresql database?
我需要将 erlang pids 存储在 sql 数据库 (postgresql) 中。
我可以使用 varchar(N),但 pid 在结构上似乎是三个整数的序列,所以我认为可能有更好的东西。 erlang应用程序很可能是分布式的,所以pid的节点部分不会一直为零。
是否值得创建复合类型,如:
CREATE TYPE pid AS (
a integer,
b integer,
c integer
);
尝试识别跨节点的 pids 是否会产生问题(例如,如果节点写入和节点读取数据库不相同)?还是其他问题?
是不是太折腾了,我就直接用varchar(N)?在什么情况下有最大字符串长度?
感谢并祝福
伊万
ps 我看过这两个问题:
- Can someone explain the structure of a Pid in Erlang?
- global:whereis_name() returns different Pid from different terminals
谢谢大家。我现在可以看出存储 pids 是个坏主意。正如 Marc Worrell 在其他地方建议的那样,我将尝试使用 gen_tracker(基于 ets):github.com/erlyvideo/gen_tracker
我需要将 erlang pids 存储在 sql 数据库 (postgresql) 中。
我可以使用 varchar(N),但 pid 在结构上似乎是三个整数的序列,所以我认为可能有更好的东西。 erlang应用程序很可能是分布式的,所以pid的节点部分不会一直为零。
是否值得创建复合类型,如:
CREATE TYPE pid AS (
a integer,
b integer,
c integer
);
尝试识别跨节点的 pids 是否会产生问题(例如,如果节点写入和节点读取数据库不相同)?还是其他问题?
是不是太折腾了,我就直接用varchar(N)?在什么情况下有最大字符串长度?
感谢并祝福
伊万
ps 我看过这两个问题:
- Can someone explain the structure of a Pid in Erlang?
- global:whereis_name() returns different Pid from different terminals
谢谢大家。我现在可以看出存储 pids 是个坏主意。正如 Marc Worrell 在其他地方建议的那样,我将尝试使用 gen_tracker(基于 ets):github.com/erlyvideo/gen_tracker