You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Joaquin Casares (JIRA)" <ji...@apache.org> on 2011/01/13 20:37:48 UTC

[jira] Created: (CASSANDRA-1982) When creating snapshots, flush doesn't have to return before the snapshots are created

When creating snapshots, flush doesn't have to return 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.7.0, 0.6.9
            Reporter: Joaquin Casares
            Priority: Minor


Right now ColumnFamilyStore.snapshot() works by doing a flush() first, then do symlinks on the sstables.

But he 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.


[jira] Commented: (CASSANDRA-1982) When creating snapshots, flush isn't required to finish before the snapshots are created

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-1982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12981543#action_12981543 ] 

Jonathan Ellis commented on CASSANDRA-1982:
-------------------------------------------

(ColumnFamilyStore.snapshot)

> 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.


[jira] Updated: (CASSANDRA-1982) When creating snapshots, flush isn't required to finish before the snapshots are created

Posted by "Joaquin Casares (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-1982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joaquin Casares updated CASSANDRA-1982:
---------------------------------------

    Description: 
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.

  was:
Right now ColumnFamilyStore.snapshot() works by doing a flush() first, then do symlinks on the sstables.

But he flush() is actually submitted through Executor, so by the time the code reaches the symlink part, the flush() may have not happened at all.

        Summary: When creating snapshots, flush isn't required to finish before the snapshots are created  (was: When creating snapshots, flush doesn't have to return before the snapshots are created)

> 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.


[jira] Resolved: (CASSANDRA-1982) When creating snapshots, flush isn't required to finish before the snapshots are created

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-1982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis resolved CASSANDRA-1982.
---------------------------------------

    Resolution: Invalid

if you look at the code, snapshot calls forceBlockingFlush, which does what its name says and blocks for the flush to complete.

> 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.


[jira] Commented: (CASSANDRA-1982) When creating snapshots, flush isn't required to finish before the snapshots are created

Posted by "Yang Yang (JIRA)" <ji...@apache.org>.
    [ 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.