lp:~measurement-factory/squid/3p2-rock

Created by Alex Rousskov and last modified

Unofficial Squid code implementing SMP Rock Store: http://wiki.squid-cache.org/Features/RockStore
Meant for v3.2 submission.

Get this branch:
bzr branch lp:~measurement-factory/squid/3p2-rock
Members of Measurement Factory can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Measurement Factory
Project:
Squid
Status:
Development

Recent revisions

11415. By Alex Rousskov

Merged from parent (trunk r12075, v3.2.0.15+).

11414. By Alex Rousskov

Do not cache partially loaded entries in shared mem cache (and then serve them)

When handling a conditional request, Squid may load the beginning of a cached
object from disk, realize that the client has the same fresh copy, and respond
with 304 Not Modified. After that, Squid was checking whether the partially
loaded object should be kept in shared memory cache (if enabled). There were
no checks preventing memory caching of the partially loaded object.

Later, partially cached objects were served to clients, resulting in truncated
responses. I believe this happens because shared memory cache does not keep
all the StoreEntry data (just like a disk cache does not do that) so the fact
that only a part of the object was available was lost.

Same as trunk r12040.

11413. By Alex Rousskov

Do not swap out swapped out objects.

I noticed that sometimes Squid would start swapping out an entry that was
recently loaded from disk and was still on disk. That wastes disk
resources (at best).

The old StoreEntry::mayStartSwapOut() code assumed that when swap_status is
not SWAPOUT_NONE it is SWAPOUT_WRITING, but SWAPOUT_WRITING is impossible
after recent StoreEntry::swapOut() modifications because mayStartSwapOut() is
only called when we are not swappingOut() already. SWAPOUT_DONE is possible.

Same as trunk r12039.

11412. By Alex Rousskov

A workaround to prevent DeferredRead-related coredumps at shutdown.

DeferredReads are cleaned after fd_table is freed and set to NULL,
leading to coredumps on fd_table[fd] accesses.

11411. By Alex Rousskov

Merged from parent (trunk r11997, ~v3.2.0.15).

11410. By Alex Rousskov

Merged from parent (trunk r11994, v3.2.0.14+).

11409. By Alex Rousskov

Merged from parent (trunk r11794, v3.2.0.13+).

11408. By Dmitry Kurochkin

Remove entryLimitAllowed() TODO from RockSwapDirRr::run().

RockSwapDirRr::run() calls sd->entryLimitAllowed() when sd does not
have a map yet, which causes entryLimitAllowed() to use zero for the
lower limit. But that OK so we can remove the TODO.

11407. By Dmitry Kurochkin

Warn about Rock cache_dir disk space waste.

In some configurations Rock cache_dir may hit the maximum entry limit.
In that case a significant disk space may be wasted. Before recent
SMP-related changes, there was code to warn the user about such
situations. The patch resurrects that code, adjusting it as needed to
match the current realities.

11406. By Dmitry Kurochkin

Check IPC I/O pages limits in Rock store only when using a disker.

Shared memory pages are used only when Rock is running with diskers.
Otherwise, Blocking IO is used and there is no need to check for IPC
I/O pages limits.

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers