You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2009/04/13 17:31:14 UTC

[jira] Created: (CASSANDRA-79) Multi-table support

Multi-table support
-------------------

                 Key: CASSANDRA-79
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
             Project: Cassandra
          Issue Type: New Feature
            Reporter: Jonathan Ellis
             Fix For: 0.3


Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-add-CommitLog-test.txt, 0002-update-comments-perform-some-renames-r-m-unused-code.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt, 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt, 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0006-cleanup-of-table.open.txt, 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0008-add-multitable-test.txt
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Chris Goffinet updated CASSANDRA-79:
------------------------------------

    Attachment: 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch

Optimized imports

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-Rebased-multitable-from-trunk-June-11-2009.patch, 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Michael Greene updated CASSANDRA-79:
------------------------------------

    Component/s: Core

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-goffinet-s-patch-modified-to-build-but.txt, 0002-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0003-cleanup-of-table.open.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0004-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0005-add-multitable-test.txt, 0006-remove-table_-from-CommitLog-with-test.txt, 0007-fix-more-null-table-parameters.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment: 0008-add-multitable-test.txt
                0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt
                0006-cleanup-of-table.open.txt
                0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt
                0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt
                0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt
                0002-update-comments-perform-some-renames-r-m-unused-code.txt
                0001-CASSANDRA-79-add-CommitLog-test.txt

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-add-CommitLog-test.txt, 0001-Rebased-multitable-from-trunk-June-11-2009.patch, 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0002-update-comments-perform-some-renames-r-m-unused-code.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt, 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt, 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0006-cleanup-of-table.open.txt, 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0008-add-multitable-test.txt, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

I would vote for system table.

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

I see a bug already. :)

As I mentioned (way) above, we want to have Row serialize the table name into the commitlog.  CommitLog shouldn't have a table_ variable; it will contain rows from lots of tables.

Creating a test that breaks this will need to force the log replay code to run.  Haven't looked to see how hard that is.

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-add-CommitLog-test.txt, 0001-Rebased-multitable-from-trunk-June-11-2009.patch, 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0002-update-comments-perform-some-renames-r-m-unused-code.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt, 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt, 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0006-cleanup-of-table.open.txt, 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0008-add-multitable-test.txt, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

Posted by "Chris Goffinet (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-79?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12722827#action_12722827 ] 

Chris Goffinet commented on CASSANDRA-79:
-----------------------------------------

+1

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-goffinet-s-patch-modified-to-build-but.txt, 0002-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0003-cleanup-of-table.open.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0004-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0005-add-multitable-test.txt, 0006-remove-table_-from-CommitLog-with-test.txt, 0007-fix-more-null-table-parameters.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Hudson commented on CASSANDRA-79:
---------------------------------

Integrated in Cassandra #85 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/85/])
    use cloneMeShallow where appropriate.  patch by jbellis for 


> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0001-CASSANDRA-79-add-CommitLog-test.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Chris Goffinet updated CASSANDRA-79:
------------------------------------

    Attachment: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch

Reverted and provided a better diff

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-Rebased-multitable-from-trunk-June-11-2009.patch, 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

i am working on the commitlog changes.

in the meantime can you make your ide not mess with import ordering and resubmit this?  (project settings -> code style -> import in intellij)

order should be

java

org.apache.log4j
org.apache.commons
org.junit

everything else

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-Rebased-multitable-from-trunk-June-11-2009.patch, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Hudson commented on CASSANDRA-79:
---------------------------------

Integrated in Cassandra #117 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/117/])
    fix more null table parameters.
patch by jbellis; reviewed by goffinet for 
remove table_ from CommitLog and add multitable tests.
patch by jbellis; reviewed by goffinet for 
fix columnfamily id generation in the face of multiple tables and rip out TableMetadata serialization, which only complicates things needlessly.

patch by jbellis; reviewed by goffinet for 
cleanup of table.open.

patch by jbellis; reviewed by goffinet for 
multitable support.

fix CF table dependencies, making CommitLogTest pass.  Also fixes CASSANDRA-188 in passing.

fix tablename being null bugs by always parsing tablename from filename.

fix last part of SequenceFile.

