Shared snapshot objects とは

分散コンピューティングでは、共有スナップショットオブジェクトは、複数のスレッドまたはプロセス間で共有されるデータ構造の一種です。多くのタスクでは、メモリの状態を一貫して見ることができるデータ構造を持つことが重要です。実際には、個々のレジスタに格納された値はこのプロセス中いつでも変更できるため、1つの共有レジスタにアクセスするだけで、メモリの一貫した状態を得ることはできません。この問題を解決するために、スナップショットオブジェクトはn個のコンポーネントのベクトルを格納し、update(i、v)はi番目のコンポーネントの値をvに変更し、scan()はすべてのn個のコンポーネントに格納された値を返します。スナップショットオブジェクトは、アトミックシングルライタマルチリーダ共有レジスタを使用して構築できます。
一般に、シングルライターマルチリーダー(swmr)スナップショットオブジェクトとマルチライターマルチリーダー(mwmr)スナップショットオブジェクトは区別されます。 swmrスナップショット・オブジェクトでは、コンポーネントの数はプロセスの数と一致し、1つのプロセスPiのみがメモリ位置iに書き込むことができ、他のすべてのプロセスはメモリを読み取ることができます。対照的に、mwmrスナップショットオブジェクトでは、すべてのプロセスがメモリのすべての位置に書き込むことができ、メモリも読み取ることができます。