Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Won't Fix
    • Fix Version/s: None
    • Component/s: Examples
    • Labels:
      None
    • Environment:

      RHEL 4.X, 5.X

      Description

      Motivations:
      =========
      Cassandra is a distributed system. This nature makes it harder for developers and testers to rapidly develop and test applications without proper hardware and network setups. It is particular hard for testing, when we want to know how system behaves under stressed network conditions, hardware changes and failures, and many other scenarios. The motivations of the building a Cassandra simulator is to provide a tool to simplify procedures to achieve above needs.

      Requirements:
      ===========
      Simulator is a separate project from Canssandra main project. It does not insert and/or modify any code in Cassandra main project, rather it operates as an additional service in Cassandra node(See enclosed doc for details). Simulator can be started in two modes: Simulated mode and "pure" Cassandra mode. The design Requirements of the simulator are:

      • To simulate multiple node operations within single linux box
      • To simulate Hardware conditions, such as adding new nodes, node out of service, etc.
      • To simulate network conditions, message delays, drops, etc.
      • To carry out read/write operations at the simulated environment
      • To provide APIs to access logging information
      1. simulator.zip.gz
        86 kB
        Wei Li
      2. simulatorDoc.zip.gz
        620 kB
        Wei Li

        Activity

        Hide
        Jonathan Ellis added a comment -

        This is interesting work but I don't think it makes sense to maintain it in tree. It would probably find a better home on github.

        Show
        Jonathan Ellis added a comment - This is interesting work but I don't think it makes sense to maintain it in tree. It would probably find a better home on github.
        Hide
        Jonathan Ellis added a comment -

        This is very different – there's a doc .gz there with a Word explanation.

        Show
        Jonathan Ellis added a comment - This is very different – there's a doc .gz there with a Word explanation.
        Hide
        Ryan King added a comment -

        Has this been obsoleted by the YCSB?

        Show
        Ryan King added a comment - Has this been obsoleted by the YCSB?
        Hide
        Wei Li added a comment -

        Stu,

        Thank you very much for your email. Sorry for the late reply.

        Yes, the Cassandra simulator is a quite chunk of code. It is mostly the result of two persons' work, jim Yang (sjimmyyang@yahoo.com) and myself. Both of us currently are Yahoo employees.

        Our initially intention is that the developers can develop their unit tests on simulator without complication of hardware and network setups. Eventually we want to be integrated into company's CI testing framework. But we are not there yet.

        Currently, the Cassandra simulator can simulate multiple Cassandra nodes in same box (with multiple jvms). it can simulate adding and taking down nodes, and simulate network hiccups by delaying message deliveries among the nodes.

        Although sometimes we would be busier than other time with our projects, yes we would be happy to support and maintain the code whenever we have time.

        Best.

        Wei

        Show
        Wei Li added a comment - Stu, Thank you very much for your email. Sorry for the late reply. Yes, the Cassandra simulator is a quite chunk of code. It is mostly the result of two persons' work, jim Yang (sjimmyyang@yahoo.com) and myself. Both of us currently are Yahoo employees. Our initially intention is that the developers can develop their unit tests on simulator without complication of hardware and network setups. Eventually we want to be integrated into company's CI testing framework. But we are not there yet. Currently, the Cassandra simulator can simulate multiple Cassandra nodes in same box (with multiple jvms). it can simulate adding and taking down nodes, and simulate network hiccups by delaying message deliveries among the nodes. Although sometimes we would be busier than other time with our projects, yes we would be happy to support and maintain the code whenever we have time. Best. Wei
        Hide
        Stu Hood added a comment -

        Wei: thank you very much for your contribution! This is quite a chunk of code, and it will be a while before any of the Casandra committers fully understand it.

        Was your intention that the simulator should be merged as a system-test framework for Cassandra (to run along with the unit tests in continuous integration), or that it be merged to contrib/, where people who were interested in researching Cassandra's distribution could run experiments manually?

        Also, if this code were to be merged, would you be able to continue maintaining it?

        Thanks again!

        Show
        Stu Hood added a comment - Wei: thank you very much for your contribution! This is quite a chunk of code, and it will be a while before any of the Casandra committers fully understand it. Was your intention that the simulator should be merged as a system-test framework for Cassandra (to run along with the unit tests in continuous integration), or that it be merged to contrib/, where people who were interested in researching Cassandra's distribution could run experiments manually? Also, if this code were to be merged, would you be able to continue maintaining it? Thanks again!
        Hide
        Wei Li added a comment -

        1). Simulator source code
        2). Simulator documentations

        Show
        Wei Li added a comment - 1). Simulator source code 2). Simulator documentations

          People

          • Assignee:
            Unassigned
            Reporter:
            Wei Li
          • Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development