patch by jbellis; reviewed by goffinet for 
Pass and write table parameter as needed throughout the codebase to add multitable support.
(Many places cheated and just assumed that tables.get(0) was the only table.)
Patch builds but does not yet pass tests.

Patch by goffinet; reviewed by jbellis for 


> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-goffinet-s-patch-modified-to-build-but.txt, 0002-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0003-cleanup-of-table.open.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0004-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0005-add-multitable-test.txt, 0006-remove-table_-from-CommitLog-with-test.txt, 0007-fix-more-null-table-parameters.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0001-Rebased-multitable-from-trunk-June-11-2009.patch)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-add-CommitLog-test.txt, 0002-update-comments-perform-some-renames-r-m-unused-code.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt, 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt, 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0006-cleanup-of-table.open.txt, 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0008-add-multitable-test.txt
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0008-add-multitable-test.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: multitable_v1.patch)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-add-CommitLog-test.txt, 0002-update-comments-perform-some-renames-r-m-unused-code.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt, 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt, 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0006-cleanup-of-table.open.txt, 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0008-add-multitable-test.txt
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Chris Goffinet updated CASSANDRA-79:
------------------------------------

    Attachment: multitable_v1.patch

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

Log entries are just Rows, right?  So adding table name there fixes that part.

the header stuff is a bit more complex.  (you mean CL.clHeader_ right?)  I don't think we want to actually add fields there -- wouldn't just making the id generator global (so that the id would still uniquely identify a CF in any table) instead of per-table solve the updateHeader problem?

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Priority: Critical  (was: Major)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

There is a little more to do but this will do for a start I think.

The remaining parts are (1) move the system columnfamilies into their own Table (they are initialized in DatabaseDescriptor.storeMetadata) and (2) testing.  I added a note to http://wiki.apache.org/cassandra/HowToContribute linking the Hudson coverage reports and explaining how to build one manually.  Potential problem areas for this ticket are the CommitLog classes and (once we migrate them) the code dealing with system tables, particularly Hints. 

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-add-CommitLog-test.txt, 0001-Rebased-multitable-from-trunk-June-11-2009.patch, 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0002-update-comments-perform-some-renames-r-m-unused-code.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt, 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt, 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0006-cleanup-of-table.open.txt, 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0008-add-multitable-test.txt, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0006-cleanup-of-table.open.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

Posted by "Chris Goffinet (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-79?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712256#action_12712256 ] 

Chris Goffinet commented on CASSANDRA-79:
-----------------------------------------

Here is some draft work myself and phatduck (Arin) did. Its up on my multitable branch on github. We optimized imports so you will see some java imports removed. I also added some TODO's for places needing additional work.

http://github.com/lenn0x/Cassandra/commit/3f218993957280c3510633564c2cc8c42b951fd7

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment: 0006-remove-table_-from-CommitLog-with-test.txt
                0005-add-multitable-test.txt
                0004-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt
                0003-cleanup-of-table.open.txt
                0002-fix-CF-table-dependencies-making-CommitLogTest-pass.txt
                0001-CASSANDRA-79-goffinet-s-patch-modified-to-build-but.txt

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-goffinet-s-patch-modified-to-build-but.txt, 0002-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0003-cleanup-of-table.open.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0004-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0005-add-multitable-test.txt, 0006-remove-table_-from-CommitLog-with-test.txt
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

>From what I have seen the underlying mechanics for multiple table support are already there.  We just need to make all the places that assume there is only one for convenience, stop doing so.

DatabaseDescriptor parses and stores the results of the config xml.  Right now the shortcut for "get the table name" is DD.getTables().get(0).  I suggest auditing the calls to getTables() and see if any are actually using it for more than that.  (I don't think there are.)  Then get rid of it so nobody is tempted to do that anymore and start fixing them.

There are two classes of fixes.  Client API fixes and internal uses.  The client ones are probably easier in general.  What should happen is, the client gives cassandra a table name as part of any API call, and that is passed to one of the handler methods (e.g., ReadVerbHandler, RowMutationVerbHandler).  Those will have the table name as part of the Command object they read off the wire.  So just start including the table name down the call stack.

The internal ones are a bit harder but only a little.  Often an object will need the table name in a place where its caller does not know the table either, e.g. ColumnFamily.getColumnComparator.  Here you'll need to add an instance variable containing either the table name or a reference to the parent Table object.  Adding factory methods  to Table such as Table.getColumnFamily may be convenient.

Some of DatabaseDescriptor itself needs to stop assuming only one table.  This will not be much code.  applicationColumnFamilies_ is one place.  at the very least that needs another layer of Map<tablename, appCFs> like tableToCFMetaDataMap_ does.  If you're more ambitious you could try moving those into the Table object as additional cleanup.

Please leave any questions here in case anyone else wants to help. :)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Issue Comment Edited: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis edited comment on CASSANDRA-79 at 5/18/09 7:52 PM:
------------------------------------------------------------------

