private void replaceReaders(Collection<SSTableReader> oldSSTables, Collection<SSTableReader> newSSTables, boolean notify)
    {
        View currentView, newView;
        do
        {
            currentView = view.get();
            newView = currentView.replace(oldSSTables, newSSTables);
        }
        while (!view.compareAndSet(currentView, newView));

        if (!oldSSTables.isEmpty() && notify)
            notifySSTablesChanged(oldSSTables, newSSTables, OperationType.UNKNOWN);

        for (SSTableReader sstable : newSSTables)
            sstable.setTrackedBy(this);

        Refs.release(Refs.selfRefs(oldSSTables));
    }
private void replaceReaders ( Collection < SSTableReader > oldSSTables , Collection < SSTableReader > newSSTables , boolean notify ) { View currentView , newView ; do { currentView = view . get ( ) ; newView = currentView . replace ( oldSSTables , newSSTables ) ; } while ( ! view . compareAndSet ( currentView , newView ) ) ; if ( ! oldSSTables . isEmpty ( ) && notify ) notifySSTablesChanged ( oldSSTables , newSSTables , OperationType . UNKNOWN ) ; for ( SSTableReader sstable : newSSTables ) sstable . setTrackedBy ( this ) ; Refs . release ( Refs . selfRefs ( oldSSTables ) ) ; }
A special kind of replacement for SSTableReaders that were cloned with a new index summary sampling level (see
SSTableReader.cloneWithNewSummarySamplingLevel and CASSANDRA-5519).  This does not mark the old reader
as compacted.
@param oldSSTables replaced readers
@param newSSTables replacement readers