Re: Disk configuration in new cluster node

2012-09-18 Thread Casey Deccio
On Tue, Sep 18, 2012 at 1:54 AM, aaron morton aa...@thelastpickle.comwrote:

 each with several disks having large capacity, totaling 10 - 12 TB.  Is
 this (another) bad idea?

 Yes. Very bad.
 If you had 6TB on average system with spinning disks you would measure
 duration of repairs and compactions in days.

 If you want to store 12 TB of data you will need more machines.



Would it help if I partitioned the computing resources of my physical
machines into VMs?  For example, I put four VMs on each of three virtual
machines, each with a dedicated 2TB drive.  I can now have four tokens in
the ring and a RF of 3.  And of course, I can arrange them into a way that
makes the most sense.  Is this getting any better, or am I missing the
point?

Casey


Re: Disk configuration in new cluster node

2012-09-17 Thread Casey Deccio
On Mon, Sep 17, 2012 at 1:19 AM, aaron morton aa...@thelastpickle.comwrote:

  4 drives for data and 1 drive for commitlog,

 How are you configuring the drives ? It's normally best to present one big
 data volume, e.g. using raid 0, and put the commit log on say the system
 mirror.


Given the advice to use a single RAID 0 volume, I think that's what I'll
do.  By system mirror, you are referring to the volume on which the OS is
installed?  Should the volume with the commit log also have multiple disks
in a RAID 0 volume?  Alternatively, would a RAID 1 setup be reasonable for
the system volume/OS, so the system itself can be resilient to disk
failure, or would that kill commit performance?

Any preference to hardware RAID 0 vs. using something like mdadm?

A word of warning. If you put more than 300GB to 400GB per node you may end
 experience some issues such as repair, compaction or disaster recovery
 taking a long time. These are simply soft limits that provide a good rule
 of thumb for HDD based systems with 1 GigE networking.


Hmm.  My hope was to be able to run a minimal number of nodes and maximize
their capacity because it doesn't make sense in my case to build or
maintain a large cluster.  I wanted to run a two-node setup (RF=1, RCL=ONE,
WCL=ALL), each with several disks having large capacity, totaling 10 - 12
TB.  Is this (another) bad idea?

Casey


Disk configuration in new cluster node

2012-09-14 Thread Casey Deccio
I'm building a new cluster (to replace the broken setup I've written
about in previous posts) that will consist of only two nodes.  I understand
that I'll be sacrificing high availability of writes if one of the nodes
goes down, and I'm okay with that.  I'm more interested in maintaining high
consistency and high read availability.  So I've decided to use a
write-level consistency of ALL and read-level consistency of ONE.

My first question is about the drives in this setup.  If I initially set up
the system with, say, 4 drives for data and 1 drive for commitlog, and
later I decide to add more capacity to the node by adding more drives for
data (adding the new data directory entries in cassandra.yaml), will the
node balance out the load on the drives, or is it agnostic to usage of
drives underlying data directories?

My second question has to do with RAID striping.  Would it be more useful
to stripe the disk with the commitlog or the disks with the data?  Of
course, with a single striped volume for data directories, it would be more
difficult to add capacity to the node later, as I've suggested above.

Casey


adding node to cluster

2012-08-30 Thread Casey Deccio
All,

I'm adding a new node to an existing cluster that uses
ByteOrderedPartitioner.  The documentation says that if I don't configure a
token, then one will be automatically generated to take load from an
existing node.  What I'm finding is that when I add a new node, (super)
column lookups begin failing (not sure if it was the row lookup failing or
the supercolumn lookup failing), and I'm not sure why.  I assumed that
while the existing node is transitioning data to the new node the affected
rows and (super) columns would still be found in the right place.  Any idea
why these lookups might be failing?  When I decommissioned the the new
node, the lookups began working again.  Any help is appreciated.

Regards,
Casey


Re: adding node to cluster