>From what I have seen the underlying mechanics for multiple table support are already there.  We just need to make all the places that assume there is only one for convenience, stop doing so.

DatabaseDescriptor parses and stores the results of the config xml.  Right now the shortcut for "get the table name" is DD.getTables().get(0).  I suggest auditing the calls to getTables() and see if any are actually using it for more than that.  (I don't think there are.)  Then start fixing them.  When you are done, get rid of it so nobody is tempted to be lazy like that again. :)

There are two classes of fixes.  Client API fixes and internal uses.  The client ones are probably easier in general.  What should happen is, the client gives cassandra a table name as part of any API call, and that is passed to one of the handler methods (e.g., ReadVerbHandler, RowMutationVerbHandler).  Those will have the table name as part of the Command object they read off the wire.  So just start including the table name down the call stack.

The internal ones are a bit harder but only a little.  Often an object will need the table name in a place where its caller does not know the table either, e.g. ColumnFamily.getColumnComparator.  Here you'll need to add an instance variable containing either the table name or a reference to the parent Table object.  Adding factory methods  to Table such as Table.getColumnFamily may be convenient.

Some of DatabaseDescriptor itself needs to stop assuming only one table.  This will not be much code.  applicationColumnFamilies_ is one place.  at the very least that needs another layer of Map<tablename, appCFs> like tableToCFMetaDataMap_ does.  If you're more ambitious you could try moving those into the Table object as additional cleanup.

Please leave any questions here in case anyone else wants to help. :)

      was (Author: jbellis):
    From what I have seen the underlying mechanics for multiple table support are already there.  We just need to make all the places that assume there is only one for convenience, stop doing so.

DatabaseDescriptor parses and stores the results of the config xml.  Right now the shortcut for "get the table name" is DD.getTables().get(0).  I suggest auditing the calls to getTables() and see if any are actually using it for more than that.  (I don't think there are.)  Then get rid of it so nobody is tempted to do that anymore and start fixing them.

There are two classes of fixes.  Client API fixes and internal uses.  The client ones are probably easier in general.  What should happen is, the client gives cassandra a table name as part of any API call, and that is passed to one of the handler methods (e.g., ReadVerbHandler, RowMutationVerbHandler).  Those will have the table name as part of the Command object they read off the wire.  So just start including the table name down the call stack.

The internal ones are a bit harder but only a little.  Often an object will need the table name in a place where its caller does not know the table either, e.g. ColumnFamily.getColumnComparator.  Here you'll need to add an instance variable containing either the table name or a reference to the parent Table object.  Adding factory methods  to Table such as Table.getColumnFamily may be convenient.

Some of DatabaseDescriptor itself needs to stop assuming only one table.  This will not be much code.  applicationColumnFamilies_ is one place.  at the very least that needs another layer of Map<tablename, appCFs> like tableToCFMetaDataMap_ does.  If you're more ambitious you could try moving those into the Table object as additional cleanup.

Please leave any questions here in case anyone else wants to help. :)
  
> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment: 0007-fix-more-null-table-parameters.patch

patch 07 fixes a few more cases where a null table was sneaking in and causing trouble.  (caught by system tests.)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-goffinet-s-patch-modified-to-build-but.txt, 0002-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0003-cleanup-of-table.open.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0004-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0005-add-multitable-test.txt, 0006-remove-table_-from-CommitLog-with-test.txt, 0007-fix-more-null-table-parameters.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

Oh, and for objects that are serialized (via a manual serializer() method, with very few exceptions Cassandra does not use JDK serialization) you'll need to include the extra tableName field in de/serialization.  ColumnFamily is the obvious one here.  Maybe one or two more.

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

