Files
scylladb/tests
Tomasz Grabiec d8768257fe row_cache: Make stronger guarantees in clear/invalidate
Correctness of current uses of clear() and invalidate() relies on fact
that cache is not populated using readers created before
invalidation. Sstables are first modified and then cache is
invalidated. This is not guaranteed by current implementation
though. As pointed out by Avi, a populating read may race with the
call to clear(). If that read started before clear() and completed
after it, the cache may be populated with data which does not
correspond to the new sstable set.

To provide such guarantee, invalidate() variants were adjusted to
synchronize using _populate_phaser, similarly like row_cache::update()
does.

Conflicts:
    database.cc

1.1 Rebase: Glauber Costa <glauber@scylladb.com>

Rebase notes: the conflicts are due to unrelated changes in how we
invoke the flush functions for streaming memtables. Those changes
are definitely not needed by 1.1
2016-06-14 12:03:00 -04:00
..