design/17503: cite Auerbach et al for "double barrier"
Change-Id: I0d3e971ba1a1ffc92b450dc35b57fa6d4cb78d15
Reviewed-on: https://go-review.googlesource.com/31664
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/design/17503-eliminate-rescan.md b/design/17503-eliminate-rescan.md
index a974217..3d800f2 100644
--- a/design/17503-eliminate-rescan.md
+++ b/design/17503-eliminate-rescan.md
@@ -2,7 +2,7 @@
Author(s): Austin Clements, Rick Hudson
-Last updated: 2016-10-18
+Last updated: 2016-10-21
Discussion at https://golang.org/issue/17503.
@@ -124,8 +124,11 @@
allocates black for other reasons, so no change to allocation is
necessary.
-To our knowledge, the hybrid barrier is a novel approach to concurrent
-GC.
+The hybrid write barrier is equivalent to the "double write barrier"
+used in the adaptation of Metronome used in the IBM real-time Java
+implementation [Auerbach '07]. In that case, the garbage collector was
+incremental, rather than concurrent, but ultimately had to deal with
+the same problem of tightly bounded stop-the-world times.
### Reasoning
@@ -911,6 +914,12 @@
## References
+[Auerbach '07] J. Auerbach, D. F. Bacon, B. Blainey, P. Cheng, M.
+Dawson, M. Fulton, D. Grove, D. Hart, and M. Stoodley. Design and
+implementation of a comprehensive real-time java virtual machine. In
+*Proceedings of the 7th ACM & IEEE international conference on
+Embedded software (EMSOFT '07)*, 249–258, 2007.
+
[Dijkstra '78] E. W. Dijkstra, L. Lamport, A. J. Martin, C. S.
Scholten, and E. F. Steffens. On-the-fly garbage collection: An
exercise in cooperation. *Communications of the ACM*, 21(11), 966–975,