Как я организую многопоточный доступ к графику?

Вы могли бы, например, использовать что-то как document.location = 'java_page.html' для перенаправления браузера к новой, загруженной сценарием странице. Отказ перенаправить подразумевает, что JavaScript недоступен, в этом случае можно или обратиться к CGI ro utines или ввести соответствующий код между тегами. (ОТМЕТЬТЕ: NOSCRIPT только доступен в Netscape Navigator 3.0 и.)

кредит http://www.intranetjournal.com/faqs/jsfaq/how12.html

8
задан Hanno Fietz 21 July 2009 в 14:18
поделиться

3 ответа

в качестве альтернативы можно использовать постоянные структуры данных . Это структура данных, которая всегда сохраняет предыдущую версию самой себя при ее изменении .

Они похожи на файл журнала, измененная версия всегда добавляется последней, что делает их неизменяемыми, поскольку их операции не ( видимым образом) обновляют структуру на месте, но вместо этого всегда дают новую обновленную структуру. Такие языки программирования, как Clojure, недавно сделали этот подход полулярным (по крайней мере, для меня).

4
ответ дан 5 December 2019 в 22:20
поделиться

Ваш подход кажется мне разумным ...

Однако у вас могут возникнуть проблемы с обеспечением причинно-следственной связи между записями в отдельных подграфах.

Если писатель изменяет подграф A, а другой писатель изменяет отдельный подграф B, но другие операции чтения / записи происходят в подграфе C, где A и B находятся в C, тогда вам необходимо убедиться, что версия подграфа C правильно совпадает с версиями B и A.

Я бы предложил схему блокировки в DAG, которая включает блокировку подграфа для множественного чтения / одной записи из заданного корня. Однако вам нужно будет найти график циклических зависимостей с помощью grep, чтобы убедиться, что вы не попадете в состояние голодания / тупика в пределах графика.

Если ваш график распределен или ваш параллельный доступ имеет задержку , тогда вашу систему транзакций будет сложнее реализовать и, вероятно, потребуются дополнительные меры безопасности.

Ваш подход к управлению версиями звучит хорошо, если ваши условия блокировки во всех случаях гарантируют, что набор ревизий для узлов в любой момент времени T представляет собой целостное состояние графа. Набор узлов и ревизий в T = {n0, n1, n2, n3} и одновременное изменение ревизий подграфов создадут головную боль при сохранении всего набора ревизий и узлов при интеграле T.

Как dfa Как показано выше , набор узлов и ревизий в какой-то момент представляет собой набор изменений всей структуры. Если он целостен, он представляет всю структуру в определенный момент времени.

Помните: Время,

2
ответ дан 5 December 2019 в 22:20
поделиться

Что ж, я подумал, что буду умен и погуглить несколько ключевых слов, чтобы найти литературу. Первым результатом ... был этот вопрос.

Так что на эту тему не так уж много! Интересный. Просто подумал, что поделюсь.

Эйден Белл и DFA дали очень обстоятельные ответы, поэтому я не буду пытаться их превзойти. :) Но сделаю одно наблюдение, касающееся качества графа DAG и одновременного доступа на запись. Возможно, это уже пришло вам в голову, но эй. :)

Вы можете разрешить параллельные потоки, не беспокоясь о том, что один из них перезапишет изменения другого, просто предполагая, что все время узел , населенный записывающим потоком, и все его дочерние элементы являются " заблокировано "этим конкретным потоком записи . Я считаю, что проще всего визуализировать это с помощью дерева (которое, очевидно, также является DAG). Любой поток записи в основном заблокировал конкретное поддерево, но теперь мы также можем сказать, что любые одноуровневые деревья или любые узлы-предки легко доступны для записи.

Более сложный DAG (где узел может иметь несколько родителей, в частности ) будет, по сути, иметь много перекрывающихся поддеревьев, и поэтому может быть не так много свободы, но правило все еще применяется: любой узел, который не заселен, или дочерний узел узла, населенный записывающим поток, можно считать разрешенным для записи.

Очевидно, что может быть много факторов, почему вышеупомянутая идея бесполезна, но если несколько потоков записи часто отклоняются в «разных» направлениях, это может облегчить некоторые из требований необходимо, чтобы сделать его потокобезопасным.

Надеюсь, это поможет!

-Агор

0
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: