[ 
https://issues.apache.org/jira/browse/CASSANDRA-1982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12981499#action_12981499
 ] 

Yang Yang commented on CASSANDRA-1982:
--------------------------------------

it's probably useful to enable the user to do 2 modes of snapshot:
synchronous and async.

in synchronous snapshot, the snapshot() call should wait for the memtable 
flushing Callable object to finish, for all ColumnFamilyStores.

the async mode is just the current implementation.


the semantic for synchronous snapshot means that the resulting snapshot dir 
will contain all the data in the system (including memtable and sstables) ***at 
the exact moment *** that the user invoked snapshot()

the semantic for async snapshot is that the information contained in the 
snapshot dir is
from ***some moment **** between when the user invoked snapshot() and when the 
last time an sstable was fully dumped

> When creating snapshots, flush isn't required to finish before the snapshots 
> are created
> ----------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-1982
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1982
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.6.9, 0.7.0
>            Reporter: Joaquin Casares
>            Priority: Minor
>
> Right now ColumnFamilyStore.snapshot() works by doing a flush() first, then 
> do symlinks on the sstables.
> But flush() is actually submitted through Executor, so by the time the code 
> reaches the symlink part, the flush() may have not happened at all.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to