On Aug 10, 2013, at 7:49 PM, Leif Hedstrom <zw...@apache.org> wrote: > > On Aug 10, 2013, at 6:15 PM, "Alan M. Carroll" <a...@network-geographics.com> > wrote: > >> All; >> >> I have added a new section to the documentation, 'arch', for "Architecture". >> Currently it contains just my writings on the cache implementation but >> others are of course STRONGLY encouraged to contribute. This should not be >> API level stuff but design / architecture stuff that explores the concepts, >> designs, and interactions of components of ATS. I think it is also a good >> place for writing up design suggestions for future implementation. > > Very cool. A few questions on the cache tiering:
I'm a little uncertain on this: "When a request is received from a client volume assignment is done in parallel for each tier quality". This seems like it could be potentially expensive. For example, an object that is in all cache tiers would have to examine that object in the cache before saying it's "readable" or not, right? So lets say an object is in SSD and rotational disk, and the Oracle queries this in parallel, it'll cause us to become bound by the speed of the rotational disk, no? The risk of course is that you kill the I/O on the slow rotational disk long before the SSD. (An SSD can do maybe 20,000 lookups /sec, a rotational disk can do 300/sec, yet you theoretically hammer both with the same IOPS). It feels like these lookups should be done sequential, or at least staggered, such that a fast device (e.g. SSD) has a chance to short circuit the lookup process. Maybe the quality number can be used as a hint to how fast that tier is: high 16-bit becomes a metric value indicating response time in micro seconds, low 16-bit is the priority when response times are "similar". Cheers, -- leif