I'm done with 208 for now and I can look at the commitlog stuff.  Can you rebase this against head?  Sorry about the conflicts.

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Chris Goffinet updated CASSANDRA-79:
------------------------------------

    Attachment: 0001-Rebased-multitable-from-trunk-June-11-2009.patch

Rebased from trunk per request from jbellis

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-Rebased-multitable-from-trunk-June-11-2009.patch, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

agreed, one log file per node is the only sane way to do things or you would require a disk per table to avoid seeks on the CL devices.

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

moved preliminary patches into CASSANDRA-237.

Renumbered the others (new number = old number - 3) and added the new 0006-remove-table_-from-CommitLog-with-test.txt fixing the bug I mentioned in the previous comment.

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-goffinet-s-patch-modified-to-build-but.txt, 0002-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0003-cleanup-of-table.open.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0004-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0005-add-multitable-test.txt, 0006-remove-table_-from-CommitLog-with-test.txt
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

Posted by "Jun Rao (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-79?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12710785#action_12710785 ] 

Jun Rao commented on CASSANDRA-79:
----------------------------------

We also need to add the table name to each log entry.

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis commented on CASSANDRA-79:
-----------------------------------------

08
    add multitable test

07
    fix id generation for multiple tables and rip out TableMetadata serialization, which only complicates things need (this is the actual commitlog change part!)

06
    cleanup of table.open

05
    fix CF table dependencies, making CommitLogTest pass.  Also fixes CASSANDRA-188 in passing.

    fix table being null bugs by always parsing tablename from filename

    fix last part of SF

04
    Chris Goffinet's patch with minor changes to get it to build

03
    switch from byte[] to BitSet in CommitLogHeader

02
    update comments, perform some renames, r/m unused code

01
    CASSANDRA-79 add CommitLog test


> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0001-CASSANDRA-79-add-CommitLog-test.txt, 0001-Rebased-multitable-from-trunk-June-11-2009.patch, 0002-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0002-update-comments-perform-some-renames-r-m-unused-code.txt, 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch, 0003-switch-from-byte-to-BitSet-in-CommitLogHeader.txt, 0004-Chris-Goffinet-s-patch-with-minor-changes-to-get-it-to.txt, 0005-fix-CF-table-dependencies-making-CommitLogTest-pass.txt, 0006-cleanup-of-table.open.txt, 0007-fix-id-generation-for-multiple-tables-and-rip-out-Tabl.txt, 0008-add-multitable-test.txt, multitable_v1.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

Posted by "Jun Rao (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-79?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12711756#action_12711756 ] 

Jun Rao commented on CASSANDRA-79:
----------------------------------

We need a field in the CLHeader for each CF in each table. Yes, the mapping from CF to field has to be unique.

Another issue. What happens to those system CFs (hinted handoff, system, etc)? Should they be put in each table or should they be put in a "system" table?


> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Commented: (CASSANDRA-79) Multi-table support

Posted by "Jun Rao (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-79?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12710768#action_12710768 ] 

Jun Rao commented on CASSANDRA-79:
----------------------------------

We need to think a bit more about CommitLog. Do we create a log file per table or do we have a log file for all tables? The latter seems to make more sense. However, the CommitLog Header has a couple of fields per CF. This needs to be expanded to per CF per table.


> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

    Attachment:     (was: 0002-update-comments-perform-some-renames-r-m-unused-code.txt)

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.4
>
>         Attachments: 0003-OptimizedImports-multitable-from-trunk-June-15-2009.patch
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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


[jira] Updated: (CASSANDRA-79) Multi-table support

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

Jonathan Ellis updated CASSANDRA-79:
------------------------------------

        Fix Version/s:     (was: 0.3)
                       0.4
    Affects Version/s: trunk

> Multi-table support
> -------------------
>
>                 Key: CASSANDRA-79
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-79
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: trunk
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> Cassandra has preliminary support for multiple tables (namespaces / sets of ColumnFamilies) but a lot of the code assumes there is only one.  Multitable support is important for allowing multiple applications to run on a single cluster.  It's also useful to cleanly separate "system" columnfamilies from application data.

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