Package org.apache.cassandra.db.view
Class ViewManager
- java.lang.Object
-
- org.apache.cassandra.db.view.ViewManager
-
public class ViewManager extends java.lang.Object
ManagesView
's for a singleColumnFamilyStore
. All of the views for that table are created when this manager is initialized. The main purposes of the manager are to provide a single location for updates to be vetted to see whether they update any viewsupdatesAffectView(Collection, boolean)
, provide locks to prevent multiple updates from creating incoherent updates in the viewacquireLockFor(int)
, and to affect change on the view. TODO: I think we can get rid of that class. For addition/removal of view by names, we could move it Keyspace. And we not sure it's even worth keeping viewsByName as none of the related operation are performance sensitive so we could find the view by iterating over the CFStore.viewManager directly. For the lock, it could move to Keyspace too, but I don't remmenber why it has to be at the keyspace level and if it can be at the table level, maybe that's where it should be.
-
-
Constructor Summary
Constructors Constructor Description ViewManager(Keyspace keyspace)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.util.concurrent.locks.Lock
acquireLockFor(int keyAndCfidHash)
void
addView(ViewMetadata definition)
void
buildAllViews()
void
dropView(java.lang.String name)
Stops the building of the specified view, no-op if it isn't building.TableViews
forTable(TableId id)
View
getByName(java.lang.String name)
void
reload(boolean buildAllViews)
boolean
updatesAffectView(java.util.Collection<? extends IMutation> mutations, boolean coordinatorBatchlog)
-
-
-
Constructor Detail
-
ViewManager
public ViewManager(Keyspace keyspace)
-
-
Method Detail
-
updatesAffectView
public boolean updatesAffectView(java.util.Collection<? extends IMutation> mutations, boolean coordinatorBatchlog)
-
reload
public void reload(boolean buildAllViews)
-
addView
public void addView(ViewMetadata definition)
-
dropView
public void dropView(java.lang.String name)
Stops the building of the specified view, no-op if it isn't building.- Parameters:
name
- the name of the view
-
getByName
public View getByName(java.lang.String name)
-
buildAllViews
public void buildAllViews()
-
forTable
public TableViews forTable(TableId id)
-
acquireLockFor
public static java.util.concurrent.locks.Lock acquireLockFor(int keyAndCfidHash)
-
-