2015-04-30 66 views
0

我有一个需要在er sql数据库(postgresql)中存储erlang的pid。用于在postgresql数据库中存储erlang pids的数据类型是什么?

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

是否值得创建复合型,如:

CREATE TYPE pid AS (
    a integer, 
    b integer, 
    c integer 
); 

意志创造试图找出跨节点的PID的问题(例如,如果节点写入和读取节点的数据库是不一样的)?还是其他问题?

这是太多了,我只是使用varchar(N)?在这种情况下是否有最大的字符串长度?

与感谢和良好祝愿

伊万

PS我看过这两个问题:

+5

我不明白为什么要将PID存储在数据库中。你能解释为什么你需要将内部进程ID存储到后台存储中吗? –

+2

将pid存储在耐用存储中是很愚蠢的,因为当VM终止时,pids无效。 – rightfold

+1

您是否尝试过使用ets或mnesia? – dethtron5000

回答

0

感谢所有。我现在可以看到存储pid是一个糟糕的主意。正如Marc Worrell在其他地方所建议的,我将尝试使用gen_tracker(基于ets):github.com/erlyvideo/gen_tracker

相关问题