2012-08-30 Thread Casey Deccio
On Thu, Aug 30, 2012 at 11:21 AM, Rob Coli rc...@palominodb.com wrote:

 On Thu, Aug 30, 2012 at 10:18 AM, Casey Deccio ca...@deccio.net wrote:
  I'm adding a new node to an existing cluster that uses
  ByteOrderedPartitioner.  The documentation says that if I don't
 configure a
  token, then one will be automatically generated to take load from an
  existing node.
  What I'm finding is that when I add a new node, (super)
  column lookups begin failing (not sure if it was the row lookup failing
 or
  the supercolumn lookup failing), and I'm not sure why.

 1) You almost never actually want BOP.
 2) You never want Cassandra to pick a token for you. IMO and the
 opinion of many others, the fact that it does this is a bug. Specify a
 token with initial_token.
 3) You never want to use Supercolumns. The project does not support
 them but currently has no plan to deprecate them. Use composite row
 keys.
 4) Unless your existing cluster consists of one node, you almost never
 want to add only a single new node to a cluster. In general you want
 to double it.

 In summary, you are Doing It just about as Wrong as possible... but on
 to your actual question ... ! :)


Well, at least I'm consistent :)  Thanks for the hints.  Unfortunately,
when I first brought up my system--with the goal of getting it up
quickly--I thought BOP and Supercolumns were the way to go.  Plus, the
small cluster of nodes I was using was on a hodgepodge of hardware.  I've
since had a chance to think somewhat about redesigning and rearchitecting,
but it seems like there's no easy way to convert it properly.  Step one
was to migrate everything over to a single dedicated node on reasonable
hardware, so I could begin the process, which brought me to the issue I
initially posted about.  But the problem is that this is a live system, so
data loss is an issue I'd like to avoid.


 In what way are the lookups failing? Is there an exception?


No exception--just failing in that the data should be there, but isn't.

Casey


cassandra upgrade to 1.1 - migration problem

2012-05-15 Thread Casey Deccio
I recently upgraded from cassandra 1.0.10 to 1.1.  Everything worked fine
in one environment, but after I upgraded in another, I can't find my
keyspace.  When I run, e.g., cassandra-cli with 'use KeySpace;' It tells me
that the keyspace doesn't exist.  In the log I see this:

ERROR [MigrationStage:1] 2012-05-15 11:39:48,216
AbstractCassandraDaemon.java (line 134) Exception in thread
Thread[MigrationStage:1,5,main]java.lang.AssertionError
at
org.apache.cassandra.db.DefsTable.updateKeyspace(DefsTable.java:441)
at
org.apache.cassandra.db.DefsTable.mergeKeyspaces(DefsTable.java:339)
at org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:269)
at
org.apache.cassandra.db.DefsTable.mergeRemoteSchema(DefsTable.java:248)
at
org.apache.cassandra.service.MigrationManager$MigrationTask.runMayThrow(MigrationManager.java:416)
at
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)

I can see that the data I would expect still seems to be in the new place
(/var/lib/cassandra/data/App/ColFamily/App-DomainName-*) on all nodes.

What am I missing?

Thanks,
Casey


Re: cassandra upgrade to 1.1 - migration problem

2012-05-15 Thread Casey Deccio
Here's something new in the logs:

ERROR 12:21:09,418 Exception in thread Thread[SSTableBatchOpen:2,5,main]
java.lang.RuntimeException: Cannot open
/var/lib/cassandra/data/system/Versions/system-Versions-hc-35 because
partitioner does not match org.apache.cassandra.dht.ByteOrderedPartitioner
at
org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:164)
at
org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:224)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Casey

