Dynamo: Amazon's Highly Available Key-value Store
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles, 2007 · paper · Computer science
Presents the design and implementation of Dynamo, Amazon's highly available key-value storage system for core services. To stay always available, it sacrifices consistency under some failures, using object versioning and application-assisted conflict resolution.
Checked: PDF from allthingsdistributed.com, fetched 4 Oct 2026. Page numbers are those of that PDF.
2 findings
Substance Sec. 6.4: client-driven coordination "decreases the average by 3 to 4 milliseconds", but Table 2 averages fall 3.9→1.55 ms (read) and 4.02→1.9 ms (write), i.e. by about 2.1-2.4 ms.
- p. 14 Section 6.4, paragraph after Table 2
decreases the average by 3 to 4 milliseconds
- p. 14 Table 2
3.9
- p. 14 Table 2
3.9 4.02 1.55 1.9
- p. 14 Table 2
3.9 4.02 ... 1.55 1.9
Only the authors can say what is right here.
Judge's note: Table 2 on p.14 shows server-driven averages of 3.9 and 4.02 ms and client-driven averages of 1.55 and 1.9 ms. The text points explicitly at the table ('As seen in the table'). The 99.9th-percentile claim ('at least 30 ms', i.e. 38.5 and 38.1) does match. The average-reduction claim does not. '3 to 4' matches the server-driven averages themselves.
Second check: another model agreed
Report a problem with this finding
Reference or label The Bigtable description in Section 3.2 cites "[2]" (Bernstein & Goodman, concurrency control), but Bigtable is reference [3] (Chang et al. 2006).
- p. 4 Section 3.2, final paragraph
allows applications to access their data using multiple attributes [2]
- p. 15 References
[2] Bernstein, P.A., and Goodman, N. An algorithm for concurrency control and recovery in replicated distributed databases.
- p. 15 References [2] and [3]
Chang, F., Dean, J., Ghemawat, S., Hsieh, W. C., Wallach
- p. 4 Section 3.2, Bigtable sentence
access their data using multiple attributes [2]
Judge's note: The page 4 image shows "...using multiple attributes [2]" in a sentence about Bigtable. In the page 15 reference list, [2] is Bernstein & Goodman 1984 and [3] is the Bigtable paper. A text search finds no in-text citation of [3] anywhere, so the citation is probably off by one.
Second check: another model agreed
Report a problem with this finding
23 minor (typos and the like; most checked by the judge only)
Wording Length of use is inconsistent: Intro "In the past year, Dynamo has been the underlying storage technology" and Conclusions "The production use of Dynamo for the past year", but 6.6 "Many Amazon internal services have used Dynamo for the past two years".
- p. 2 Introduction
In the past year, Dynamo has been the underlying storage technology
- p. 14 Section 6.6 Discussion
Many Amazon internal services have used Dynamo for the past two years
- p. 15 Section 7 Conclusions
The production use of Dynamo for the past year demonstrates
- p. 2 Introduction, paragraph 2
In the past year, Dynamo has been the underlying storage
Only the authors can say what is right here.
Judge's note: Checked all three passages in the images of pp.2, 14 and 15. The Introduction might refer only to core e-commerce services, but the Conclusions speak of production use in general and say one year, while 6.6 says two years. The paper does not reconcile the two periods, so only the authors can say which is right.
Second check: another model agreed
Report a problem with this finding
Wording Sec. 6.1 says buffering lowered "the 99.9th percentile latency by a factor of 5 during peak traffic ... (see Figure 5)"; in Figure 5 the direct-BDB peaks (~180 ms) are only about 3x the buffered values (~60 ms) at the same time.
- p. 11 Section 6.1
lowering the 99.9th percentile latency by a factor of 5 during peak traffic
- p. 10 Figure 5
direct BDB writes
- p. 10 Figure 5
Comparison of performance of 99.9th percentile latencies for buffered vs. non-buffered writes
Only the authors can say what is right here.
Judge's note: Read Figure 5 on p.10 by eye. The direct BDB writes reach about 180 ms at their highest spikes. Buffered writes stay around 55-70 ms through the peak period and are about 40 ms off-peak. A ratio of about 5 is not visible in the plot unless an isolated spike is compared with an off-peak buffered value. Because the values are read by eye, this is a query to the authors: what is the basis for 'factor of 5'?
Second check: another model agreed
Report a problem with this finding
Wording Sec. 6.1 says Figure 4 covers "a period of 30 days", but with "ticks in the x-axis correspond[ing] to 12 hours" the axis shows about 30 tick intervals (about 15 days) and about 15 diurnal cycles.
- p. 11 Section 6.1
during a period of 30 days
- p. 10 Figure 4 caption
The intervals between consecutive ticks in the x-axis correspond to 12 hours
Only the authors can say what is right here.
Judge's note: Corrected description. In the Figure 4 crop I count roughly 29-30 tick intervals across the x-axis, and the average-read line shows about 15 daily cycles. At 12 h per tick that is about 15 days, not 30. So either the text's '30 days' or the caption's tick spacing looks inconsistent. The tick count is approximate, so this goes to the authors. The reviewer's other points do not hold. The 'Dec. 2006' caption is not in conflict with the text. The 99.9th-percentile write line reads about 250 ms on the log scale, which is reasonably 'around 200 ms'.
Second check: another model agreed
Report a problem with this finding
Typo Subject descriptors list code D.4.2 twice: "D.4.2 [Operating Systems]: Storage Management; ... D.4.2 [Operating Systems]: Performance;"
- p. 1 Categories and Subject Descriptors
D.4.2 [Operating Systems]: Performance;
- p. 1 Categories and Subject Descriptors
D.4.2 [Operating Systems]: Performance
- p. 1
D.4.2 [Operating Systems]: Storage Management; D.4.5 [Operating Systems]: Reliability; D.4.2 [Operating Systems]: Performance;
Only the authors can say what is right here.
Judge's note: Rests on outside knowledge: in the ACM CCS 1998, Operating Systems/Performance is D.4.8. The page image (p.1) shows D.4.2 attached to both Storage Management and Performance. One code cannot stand for two different descriptors, so one of them is wrong. The correct code comes from outside the files.
Second check: none (judge only)
Report a problem with this finding
Typo Introduction para 1 states scalability twice: "to support continuous growth the platform needs to be highly scalable" and then "In addition, to support continuous growth, the platform needs to be highly scalable."
- p. 1 Section 1, first paragraph
In addition, to support continuous growth, the platform needs to be highly scalable.
Judge's note: The page 1 image shows both sentences in the same paragraph with nearly identical wording. The repetition is redundant.
Second check: none (judge only)
Report a problem with this finding
Typo "serves tens of millions customers at peak times" is missing 'of' ("tens of millions of customers").
- p. 1 Section 1, first sentence
tens of millions customers
- p. 1 Introduction, first sentence
serves tens of millions customers
- p. 1 1. Introduction, para 1
serves tens of millions customers at peak times
Judge's note: Seen in the page 1 image, first sentence of the Introduction.
Second check: none (judge only)
Report a problem with this finding
Typo "served tens of millions requests" is missing 'of'.
- p. 2 Section 1
served tens of millions requests
Judge's note: Seen in the page 2 image, Introduction paragraph on the Shopping Cart Service.
Second check: none (judge only)
Report a problem with this finding
Typo "resolves updated conflicts" should read "resolves update conflicts".
- p. 4 3.2
resolves updated
Judge's note: Seen in the page 4 image, Section 3.2. The word form is wrong.
Second check: none (judge only)
Report a problem with this finding
Typo The Figure 2 annotation says keys "in range (A,B)", while Section 4.3 uses half-open ranges "(A, B], (B, C], and (C, D]".
- p. 5 Figure 2 annotation
range (A,B)
- p. 6 Section 4.3
(A, B], (B, C], and (C, D]
Judge's note: The images of pp.5–6 confirm both notations. This looks like informal notation in the figure, but it does not match the text's interval convention.
Second check: none (judge only)
Report a problem with this finding
Typo Double full stop in Section 4.4: "does not have the latest updates.. If there are no failures".
- p. 6 Section 4.4, first paragraph
updates.. If there are no failures
Judge's note: The page 6 image shows two periods.
Second check: none (judge only)
Report a problem with this finding
Typo 'principle' is used for 'principal': "The principle advantage of consistent hashing" (4.2) and "Dynamo's principle design goal" (6.1).
- p. 6 Section 4.2, first paragraph
The principle advantage of consistent hashing
- p. 11 Section 6.1
Dynamo’s principle design goal
Judge's note: Both instances are visible in the images of pp.6 and 11. Section 4.7 spells it correctly: "The principal advantage of Merkle tree".
Second check: none (judge only)
Report a problem with this finding
Typo Words are missing in "The number of virtual nodes that a node is responsible can decided based on its capacity" (should be 'responsible for can be decided').
- p. 6 Section 4.2, third bullet
that a node is responsible can decided based on its capacity
- p. 6 4.2 bullets
The number of virtual nodes that a node is responsible can decided based on its capacity
Judge's note: Seen in the page 6 image, third bullet of Section 4.2.
Second check: none (judge only)
Report a problem with this finding
Typo "by examine their vector clocks" should read "by examining their vector clocks".
- p. 6 Section 4.4, vector clocks paragraph
by examine their vector clocks
Judge's note: Seen in the page 6 image, Section 4.4.
Second check: none (judge only)
Report a problem with this finding
Typo In Figure 3, D5's clock reads "D5 ([Sx,3],[Sy,1][Sz,1])" with no comma between [Sy,1] and [Sz,1].
- p. 7 Figure 3
D5 ([Sx,3],[Sy,1][Sz,1])
Judge's note: The page 7 image shows the missing comma. All other clocks in the figure separate entries with commas, and the text gives [(Sx, 3), (Sy, 1), (Sz, 1)].
Second check: none (judge only)
Report a problem with this finding
Typo Stray word in "has durably written the key it to its local store".
- p. 8 Section 4.6
durably written the key it to its local store
Judge's note: Seen in the page 8 image, Section 4.6. The word 'it' is redundant.
Second check: none (judge only)
Report a problem with this finding
Typo Section 4.9: "some existing nodes no longer have to some of their keys" is missing a verb (e.g. 'store' or 'handle').
- p. 9 Section 4.9
some existing nodes no longer have to some of their keys
Judge's note: The crop of p.9 shows the text exactly as quoted: 'no longer have / to some of their keys'. A verb is missing.
Second check: none (judge only)
Report a problem with this finding
Typo Figure 4 x-axis label reads "(hourly plot of latencies during our peak seson in Dec. 2006)"; 'seson' should be 'season'.
- p. 10 Figure 4 x-axis label
peak seson in Dec. 2006
- p. 10 Figure 4, x-axis label
(hourly plot of latencies during our peak seson in Dec. 2006)
Judge's note: Page 10 image and crop C021-b both show 'seson' in the Figure 4 axis label. It is part of the figure graphic, which is why the text layer does not have it.
Second check: none (judge only)
Report a problem with this finding
Typo Figure 8 y-axis label reads "Efficieny (mean load/max load)"; should be 'Efficiency'.
- p. 13 Figure 8 y-axis label
Efficieny (mean load/max load)
- p. 10 Figure 4 x-axis label
peak seson in Dec. 2006
Judge's note: The 'Efficieny' label is visible on the p.13 figure image. The 'seson' item also listed here is the same defect as C017.
Second check: none (judge only)
Report a problem with this finding
Typo Sec. 6.2: "by a value a less than a certain threshold (here 15%)" contains a stray 'a'.
- p. 11 Section 6.2
by a value a less than a certain threshold
- p. 11
by a value a less than a certain threshold (here 15%)
Judge's note: The p.11 image shows 'by a value a less than a certain threshold (here 15%)'.
Second check: none (judge only)
Report a problem with this finding
Typo Sec. 6.1: "Dynamo's principle design goal" should be 'principal design goal'.
- p. 11 6.1
Dynamo’s principle design goal
Judge's note: The p.11 image shows 'principle design goal'. It is a misspelling of 'principal'.
Second check: none (judge only)
Report a problem with this finding
Typo Sec. 6.6: "tune their instance based on their needs.." has a doubled full stop.
- p. 14 Section 6.6
based on their needs..
Judge's note: The double period is visible in the p.14 image.
Second check: none (judge only)
Report a problem with this finding
Typo Reference [15] ends "Berkeley, CA, 12-12.." (double full stop), and ref [14] has "Beehive: O(1)lookup" (missing space).
- p. 15 Reference [15]
Berkeley, CA, 12-12..
- p. 15 Ref [14]
Beehive: O(1)lookup
Judge's note: The p.15 crops show both defects as quoted.
Second check: none (judge only)
Report a problem with this finding
Typo Conclusions use "an eventual-consistent storage system" while the introduction uses "eventually-consistent storage system".
- p. 15 7. Conclusions
an eventual-consistent storage system
Judge's note: The p.15 image shows 'eventual-consistent'. The text layer shows 'eventually-consistent' in the introduction (line 125) and 'eventually consistent' elsewhere. This is a cosmetic inconsistency.
Second check: none (judge only)