Marking each node down before rolling restart

2010-09-29 Thread Justin Sanders
I looked through the documentation but couldn't find anything.  I was
wondering if there is a way to manually mark a node "down" in the cluster
instead of killing the cassandra process and letting the other nodes figure
out the node is no longer up.

The reason I ask is because we are having an issue when we perform rolling
restarts on the cluster.  Basically read requests that come in on other
nodes will block while they are waiting on the node that was just killed to
be marked down.  Before they realize the node is offline they will throw a
TimedOutException.

If I could mark the node being down ahead of time this timeout period could
be avoided.  Any help is appreciated.

Justin


Re: Marking each node down before rolling restart

2010-09-29 Thread Justin Sanders
It seems to be about 15 seconds after killing a node before the other nodes
report it being down.

We are running a 9 node cluster with RF=3, all reads and writes at quorum.
 I was making the same assumption you are, that an operation would complete
fine at quorum with only one node down since the other two nodes would be
able to respond.

Justin


On Wed, Sep 29, 2010 at 5:58 PM, Aaron Morton wrote:

> Ah, that was not exactly what you were after. I do not know how long it
> takes gossip / failure detector to detect a down node.
>
> In your case what is the CF you're using for reads and what is your RF? The
> hope would be that taking one node down at a time would leave enough server
> running to serve the request. AFAIK the coordinator will make a read request
> to the first node responsible for the row, and only ask for a digest  from
> the others. So there may be a case where it has to timeout reading from the
> first node before asking for the full data from the others.
>
> A hack solution may be to reduce the rpc_timeout_in_ms
>
> May need some adult supervision to answer this one.
>
> Aaron
>
> On 30 Sep, 2010,at 10:45 AM, Aaron Morton  wrote:
>
> Try nodetool drain
>
> Flushes all memtables for a node and causes the node to stop accepting
> write operations. Read operations will continue to work. This is typically
> used before upgrading a node to a new version of Cassandra.
> http://www.riptano.com/docs/0.6.5/utils/nodetool
>
> <http://www.riptano.com/docs/0.6.5/utils/nodetool>Aaron
>
>
> On 30 Sep, 2010,at 10:15 AM, Justin Sanders  wrote:
>
> I looked through the documentation but couldn't find anything.  I was
> wondering if there is a way to manually mark a node "down" in the cluster
> instead of killing the cassandra process and letting the other nodes figure
> out the node is no longer up.
>
> The reason I ask is because we are having an issue when we perform rolling
> restarts on the cluster.  Basically read requests that come in on other
> nodes will block while they are waiting on the node that was just killed to
> be marked down.  Before they realize the node is offline they will throw a
> TimedOutException.
>
> If I could mark the node being down ahead of time this timeout period could
> be avoided.  Any help is appreciated.
>
> Justin
>
>


Re: Querying by date range when using TimeUUIDType ColumnFamily?

2010-04-27 Thread Justin Sanders
You're going to have to build TimeUUIDs based on the date range you are
scanning.  Problem is most UUID libraries build version 1 UUIDs based on the
current time.  I was able to get this working in Python by changing the
library to allow me to pass in a time.  This isn't safe for creating unique
UUIDs but works fine for doing slices.

Justin


On Tue, Apr 27, 2010 at 11:28 AM, Ed Anuff  wrote:

> Assuming a ColumnFamily with a CompareWith of TimeUUIDType, is it possible
> to call get_slice with an arbitrary date range?  How would valid values for
> the start and finish attributes of the slice range be constructed?
>
> Thanks
> Ed
>