DETS & BLOB

Далее интересно только тем, кто пишет на эрланге.


Хочу просто предупредить тех, кто
пользуется DETS и/или  Mnesia на 32-х битных системах и у кого размеры
DAT приближаются к 2Г – оно умеет портить DAT файлы. Вот пример, там
всё видно.:

ufm@imac:~/src$ erl
Erlang R13B01 (erts-5.7.2) [source] [smp:2:2] [rq:2] [async-threads:0]
[kernel-poll:false]

Eshell V5.7.2  (abort with ^G)
1> BigL = lists:seq(1,2000000).
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29|...]
2> dets:open_file(tab,[{type,set}]).
{ok,tab}
3> dets:info(tab).
[{type,set},
{keypos,1},
{size,0},
{file_size,5432},
{filename,"tab"}]
4> lists:foreach(fun(X) -> dets:insert(tab,{X,BigL}) end, lists:seq
(1,50)).
ok
5> dets:info
(tab).
[{type,set},
{keypos,1},
{size,50},
{file_size,848861394},
{filename,"tab"}]
6> dets:close(tab).
ok
7> dets:open_file(tab,
[{type,set}]).
{ok,tab}
8> dets:info
(tab).
[{type,set},
{keypos,1},
{size,50},
{file_size,848861666},
{filename,"tab"}]
9> lists:foreach(fun(X) -> dets:insert(tab,{X,BigL}) end, lists:seq
(50,200)).
ok
10> dets:info
(tab).
[{type,set},
{keypos,1},
{size,126},
{file_size,2066820196},
{filename,"tab"}]
11> dets:close
(tab).
{error,{{bad_object,read_buckets},”tab”}}
12> dets:close
(tab).
{error,not_owner}
13> dets:info
(tab).
undefined
14> dets:open_file(tab,
[{type,set}]).
dets: file “tab” not properly closed, repairing …
{error,{no_more_space_on_file,”tab.TMP”}}
15>

Leave a Reply