On Tue, May 15, 2012 at 12:08 PM, Casey Deccio ca...@deccio.net wrote:

 I recently upgraded from cassandra 1.0.10 to 1.1.  Everything worked fine
 in one environment, but after I upgraded in another, I can't find my
 keyspace.  When I run, e.g., cassandra-cli with 'use KeySpace;' It tells me
 that the keyspace doesn't exist.  In the log I see this:

 ERROR [MigrationStage:1] 2012-05-15 11:39:48,216
 AbstractCassandraDaemon.java (line 134) Exception in thread
 Thread[MigrationStage:1,5,main]java.lang.AssertionError
 at
 org.apache.cassandra.db.DefsTable.updateKeyspace(DefsTable.java:441)
 at
 org.apache.cassandra.db.DefsTable.mergeKeyspaces(DefsTable.java:339)
 at
 org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:269)
 at
 org.apache.cassandra.db.DefsTable.mergeRemoteSchema(DefsTable.java:248)
 at
 org.apache.cassandra.service.MigrationManager$MigrationTask.runMayThrow(MigrationManager.java:416)
 at
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
 at
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
 at
 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
 at java.util.concurrent.FutureTask.run(FutureTask.java:166)
 at
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
 at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
 at java.lang.Thread.run(Thread.java:636)

 I can see that the data I would expect still seems to be in the new place
 (/var/lib/cassandra/data/App/ColFamily/App-DomainName-*) on all nodes.

 What am I missing?

 Thanks,
 Casey



Re: cassandra upgrade to 1.1 - migration problem

2012-05-15 Thread Casey Deccio
cassandra.yaml on all nodes had ByteOrderedPartitioner with both the
previous version and upgraded version.

That being said, when I first started up cassandra after upgrading  (with
the updated .yaml, including ByteOrderedPartitioner) all nodes in the ring
appeared to be up.  But the load they carried was minimal (KB, as opposed
to GB in the previous version), and the keyspace didn't exist.  Then when I
attempted to restart the daemon on each to see if it would help, but
starting up failed on each with the partition error.

Casey

On Tue, May 15, 2012 at 12:59 PM, Oleg Dulin oleg.du...@liquidanalytics.com
 wrote:

 Did you check cassandra.yaml to make sure partitioner there matches what
 was in your old cluster ?

 Regards,
 Oleg Dulin
 Please note my new office #: 732-917-0159

 On May 15, 2012, at 3:22 PM, Casey Deccio wrote:

 Here's something new in the logs:

 ERROR 12:21:09,418 Exception in thread Thread[SSTableBatchOpen:2,5,main]
 java.lang.RuntimeException: Cannot open
 /var/lib/cassandra/data/system/Versions/system-Versions-hc-35 because
 partitioner does not match org.apache.cassandra.dht.ByteOrderedPartitioner
 at
 org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:164)
 at
 org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:224)
 at
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
 at
 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
 at java.util.concurrent.FutureTask.run(FutureTask.java:138)
 at
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 at java.lang.Thread.run(Thread.java:662)

 Casey

 On Tue, May 15, 2012 at 12:08 PM, Casey Deccio ca...@deccio.net wrote:

 I recently upgraded from cassandra 1.0.10 to 1.1.  Everything worked fine
 in one environment, but after I upgraded in another, I can't find my
 keyspace.  When I run, e.g., cassandra-cli with 'use KeySpace;' It tells me
 that the keyspace doesn't exist.  In the log I see this:

 ERROR [MigrationStage:1] 2012-05-15 11:39:48,216
 AbstractCassandraDaemon.java (line 134) Exception in thread
 Thread[MigrationStage:1,5,main]java.lang.AssertionError
 at
 org.apache.cassandra.db.DefsTable.updateKeyspace(DefsTable.java:441)
 at
 org.apache.cassandra.db.DefsTable.mergeKeyspaces(DefsTable.java:339)
 at
 org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:269)
 at
 org.apache.cassandra.db.DefsTable.mergeRemoteSchema(DefsTable.java:248)
 at
 org.apache.cassandra.service.MigrationManager$MigrationTask.runMayThrow(MigrationManager.java:416)
 at
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
 at
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
 at
 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
 at
 java.util.concurrent.FutureTask.run(FutureTask.java:166)at
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
 at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
 at java.lang.Thread.run(Thread.java:636)

 I can see that the data I would expect still seems to be in the new place
 (/var/lib/cassandra/data/App/ColFamily/App-DomainName-*) on all nodes.

 What am I missing?

 Thanks,
 Casey






Re: cassandra upgrade to 1.1 - migration problem

