Details

    • Type: Task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 0.4
    • Component/s: None
    • Labels:
      None

      Description

      To make it easier to navigate the tickets we should create components in jira.

        Activity

        Hide
        johanoskarsson Johan Oskarsson added a comment -

        Which components do we want to add?
        I'll leave it up to someone who is more familiar with the codebase then me, but perhaps some of these would make it?

        cql
        test
        commitlog
        memtable
        gossiper

        Show
        johanoskarsson Johan Oskarsson added a comment - Which components do we want to add? I'll leave it up to someone who is more familiar with the codebase then me, but perhaps some of these would make it? cql test commitlog memtable gossiper
        Hide
        jbellis Jonathan Ellis added a comment -

        I don't have a good feel for what the components should be yet, either.

        Definitely Service [client interaction], past that I am not sure if it makes more sense to divide by class (Memtable, SSTable, CommitLog) or operation (read, write, bootstrap, gossip, ...)

        And a lot of our issues have to do with making cassandra suck less to run, such as "Log runtime stats for analysis by ops," "HashingStrategy does not default to RANDOM," and a bunch of resolved ones. I can't think of a good name for that category...

        Show
        jbellis Jonathan Ellis added a comment - I don't have a good feel for what the components should be yet, either. Definitely Service [client interaction] , past that I am not sure if it makes more sense to divide by class (Memtable, SSTable, CommitLog) or operation (read, write, bootstrap, gossip, ...) And a lot of our issues have to do with making cassandra suck less to run, such as "Log runtime stats for analysis by ops," "HashingStrategy does not default to RANDOM," and a bunch of resolved ones. I can't think of a good name for that category...
        Hide
        sandeep_tata Sandeep Tata added a comment -

        Here's a list of components that makes sense to me:

        1. Cassandra DB (all the code in the cassandra.db and cassandra.io packages – we could split this in two)
        2. Ring Management Logic (dht, gms, locator)
        3. Messaging (cassandra.net.* )
        4. APIs (thrift code, related code in cassandra.service)
        5. Utilities and Tools
        6. CQL
        7. Other

        Comments?

        Show
        sandeep_tata Sandeep Tata added a comment - Here's a list of components that makes sense to me: 1. Cassandra DB (all the code in the cassandra.db and cassandra.io packages – we could split this in two) 2. Ring Management Logic (dht, gms, locator) 3. Messaging (cassandra.net.* ) 4. APIs (thrift code, related code in cassandra.service) 5. Utilities and Tools 6. CQL 7. Other Comments?
        Hide
        johanoskarsson Johan Oskarsson added a comment -

        +1 for Sandeep's suggestion, looks like a great start

        Show
        johanoskarsson Johan Oskarsson added a comment - +1 for Sandeep's suggestion, looks like a great start
        Hide
        johanoskarsson Johan Oskarsson added a comment -

        Assigning to Jonathan who can add these

        Show
        johanoskarsson Johan Oskarsson added a comment - Assigning to Jonathan who can add these
        Hide
        jbellis Jonathan Ellis added a comment -

        As I said in IRC, I'm not in a hurry to categorize since I think a poor set of categories is worse than none.

        Sandeep's suggestion is a good start but my feeling is out of our slightly over 100 issues we have 90 for category 1, 10 for category 4, and a handful for the others.

        What I think would be useful of a histogram of svn log -v by file; that would be more useful than trying to come up with categories on an ad-hoc basis.

        Show
        jbellis Jonathan Ellis added a comment - As I said in IRC, I'm not in a hurry to categorize since I think a poor set of categories is worse than none. Sandeep's suggestion is a good start but my feeling is out of our slightly over 100 issues we have 90 for category 1, 10 for category 4, and a handful for the others. What I think would be useful of a histogram of svn log -v by file; that would be more useful than trying to come up with categories on an ad-hoc basis.
        Hide
        sandeep_tata Sandeep Tata added a comment -

        True, we're probably fine for the near future without components.

        The higher level comment is, over the last couple of months, much of the work seems to have gone into fixing the db node (adding remove support, fixing data-loss bugs, new get apis, refactoring the read path some). I'm guessing the histogram will change when we start working with the messaging layer

        Show
        sandeep_tata Sandeep Tata added a comment - True, we're probably fine for the near future without components. The higher level comment is, over the last couple of months, much of the work seems to have gone into fixing the db node (adding remove support, fixing data-loss bugs, new get apis, refactoring the read path some). I'm guessing the histogram will change when we start working with the messaging layer
        Hide
        jbellis Jonathan Ellis added a comment -

        I tried out something along the lines of that histogram: http://spyced.blogspot.com/2009/04/automatic-project-structure-inference.html

        Here's my stab at categories, partly based on that:

        1. project infrastructure
        2. storage layer (sstable, memtable, sequencefile, etc.)
        3. client api
        4. read logic
        5. ring management (partitioner, dht, gms, etc.)
        6. tools
        7. other

        Show
        jbellis Jonathan Ellis added a comment - I tried out something along the lines of that histogram: http://spyced.blogspot.com/2009/04/automatic-project-structure-inference.html Here's my stab at categories, partly based on that: 1. project infrastructure 2. storage layer (sstable, memtable, sequencefile, etc.) 3. client api 4. read logic 5. ring management (partitioner, dht, gms, etc.) 6. tools 7. other
        Hide
        johanoskarsson Johan Oskarsson added a comment -

        Looks good to me, perhaps add a docs component?

        Show
        johanoskarsson Johan Oskarsson added a comment - Looks good to me, perhaps add a docs component?
        Hide
        sandeep_tata Sandeep Tata added a comment -

        +1 to adding a separate docs component.

        Could we expand "read logic" to include "read/write logic" ? (I know there is a lot more logic around reads than writes right now, but I'm guessing you meant read/write logic)

        Show
        sandeep_tata Sandeep Tata added a comment - +1 to adding a separate docs component. Could we expand "read logic" to include "read/write logic" ? (I know there is a lot more logic around reads than writes right now, but I'm guessing you meant read/write logic)
        Hide
        urandom Eric Evans added a comment -

        4 months later and thus far we've never had much more than 50 issues outstanding at any one time, and to the best of my knowledge, there haven't been any reporting use cases that would have benefited from the proposed components.

        I'm almost inclined to say that we should continue for the foreseeable future without any components, and close this ticket.

        However, I will propose the following components instead:

        • documentaton
        • tools (cli, nodeprobe, etc)
        • infrastructure (start scripts, build.xml, etc)
        • site/wiki
        • storage/core (basically, everything else)

        I believe this list (or one like it) is short enough, and simple enough, that it can be properly used without becoming onerous, and that it sufficiently categorizes things to make it easy for contributors to drill in on something that interests them.

        Show
        urandom Eric Evans added a comment - 4 months later and thus far we've never had much more than 50 issues outstanding at any one time, and to the best of my knowledge, there haven't been any reporting use cases that would have benefited from the proposed components. I'm almost inclined to say that we should continue for the foreseeable future without any components, and close this ticket. However, I will propose the following components instead: documentaton tools (cli, nodeprobe, etc) infrastructure (start scripts, build.xml, etc) site/wiki storage/core (basically, everything else) I believe this list (or one like it) is short enough, and simple enough, that it can be properly used without becoming onerous, and that it sufficiently categorizes things to make it easy for contributors to drill in on something that interests them.
        Hide
        euphoria Michael Greene added a comment -

        Tools, Core, Documentation & Site

        These three make sense to me. As Evan notes, there are usually very few issues in the queue. As Cassandra grows, I could see Tools or Core splitting as other people have them above. It'd be nice to just be done with this issue and if we ever have a specific problem with the organization in the future, make a new one.

        Show
        euphoria Michael Greene added a comment - Tools, Core, Documentation & Site These three make sense to me. As Evan notes, there are usually very few issues in the queue. As Cassandra grows, I could see Tools or Core splitting as other people have them above. It'd be nice to just be done with this issue and if we ever have a specific problem with the organization in the future, make a new one.
        Hide
        jbellis Jonathan Ellis added a comment -

        +1 tools, core, docs + site categories

        Show
        jbellis Jonathan Ellis added a comment - +1 tools, core, docs + site categories
        Hide
        urandom Eric Evans added a comment -

        +1 tools, core, docs + site categories

        Show
        urandom Eric Evans added a comment - +1 tools, core, docs + site categories
        Hide
        euphoria Michael Greene added a comment -

        Let's do it! Here's the breakdown at the moment, from what I can tell.
        Tools - 234, 252, 289, 292
        Docs & Site - 231
        Core - everything else outstanding.

        Show
        euphoria Michael Greene added a comment - Let's do it! Here's the breakdown at the moment, from what I can tell. Tools - 234, 252, 289, 292 Docs & Site - 231 Core - everything else outstanding.
        Hide
        jbellis Jonathan Ellis added a comment -

        created components & assigned open issues.

        Show
        jbellis Jonathan Ellis added a comment - created components & assigned open issues.

          People

          • Assignee:
            jbellis Jonathan Ellis
            Reporter:
            johanoskarsson Johan Oskarsson
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development