- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
dirty_boostrap_test() ->
SourceTab = ets:new(source, [public, named_table]),
ReplicaTab = ets:new(replica, [public, named_table]),
%% Insert some initial data:
ets:insert(source, {1, 1}),
ets:insert(source, {2, 2}),
ets:insert(source, {3, 3}),
try
register(testcase, self()),
Replica = spawn_link(fun replica/0),
register(replica, Replica),
%% "importer" process emulates mnesia_tm:
spawn_link(fun importer/0),
%% "bootstrapper" process emulates bootstrapper server:
spawn_link(fun bootstrapper/0),
receive
done ->
SrcData = lists:sort(ets:tab2list(source)),
RcvData = lists:sort(ets:tab2list(replica)),
?assertEqual(SrcData, RcvData)
end
after
ets:delete(SourceTab),
ets:delete(ReplicaTab)
end.
importer() ->
Ops = [ {write, 3, 3}
, {write, 4, 4}
, {write, 4, 5}
, {delete, 2}
],
lists:map(fun(OP) ->
import_op(source, OP),
%% Imitate mnesia event (note: here we send it
%% directly to the replica process bypassing
%% the agent):
replica ! {tlog, OP}
end,
Ops),
replica ! last_trans.
replica() ->
receive
{bootstrap, K, V} ->
ets:insert(replica, {K, V}),
replica();
bootstrap_done ->
replay()
end.
replay() ->
receive
{tlog, Op} ->
import_op(replica, Op),
replay();
last_trans ->
testcase ! done
end.
import_op(Tab, {write, K, V}) ->
ets:insert(Tab, {K, V});
import_op(Tab, {delete, K}) ->
ets:delete(Tab, K).
bootstrapper() ->
{Keys, _} = lists:unzip(ets:tab2list(source)),
[replica ! {bootstrap, K, V} || K <- Keys, {_, V} <- ets:lookup(source, K)],
replica ! bootstrap_done.
CHayT 20.06.2021 23:53 # +1
CHayT 21.06.2021 00:06 # +1
CHayT 21.06.2021 00:19 # 0
defecate-plusplus 21.06.2021 00:25 # 0
Разве в этих ваших отказоустойчивых СУБД не должно быть стрим репликации из коробки?
CHayT 21.06.2021 00:27 # +1
bormand 21.06.2021 00:03 # 0
CHayT 21.06.2021 00:07 # 0
bormand 21.06.2021 00:10 # 0
CHayT 21.06.2021 00:14 # +1
Desktop 21.06.2021 00:15 # +2
bormand 21.06.2021 01:18 # +1
Но когда мы проиграем журнал транзакций на грязном снимке, то всё будет ок.
А concuerror перебирает все варианты шедулинга процессов?
CHayT 21.06.2021 01:23 # +1
Да, все некоммутирующие.
CHayT 21.06.2021 01:25 # +1
bormand 21.06.2021 01:48 # 0
Я помню, что в том же постгресе можно попросить сервер сделать чекпоинт, тогда он сделает отсечку лога транзакций и мне можно будет забить на wal до этой точки. И вот пока не получается понять, что именно происходит в момент чекпоинта.
Просто флашатся все странички, которые были грязными до начала чекпоинта?
bormand 21.06.2021 02:03 # 0
CHayT 21.06.2021 02:26 # +1
Это работает онлайн с небольшими издержками, но жрёт память пока чекпоинт активен.
MAKAKA 21.06.2021 02:43 # +2
Переодически случается CHECKPOINT (или явно, или через checkpoint_timeout)
В момент CHECKPOINT всё флашится, а в WAL ставится REDO POINT (с которой будет проигрываться лог в случае дизастера)
Этим занимается процесс checkpointer.
Вроде так
bormand 21.06.2021 03:08 # 0
tombstone это остатки после удаления записи? Хотя раз это undo лог, то походу наоборот, создания.
j123123 21.06.2021 04:52 # 0
bormand 21.06.2021 07:30 # 0
j123123 21.06.2021 08:45 # 0
bormand 21.06.2021 12:23 # 0
j123123 21.06.2021 08:53 # 0
но там и процессор общего назначения есть, плата с плисиой там тупо в PCI всунута, так что это немного не то.
bormand 21.06.2021 12:34 # 0
Так что если какую-то операцию в духе поиска в хешмапе получилось ускорить, то вай нот? А остальное на проце поработает.
booratihno 21.06.2021 10:45 # 0
лол, тогда уже nvme уже
и всё сразу в ASIC
CHayT 21.06.2021 13:38 # +2
JloJle4Ka 21.06.2021 14:07 # 0
gologub 21.06.2021 14:16 # 0
DypHuu_niBEHb 21.06.2021 14:13 # +2
В более дорогих моделях будет EEPROM, или который под лампой стирался
В более дешевых одноарзовый, где прогромматор перемычки пережигал
bormand 21.06.2021 15:06 # 0
И тут мы приходим к проблеме современных техпроцессов, в которых нельзя выразить нормальное ПЗУ. Кроме одноразового с пережиганием вроде.
У FPGA'шек тоже с этим проблема -- надо внешнее ПЗУ или внешний контроллер.
DypHuu_niBEHb 21.06.2021 15:09 # 0
bormand 21.06.2021 15:59 # 0
NOR только под какие-то редкие кейсы, где не надо много памяти но хочется стирать произвольные байты. Он слишком жирный.
DypHuu_niBEHb 21.06.2021 16:02 # 0
bormand 21.06.2021 16:29 # 0
DypHuu_niBEHb 21.06.2021 16:32 # 0
bormand 21.06.2021 16:37 # 0
Хер знает, может и правда NOR...
Но на самом деле скорость у SPI интерфейса никакая, так что я не вижу смысла туда лепить супер-охуенную память.
HEu3BECTHblu_nemyx 21.06.2021 21:19 # 0
Я не знаю, работает ли это на самом деле.
bormand 21.06.2021 21:25 # 0
JloJle4Ka 21.06.2021 14:13 # +3
Грязный бусь-траповый тест. Это на анимешника тест какой-то?
bormand 21.06.2021 14:44 # +1
bormand 21.06.2021 14:54 # 0
DypHuu_niBEHb 21.06.2021 14:57 # +1
бдсм какой-то
bormand 21.06.2021 15:03 # +1
bormand 21.06.2021 15:49 # 0
CHayT 21.06.2021 16:37 # +1
DypHuu_niBEHb 21.06.2021 15:15 # 0
https://id-press-a.ru/#service (18 06)
ааааааааа
CHayT 21.06.2021 15:24 # 0
DypHuu_niBEHb 21.06.2021 15:25 # 0
18.06.2021
gologub 21.06.2021 15:25 # 0
DypHuu_niBEHb 21.06.2021 15:25 # 0
18.06.2021
gologub 21.06.2021 15:27 # 0
DypHuu_niBEHb 21.06.2021 15:27 # 0
bormand 21.06.2021 16:07 # 0
Бедняги )))
DypHuu_niBEHb 21.06.2021 16:10 # 0
гребаные шовинисты
gologub 21.06.2021 19:01 # 0
еще раз напомню, что в рашке «инженер» - мученая степень типа боколавра
JloJle4Ka 21.06.2021 19:12 # 0
DypHuu_niBEHb 21.06.2021 19:17 # +4
Вот Ротойоб никаких ВУЗов не заканчивал, и это не мешает ему быть гениальным программистом
Хотя может и заканчивал.. Я не знаю точно
bootcamp_dropout 21.06.2021 19:27 # +2
Desktop 21.06.2021 19:32 # +1
DypHuu_niBEHb 21.06.2021 19:35 # 0
Desktop 21.06.2021 16:13 # 0
DypHuu_niBEHb 21.06.2021 16:14 # +2
bormand 21.06.2021 16:17 # 0
DypHuu_niBEHb 21.06.2021 16:21 # 0
Desktop 21.06.2021 16:34 # 0
что может быть луччее
Desktop 21.06.2021 16:17 # 0
DypHuu_niBEHb 21.06.2021 16:23 # +1
-инженера-конструктора, заработная плата от 40 000 рублей
ого
HEu3BECTHblu_nemyx 21.06.2021 21:15 # 0
Desktop 21.06.2021 16:26 # 0