ons 2010-06-16 klockan 10:09 +0200 skrev Kinkie: > Actually the thing I found the most interesting is that it suggests to > use page-aware object placements so that big structures traversal is > easier on the VM.
The optimization he discusses is mainly to make the operation more optimal in precense of paging (swap) activity in the accessed data. For as long as we keep cache index access and request processing in the same thread any paging activity in the index data is very bad news. When there is no paging activity the optimization is slightly slower than normal recommended designs. The hash lookup design we have isn't very bad in terms of performance, but requires hash size to be tuned to the actual number of objects and adapts badly to deviations from the expected number of objects. The big killer for us is that we are accessing the big cache index from the same thread doing all network I/O which means that as soon there is any paging activity we get hit very bad, and paging activity is normally expected when the system is under pressure which not is also the same time when it would hurt us most bad.. so yes our design on that isn't very well suited for VM systems but it not that much about algorithm but more general application design. Regards Henrik