2012-05-15 Thread Casey Deccio
On Tue, May 15, 2012 at 5:41 PM, Dave Brosius dbros...@mebigfatguy.comwrote:

 The replication factor for a keyspace is stored in the
 system.schema_keyspaces column family.

 Since you can't view this with cli as the server won't start, the only way
 to look at it, that i know of is to use the

 sstable2json tool on the *.db file for that column family...

 So for instance on my machine i do

 ./sstable2json /var/lib/cassandra/data/**system/schema_keyspaces/**
 system-schema_keyspaces-ia-1-**Data.db

 and get


 {
 7374726573735f6b73: [[durable_writes,true,**1968197311980145],
 [name,stress_ks,**1968197311980145], [strategy_class,org.apache.**
 cassandra.locator.**SimpleStrategy,**1968197311980145],
 [strategy_options,{\**replication_factor\:\3\},**
 1968197311980145]]

 It's likely you don't have a entry from replication_factor.


Yep, I checked the system.schema_keyspaces ColumnFamily, and there was no
replication_factor value, as you suspected.  But the dev cluster that
worked after upgrade did have that value, so it started up okay.
Apparently pre-1.1 was less picky about its presence.


 Theoretically i suppose you could embellish the output, and use
 json2sstable to fix it, but I have no experience here, and would get the
 blessings of datastax fellas, before proceeding.


Actually, I went ahead and took a chance because I had already completely
offline for several hours and wanted to get things back up.  I did what you
suggested and added the replication_factor value to the json returned from
sstable2json and imported it using json2sstable.  Fortunately I had the dev
cluster values to use as a basis.  I started things up, and it worked like
a champ.  Thanks!

Casey


Re: NullPointerException on upgradesstables

2012-03-01 Thread Casey Deccio
On Thu, Mar 1, 2012 at 2:39 AM, aaron morton aa...@thelastpickle.comwrote:

 I am guessing you are running low on disk space. Can you check and try to
 free some up ?


Okay, I've freed some up and am trying again.


 Looks like a bug in CompactionTask.execute() see
 https://issues.apache.org/jira/browse/CASSANDRA-3985

 Hope that helps.


Yes, thanks.

Casey


Re: can't find rows

2012-03-01 Thread Casey Deccio
On Thu, Mar 1, 2012 at 9:33 AM, aaron morton aa...@thelastpickle.comwrote:

 What RF were you using and had you been running repair regularly ?


RF 1 *sigh*.  Waiting until I have more/better resources to use RF  1.
 Hopefully soon.

In the mean time... Oddly (to me), when I removed the most recently added
node, all my rows re-appeared, but were only up-to-date as of a 10 days ago
(a few days before I added the node).  None of the supercolumns since then
show up.  But when I look at the sstable files on the different nodes, I
see large files with timestamps in between that date and today's, which
makes me think the data is still there.  Also, if I re-add the troublesome
new node (not having run cleanup), all rows are again inaccessible until I
again decommission it.

Casey


can't find rows

2012-02-29 Thread Casey Deccio
I recently had to do some shuffling with one of my cassandra nodes because
it was running out of disk space.  I did a few things in the process, and
I'm not sure in the end which caused my problem.  First I added a second
file path to the data directory in cassandra.yaml.  Things still worked
fine after this, as far as I could tell.  Shortly after this, however, I
took down the node and rsync'd the data from both data directories, as well
as commitlogs, to an external drive.  I then shut down the machine,
replaced the hard drives with bigger drives, and re-installed the OS.  I
re-created the data directories, rsync'd the data and commitlogs back over
from the external drive, and started up cassandra, re-adding it to the
ring.  When it came up, all of my rows were missing for one columnfamily
and nearly all my rows were missing for another--or at least that's what it
looks like, based on walking the rows.  I tried scrubbing each of the
nodes.  One of them had insufficient disk space (yes, this seems to be a
recurring problem) for scrub, so I did upgradesstables instead, and that
one is still in progress.  So far the scrub/upgradesstables hasn't seemed
to help.  But in the log messages created during scrub/upgradesstables it
shows realistic numbers (i.e., in terms of the rows that existed before
this ordeal) created in each new sstable.  Also, the loads shown when I run
nodetool ring still reflects the numbers with the complete set of rows.
That's encouraging, but I can't seem to access these phantom rows.  Please
help!

Thanks,
Casey


Re: can't find rows

2012-02-29 Thread Casey Deccio
On Wed, Feb 29, 2012 at 5:25 AM, Casey Deccio ca...@deccio.net wrote:

 I recently had to do some shuffling with one of my cassandra nodes because
 it was running out of disk space.  I did a few things in the process, and
 I'm not sure in the end which caused my problem.  First I added a second
 file path to the data directory in cassandra.yaml.  Things still worked
 fine after this, as far as I could tell.  Shortly after this, however, I
 took down the node and rsync'd the data from both data directories, as well
 as commitlogs, to an external drive.  I then shut down the machine,
 replaced the hard drives with bigger drives, and re-installed the OS.  I
 re-created the data directories, rsync'd the data and commitlogs back over
 from the external drive, and started up cassandra, re-adding it to the
 ring.  When it came up, all of my rows were missing for one columnfamily
 and nearly all my rows were missing for another--or at least that's what it
 looks like, based on walking the rows.  I tried scrubbing each of the
 nodes.  One of them had insufficient disk space (yes, this seems to be a
 recurring problem) for scrub, so I did upgradesstables instead, and that
 one is still in progress.  So far the scrub/upgradesstables hasn't seemed
 to help.  But in the log messages created during scrub/upgradesstables it
 shows realistic numbers (i.e., in terms of the rows that existed before
 this ordeal) created in each new sstable.  Also, the loads shown when I run
 nodetool ring still reflects the numbers with the complete set of rows.
 That's encouraging, but I can't seem to access these phantom rows.  Please
 help!


I neglected to mention that I'm running cassandra 1.0.7.

Thanks,
Casey


NullPointerException on upgradesstables

2012-02-29 Thread Casey Deccio
Using cassandra 1.0.7, I got the following, as I was trying to rebuild my
sstables:

$ nodetool -h localhost upgradesstables
Error occured while upgrading the sstables for keyspace MyKeySpace
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at
java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at
org.apache.cassandra.db.compaction.CompactionManager.performAllSSTableOperation(CompactionManager.java:203)
at
org.apache.cassandra.db.compaction.CompactionManager.performSSTableRewrite(CompactionManager.java:219)
at
org.apache.cassandra.db.ColumnFamilyStore.sstablesRewrite(ColumnFamilyStore.java:995)
at
org.apache.cassandra.service.StorageService.upgradeSSTables(StorageService.java:1648)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
at
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
at
com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
at
com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
at
com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
at
javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at java.io.File.init(File.java:222)
at
org.apache.cassandra.db.ColumnFamilyStore.getTempSSTablePath(ColumnFamilyStore.java:641)
at
org.apache.cassandra.db.ColumnFamilyStore.getTempSSTablePath(ColumnFamilyStore.java:652)
at
org.apache.cassandra.db.ColumnFamilyStore.createCompactionWriter(ColumnFamilyStore.java:1888)
at
org.apache.cassandra.db.compaction.CompactionTask.execute(CompactionTask.java:151)
at
org.apache.cassandra.db.compaction.CompactionManager$4.perform(CompactionManager.java:229)
at
org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:182)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
... 3 more

Any help?

Regards,
Casey


Re: can't find rows

2012-02-29 Thread Casey Deccio
On Wed, Feb 29, 2012 at 5:29 AM, Casey Deccio ca...@deccio.net wrote:

 On Wed, Feb 29, 2012 at 5:25 AM, Casey Deccio ca...@deccio.net wrote:

 I recently had to do some shuffling with one of my cassandra nodes
 because it was running out of disk space.  I did a few things in the
 process, and I'm not sure in the end which caused my problem.  First I
 added a second file path to the data directory in cassandra.yaml.  Things
 still worked fine after this, as far as I could tell.  Shortly after this,
 however, I took down the node and rsync'd the data from both data
 directories, as well as commitlogs, to an external drive.  I then shut down
 the machine, replaced the hard drives with bigger drives, and re-installed
 the OS.  I re-created the data directories, rsync'd the data and commitlogs
 back over from the external drive, and started up cassandra, re-adding it
 to the ring.  When it came up, all of my rows were missing for one
 columnfamily and nearly all my rows were missing for another--or at least
 that's what it looks like, based on walking the rows.  I tried scrubbing
 each of the nodes.  One of them had insufficient disk space (yes, this
 seems to be a recurring problem) for scrub, so I did upgradesstables
 instead, and that one is still in progress.  So far the
 scrub/upgradesstables hasn't seemed to help.  But in the log messages
 created during scrub/upgradesstables it shows realistic numbers (i.e., in
 terms of the rows that existed before this ordeal) created in each new
 sstable.  Also, the loads shown when I run nodetool ring still reflects the
 numbers with the complete set of rows.  That's encouraging, but I can't
 seem to access these phantom rows.  Please help!


 I neglected to mention that I'm running cassandra 1.0.7.


Apologies for replying to my own post (again), but here's the follow up.  I
decommissioned the newest of the four nodes in the cluster, which was
carrying hardly any load (I'm using ByteOrderedPartitioner), but after I
decommissioned, rows were available again, but only as they were from 10
days ago.  Supercolumns added after that date weren't around.

Casey


Re: node stuck leaving

2011-07-12 Thread Casey Deccio
On Tue, Jul 12, 2011 at 10:10 AM, Brandon Williams dri...@gmail.com wrote:

 On Mon, Jul 11, 2011 at 11:51 PM, Casey Deccio ca...@deccio.net wrote:
  java.lang.RuntimeException: Cannot recover SSTable with version f
 (current
  version g).

 You need to scrub before any streaming is performed.


Okay, turns out that my disk is full, so I'm insufficient disk space
errors when running compact or scrub.

So, while I'm working on a getting a more production system with better
capacity, what would I do to move x.x.x.3's load to x.x.x.2, given the
following distribution:

$ nodetool -h localhost ring
Address DC  RackStatus State   Load
OwnsToken

Token(bytes[de4075d0a474c4a773efa2891c020529])
x.x.x.1   datacenter1 rack1   Up Leaving 150.63 GB   33.33%
Token(bytes[10956f12b46304bf70412ad0eac14344])
x.x.x.2   datacenter1 rack1   Up Normal  79.21 GB33.33%
Token(bytes[50af14df71eafac7bac60fbc836c6722])
x.x.x.3   datacenter1 rack1   Up Normal  60.74 GB33.33%
Token(bytes[de4075d0a474c4a773efa2891c020529])

Thanks,
Casey


node stuck leaving

2011-07-08 Thread Casey Deccio
I've got a node that is stuck Leaving the ring.  Running nodetool
decommission never terminates.  It's been in this state for about a week,
and the load has not decreased:

$ nodetool -h localhost ring
Address DC  RackStatus State   Load
OwnsToken

Token(bytes[de4075d0a474c4a773efa2891c020529])
x.x.x.1   datacenter1 rack1   Up Leaving 150.63 GB   33.33%
Token(bytes[10956f12b46304bf70412ad0eac14344])
x.x.x.2   datacenter1 rack1   Up Normal  79.21 GB33.33%
Token(bytes[50af14df71eafac7bac60fbc836c6722])
x.x.x.3   datacenter1 rack1   Up Normal  60.74 GB33.33%
Token(bytes[de4075d0a474c4a773efa2891c020529])

Any ideas?

Regards,
Casey


Re: change node IP address

2011-03-23 Thread Casey Deccio
Hi Aaron,

I'm using 7.3 (upgrading to 7.4).  Basically I needed to swap the IPs of two
of my nodes.  Unfortunately, after I did so, neither was accessible in the
original ring anymore.  I saw the warning message in the logs about the
token being reassigned.  Maybe I didn't give it enough time, but
accessibility faltered, so I reverted the IPs of the nodes, decommissioned
them each, swapped their IPs again, then brought them back into the ring one
at a time.  That seemed to work.  I admit that I'm still quite a novice when
it comes to cassandra's workings, and since my system was unresponsive for a
time, my goal was bringing it back up, and I didn't dive into extensive
analysis.

Casey

On Wed, Mar 23, 2011 at 2:16 AM, aaron morton aa...@thelastpickle.comwrote:

 Which version are you using ?

 It looks like using 0.7X (and prob 0.6) versions you can just shutdown the
 node and bring it back up with the new IP and It Just Works
 https://issues.apache.org/jira/browse/CASSANDRA-872

 I've not done it before, anyone else ?

 Aaron

 On 23 Mar 2011, at 07:53, Casey Deccio wrote:

 What is the process of changing the IP address for a node in a cluster?

 Casey





Re: Reducing memory footprint

2011-03-09 Thread Casey Deccio
On Sat, Mar 5, 2011 at 7:37 PM, aaron morton aa...@thelastpickle.comwrote:

 There is some additional memory usage in the JVM beyond that Heap size, in
 the permanent generation. 900mb sounds like too much for that, but you can
 check by connecting with JConsole and looking at the memory tab. You can
 also check the heap size there to see that it's under the value you've set.


Thanks for the tip!

From JConsole:
Heap memory usage: Current 46M; Max 902M
Non-Heap memory usage: Current 34M; Max 200MB

Both of these seem reasonable and don't reach the (current) 2.1 GB resident
usage I am seeing.

Check you are using standard disk access (in conf/cassandra.yaml) rather
 than memory mapped access. However the memory mapped memory is reported as
 virtual memory, not resident. So I'm just mentioning it to be complete.


At the moment, it's set to auto, but it's a 64-bit machine, so I believe
it's using memory mapped.  The virtual memory usage says that it is 54.6 GB.

If you think you've configured things correctly and the JVM is not behaving
 (which is unlikely) please include some information on the JVM and OS
 versions and some hard numbers about what the process is using.


Debian 6.0 using openjdk-6-jre-lib-6b18-1.8.3-2+squeeze1

Thanks for your help.

Casey


Reducing memory footprint

2011-03-04 Thread Casey Deccio
I have a small ring of cassandra nodes that have somewhat limited memory
capacity for the moment.  Cassandra is eating up all the memory on these
nodes.  I'm not sure where to look first in terms of reducing the foot
print.  Keys cached?  Compaction?

Any hints would be greatly appreciated.

Regards,
Casey


Re: Reducing memory footprint

2011-03-04 Thread Casey Deccio
On Fri, Mar 4, 2011 at 11:03 AM, Chris Burroughs
chris.burrou...@gmail.comwrote:

 What do you mean by eating up the memory?  Resident set size, low
 memory available to page cache, excessive gc of the jvm's heap?


jvm's heap is set for half of the physical memory (1982 MB out of 4G), and
jsvc is using 2.9G (73%) of resident memory.

Are you saying: that you want a smaller heap and what settings to change
 to accommodate that, or that you have already set a small heap of x and
 Cassandra is using significantly more than that?


Based on my observation above, the latter.

Casey


Re: NegativeArraySizeException with 0.7.2

2011-02-16 Thread Casey Deccio
On Wed, Feb 16, 2011 at 10:01 PM, Nate McCall n...@datastax.com wrote:

 See the following mail thread:
 http://www.mail-archive.com/user@cassandra.apache.org/msg10183.html

 In short, running nodetool compact should clear it up.


Thanks for the pointer!  I ran nodetool compact on my nodes, and so far it's
looking good...

Casey


Re: Rows in decreasing order

2010-11-15 Thread Casey Deccio
On Sun, Nov 14, 2010 at 12:50 AM, Jonathan Ellis jbel...@gmail.com wrote:
 As you may have guessed from the lack of a reversed option on the
 range slice api, backward scans are not supported.  The standard thing
 to do is load the keys you are interested in as columns to a row.


That makes sense.  Just needed a different way of thinking about it.
Thanks for the clarification.

Casey


Rows in decreasing order

2010-11-13 Thread Casey Deccio
Hi,

I'm working with Cassandra 0.7.0-beta3.  Given rows with keys 1, 2, 3,
I'd like to be able to search on key 4 (non-existent) and get row 3
(and possibly the n rows before in a range).  I've tried several
options, but I keep getting an empty range.  What am I missing?

Thanks,
Casey