I am trying to motivate, define, and implement $K$-atomic snapshot object. To this aim, I first give some basic definitions on atomic snapshot object and $K$-atomic object. Then, I will give my understanding of $K$-atomic snapshot object and present my problems.

**Atomic Snapshot Object:**

In the paper ["Atomic Snapshots of Shared Memory"][1], the authors consider atomic snapshot objects —— shared objects partitioned into segments. For the **single-writer atomic snapshot object**, each segment belongs to a different processor and is written separately, but all segments can be read at once by any processor. 

> 
The sequence specification of an atomic snapshot object provides two kinds of operations for each user $i, 0 \le i \le n-1$:

 > - A $scan_i$ invocation whose response is $return_i(V)$, where $V$ is an $n$-element vector called a *view* with a value for each segment, and
 > - An $update_i(d)$ invocation whose response is $ack_i$, where $d$ is the data to be written to $p_i's$ segment.

> A sequence of $scan$ and $update$ operations satisfies the *atomic snapshot semantics* means that, for each $V$ returned by a $scan$ operation, $V[i]$ equals the value written by the latest preceding $update_i$ operation, for all $i$.

**$K$-Atomic Object:**

In the paper [On the Availability of Non-strict Quorum Systems][2], $K$-atomic object is introduced. Different from the classical **atomic object** (see [Sharing Memory Robustly in Message-Passing Systems][3]), in a system with $K$-atomic semantics,

> there exists an order of the operations that is consistent with real time order and such that the values returned by a read operation is equal to *one of the values written by the last $K$* preceding writes in the order.

**Problem 1: How to Define $K$-Atomic Snapshot Object?**

$K$-atomic object is a relaxed version (or a generalization) of classical atomic object, which is actually $1$-atomic object.

So based on the two concepts of $K$-atomic object and atomic snapshot object, can we define, in a reasonable manner, the $K$-atomic snapshot object?

*One possible trial is to relax the timeliness of the snapshot:*

> A sequence of $scan$ and $update$ operations satisfies the *$K$-atomic snapshot semantics* means that, for each $V$ returned by a $scan$ operation, 

 > - $V[i]$ equals one of the values written by the last $K$ preceding $update_{i}$s, for all $i$, and
 
 > - there exists some time before the $scan$ operation at which $V[i]$ equals the value written by its latest preceding $update_{i}$, for all $i$.

**Problem 2: Do you know or can you figure out some other reasonable definitions of $K$-atomic snapshot object?**

Any comments, any suggestions, and any related literature references are welcomed.
Also, I appreciate the idea of implementation of the $K$-atomic snapshot object defined above myself (if you think it is OK). 

  [1]: http://dl.acm.org/citation.cfm?id=153724.153741
  [2]: http://www.cs.utexas.edu/~lorenzo/papers/disc05.pdf
  [3]: http://www.cse.huji.ac.il/course/2004/dist/p124-attiya.pdf