Re: Nodetool snapshot, consistency and replication

2012-04-02 Thread R. Verlangen
Ok, thank you.

2012/4/2 Rob Coli 

> On Mon, Apr 2, 2012 at 9:19 AM, R. Verlangen  wrote:
> > - 3 node cluster
> > - RF = 3
> > - fully consistent (not measured, but let's say it is)
> >
> > Is it true that when I take a snaphot at only one of the 3 nodes this
> > contains all the data in the cluster (at least 1 replica)?
>
> Yes.
>
> =Rob
>
> --
> =Robert Coli
> AIM>ALK - rc...@palominodb.com
> YAHOO - rcoli.palominob
> SKYPE - rcoli_palominodb
>



-- 
With kind regards,

Robin Verlangen
www.robinverlangen.nl


Re: key cache size calculation

2012-04-02 Thread Shoaib Mir
On Tue, Apr 3, 2012 at 11:49 AM, aaron morton wrote:

> Take a look at the key cache hit rate in nodetool cfstats.
>
> One approach is to increase the cache size until you do not see a matching
> increase in the hit rate.
>


Thanks Aaron, what do you think will be the ideal cache hit ratio where we
want this particular DB server to do around 5-6K responses per second?
right now it is doing just 2-3K per second and the cache hit ratio I can
see with cfstats is around the 85-90%. Do you think having a higher cache
hit ratio around the 95% mark will help with getting a high throughput as
well?

cheers,
Shoaib


Re: key cache size calculation

2012-04-02 Thread aaron morton
Take a look at the key cache hit rate in nodetool cfstats. 

One approach is to increase the cache size until you do not see a matching 
increase in the hit rate. 

> Is there a limit to key cache size? I know that is all taken from heap but 
> how much max we can go with setting the key cache sizes?

It's pretty much a memory thing. 

Each entry maps a description of the SStable and the key to the offset in the 
index file. (off the top of my head) The SSTable description is shared, the row 
key, row token (16 bytes) and offset (offset) will take up space.

Cheers
 
-
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 3/04/2012, at 11:24 AM, Shoaib Mir wrote:

> Hi guys,
> 
> We are calculating key cache size right now. There is this column family with 
> ~ 100 million columns and right now we have the cache size set at 2 million.
> 
> I suspect that the active data we got is not all fitting in the 2 million 
> cache size and we at times are getting query execution time way higher then 
> the normal. Is there a limit to key cache size? I know that is all taken from 
> heap but how much max we can go with setting the key cache sizes?
> 
> cheers,
> Shoaib



Re: data size difference between supercolumn and regular column

2012-04-02 Thread aaron morton
If you have a workload with overwrites you will end up with some data needing 
compaction. Running a nightly manual compaction would remove this, but it will 
also soak up some IO so it may not be the best solution. 

I do not know if Leveled compaction would result in a smaller disk load for the 
same workload. 

I agree with other people, turn on compaction. 

Cheers

-
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 3/04/2012, at 9:19 AM, Yiming Sun wrote:

> Yup Jeremiah, I learned a hard lesson on how cassandra behaves when it runs 
> out of disk space :-S.I didn't try the compression, but when it ran out 
> of disk space, or near running out, compaction would fail because it needs 
> space to create some tmp data files.
> 
> I shall get a tatoo that says keep it around 50% -- this is valuable tip.
> 
> -- Y.
> 
> On Sun, Apr 1, 2012 at 11:25 PM, Jeremiah Jordan 
>  wrote:
> Is that 80% with compression?  If not, the first thing to do is turn on 
> compression.  Cassandra doesn't behave well when it runs out of disk space.  
> You really want to try and stay around 50%,  60-70% works, but only if it is 
> spread across multiple column families, and even then you can run into issues 
> when doing repairs.
> 
> -Jeremiah
> 
> 
> 
> On Apr 1, 2012, at 9:44 PM, Yiming Sun wrote:
> 
>> Thanks Aaron.  Well I guess it is possible the data files from sueprcolumns 
>> could've been reduced in size after compaction.
>> 
>> This bring yet another question.  Say I am on a shoestring budget and can 
>> only put together a cluster with very limited storage space.  The first 
>> iteration of pushing data into cassandra would drive the disk usage up into 
>> the 80% range.  As time goes by, there will be updates to the data, and many 
>> columns will be overwritten.  If I just push the updates in, the disks will 
>> run out of space on all of the cluster nodes.  What would be the best way to 
>> handle such a situation if I cannot to buy larger disks? Do I need to delete 
>> the rows/columns that are going to be updated, do a compaction, and then 
>> insert the updates?  Or is there a better way?  Thanks
>> 
>> -- Y.
>> 
>> On Sat, Mar 31, 2012 at 3:28 AM, aaron morton  
>> wrote:
>>> does cassandra 1.0 perform some default compression? 
>> No. 
>> 
>> The on disk size depends to some degree on the work load. 
>> 
>> If there are a lot of overwrites or deleted you may have rows/columns that 
>> need to be compacted. You may have some big old SSTables that have not been 
>> compacted for a while. 
>> 
>> There is some overhead involved in the super columns: the super col name, 
>> length of the name and the number of columns.  
>> 
>> Cheers
>> 
>> -
>> Aaron Morton
>> Freelance Developer
>> @aaronmorton
>> http://www.thelastpickle.com
>> 
>> On 29/03/2012, at 9:47 AM, Yiming Sun wrote:
>> 
>>> Actually, after I read an article on cassandra 1.0 compression just now ( 
>>> http://www.datastax.com/dev/blog/whats-new-in-cassandra-1-0-compression), I 
>>> am more puzzled.  In our schema, we didn't specify any compression options 
>>> -- does cassandra 1.0 perform some default compression? or is the data 
>>> reduction purely because of the schema change?  Thanks.
>>> 
>>> -- Y.
>>> 
>>> On Wed, Mar 28, 2012 at 4:40 PM, Yiming Sun  wrote:
>>> Hi,
>>> 
>>> We are trying to estimate the amount of storage we need for a production 
>>> cassandra cluster.  While I was doing the calculation, I noticed a very 
>>> dramatic difference in terms of storage space used by cassandra data files.
>>> 
>>> Our previous setup consists of a single-node cassandra 0.8.x with no 
>>> replication, and the data is stored using supercolumns, and the data files 
>>> total about 534GB on disk.
>>> 
>>> A few weeks ago, I put together a cluster consisting of 3 nodes running 
>>> cassandra 1.0 with replication factor of 2, and the data is flattened out 
>>> and stored using regular columns.  And the aggregated data file size is 
>>> only 488GB (would be 244GB if no replication).
>>> 
>>> This is a very dramatic reduction in terms of storage needs, and is 
>>> certainly good news in terms of how much storage we need to provision.  
>>> However, because of the dramatic reduction, I also would like to make sure 
>>> it is absolutely correct before submitting it - and also get a sense of why 
>>> there was such a difference. -- I know cassandra 1.0 does data compression, 
>>> but does the schema change from supercolumn to regular column also help 
>>> reduce storage usage?  Thanks.
>>> 
>>> -- Y.
>>> 
>> 
>> 
> 
> 



key cache size calculation

2012-04-02 Thread Shoaib Mir
Hi guys,

We are calculating key cache size right now. There is this column family
with ~ 100 million columns and right now we have the cache size set at 2
million.

I suspect that the active data we got is not all fitting in the 2 million
cache size and we at times are getting query execution time way higher then
the normal. Is there a limit to key cache size? I know that is all taken
from heap but how much max we can go with setting the key cache sizes?

cheers,
Shoaib


Re: [BETA RELEASE] Apache Cassandra 1.1.0-beta2 released

2012-04-02 Thread Ben McCann
Cool.  Thanks.  That should be easy enough to fix :-)


On Mon, Apr 2, 2012 at 8:05 AM, Sylvain Lebresne wrote:

> There's an open issue for that:
> https://issues.apache.org/jira/browse/CASSANDRA-3676
> Patch welcome :)
>
> --
> Sylvain
>
> On Sat, Mar 31, 2012 at 8:55 PM, Ben McCann  wrote:
> > I'm trying to upgrade Solandra to use 1.1.0-beta2 and think I found a
> minor
> > issue:
> > java.lang.NoClassDefFoundError: edu/stanford/ppl/concurrent/SnapTreeMap
> > at
> >
> org.apache.cassandra.db.AtomicSortedColumns$Holder.(AtomicSortedColumns.java:296)
> >
> > Looks like this dependency is missing from cassandra-all-1.1.0-beta2.pom.
> >
> >
> > On Thu, Mar 29, 2012 at 1:48 PM, Sylvain Lebresne 
> > wrote:
> >>
> >> On Thu, Mar 29, 2012 at 10:37 PM, Mohit Anchlia  >
> >> wrote:
> >> >
> >> >
> >> > On Thu, Mar 29, 2012 at 1:32 PM, Sylvain Lebresne <
> sylv...@datastax.com>
> >> > wrote:
> >> >>
> >> >> As the NEWS file says, only the version 1.0.3-1.0.5 are generating
> >> >> those cross-dc forwarding messages that are incompatible with 1.1. If
> >> >> you're on 1.0.0, you shouldn't have that problem. To be more precise,
> >> >> 1.0.0 does not generate cross-dc forwarding message at all, so you're
> >> >> safe on that side.
> >> >>
> >> > Is cross-dc forwarding different than replication?
> >>
> >> Here cross-dc forwarding means the fact of optimizing cross-dc
> >> replication. If we're in some DC1 and need to replicate a write to 3
> >> replicas in DC2, we send just one message cross-DC, and they have the
> >> one node in DC2 forward the message to the 2 other replica, instead of
> >> just sending 3 message cross-DC.
> >>
> >> --
> >> Sylvain
> >>
> >>
> >> >>
> >> >> --
> >> >> Sylvain
> >> >>
> >> >> On Thu, Mar 29, 2012 at 9:33 PM, Mohit Anchlia <
> mohitanch...@gmail.com>
> >> >> wrote:
> >> >> > Any updates?
> >> >> >
> >> >> >
> >> >> > On Thu, Mar 29, 2012 at 7:31 AM, Mohit Anchlia
> >> >> > 
> >> >> > wrote:
> >> >> >>
> >> >> >> This is from NEWS.txt. So my question is if we are on 1.0.0-2
> >> >> >> release
> >> >> >> do
> >> >> >> we still need to upgrade since this impacts releases between
> >> >> >> 1.0.3-1.0.5?
> >> >> >> -
> >> >> >> If you are running a multi datacenter setup, you should upgrade to
> >> >> >>   the latest 1.0.x (or 0.8.x) release before upgrading.
> >> >> >> Versions
> >> >> >>   0.8.8 and 1.0.3-1.0.5 generate cross-dc forwarding that is
> >> >> >> incompatible
> >> >> >>   with 1.1.
> >> >> >> -
> >> >> >>
> >> >> >> On Thu, Mar 29, 2012 at 4:51 AM, Sylvain Lebresne
> >> >> >> 
> >> >> >> wrote:
> >> >> >>>
> >> >> >>> To be clear, the incompatibility we've talked about does *not*
> >> >> >>> concern
> >> >> >>> any of the 1.0 releases (you'll want to refer NEWS file for any
> >> >> >>> details on the upgrade path for these versions).
> >> >> >>> The incompatibility here is only between 1.1.0-beta1 and
> >> >> >>> 1.1.0-beta2.
> >> >> >>>
> >> >> >>> --
> >> >> >>> Sylvain
> >> >> >>>
> >> >> >>> On Thu, Mar 29, 2012 at 2:50 AM, Mohit Anchlia
> >> >> >>> 
> >> >> >>> wrote:
> >> >> >>> > We are currently using 1.0.0-2  version. Do we still need to
> >> >> >>> > migrate
> >> >> >>> > to
> >> >> >>> > the
> >> >> >>> > latest release of 1.0 before migrating to 1.1? Looks like
> >> >> >>> > incompatibility is
> >> >> >>> > only between 1.0.3-1.0.8.
> >> >> >>> >
> >> >> >>> >
> >> >> >>> > On Tue, Mar 27, 2012 at 6:42 AM, Benoit Perroud
> >> >> >>> > 
> >> >> >>> > wrote:
> >> >> >>> >>
> >> >> >>> >> Thanks for the quick feedback.
> >> >> >>> >>
> >> >> >>> >> I will drop the schema then.
> >> >> >>> >>
> >> >> >>> >> Benoit.
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>> >> Le 27 mars 2012 14:50, Sylvain Lebresne 
> a
> >> >> >>> >> écrit
> >> >> >>> >> :
> >> >> >>> >> > Actually, there was a few changes to the on-disk format of
> >> >> >>> >> > schema
> >> >> >>> >> > between beta1 and beta2 so upgrade is not supported between
> >> >> >>> >> > those
> >> >> >>> >> > two
> >> >> >>> >> > beta versions.
> >> >> >>> >> > Sorry for any inconvenience.
> >> >> >>> >> >
> >> >> >>> >> > --
> >> >> >>> >> > Sylvain
> >> >> >>> >> >
> >> >> >>> >> > On Tue, Mar 27, 2012 at 12:57 PM, Benoit Perroud
> >> >> >>> >> > 
> >> >> >>> >> > wrote:
> >> >> >>> >> >> Hi All,
> >> >> >>> >> >>
> >> >> >>> >> >> Thanks a lot for the release.
> >> >> >>> >> >> I just upgraded my 1.1-beta1 to 1.1-beta2, and I get the
> >> >> >>> >> >> following
> >> >> >>> >> >> error :
> >> >> >>> >> >>
> >> >> >>> >> >>  INFO 10:56:17,089 Opening
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >>
> /app/cassandra/data/data/system/LocationInfo/system-LocationInfo-hc-18
> >> >> >>> >> >> (74 bytes)
> >> >> >>> >> >>  INFO 10:56:17,092 Opening
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >>
> /app/cassandra/data/data/system/LocationInfo/system-LocationInfo-hc-17
> >> >> >>> >> >> (486 bytes)
> >> >> >>> >> >> ERROR 10:56:17,306 Exception encountered durin

Re: Using Thrift

2012-04-02 Thread Hari Prasad Siripuram
I faced the same issue:

You can find the similar issue here.
http://stackoverflow.com/questions/8370365/debugging-bizarre-spring-slf4j-jar-issue

Also, Spring community is acknowledging on the SLF4J Issue here
(commons-logging issue):
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#dependency-management

You can exclude that jar file.


 org.springframework
 spring-context
 3.0.0.RELEASE
 runtime
 

   commons-logging
   commons-logging

 
  



On Mon, Apr 2, 2012 at 2:32 PM, aaron morton  wrote:
> I would recommend starting with a higher level client like Hector
> or Astyanax http://wiki.apache.org/cassandra/ClientOptions
>
> They have *a lot* of features and will make it easier to focus on learning
> how to use Cassandra. Then when you know what you like or do not like about
> the existing clients, try to improve them or write your own.
>
> Hope that helps.
>
>
> -
> Aaron Morton
> Freelance Developer
> @aaronmorton
> http://www.thelastpickle.com
>
> On 2/04/2012, at 11:12 PM, Rishabh Agrawal wrote:
>
> Hello,
>
>
>
> I have just started exploring Cassandra from java side and using wish to use
> thrift as my api. The problem is whenever is I try to compile my java code I
> get following error :
>
>
>
> “package org.slf4j does not exist”
>
>
>
> Can anyone help me with this.
>
>
>
> Thanks and Regards
> Rishabh Agrawal
>
> 
>
> Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know
> more about our Big Data quick-start program at the event.
>
> New Impetus webcast ‘Cloud-enabled Performance Testing vis-à-vis On-premise’
> available at http://bit.ly/z6zT4L.
>
>
> NOTE: This message may contain information that is confidential,
> proprietary, privileged or otherwise protected by law. The message is
> intended solely for the named addressee. If received in error, please
> destroy and notify the sender. Any use of this email is prohibited when
> received in error. Impetus does not represent, warrant and/or guarantee,
> that the integrity of this communication has been maintained nor that the
> communication is free of errors, virus, interception or interference.
>
>


Re: Largest 'sensible' value

2012-04-02 Thread Franc Carter
On Tue, Apr 3, 2012 at 4:18 AM, Ben Coverston wrote:

> This is a difficult question to answer for a variety of reasons, but I'll
> give it a try, maybe it will be helpful, maybe not.
>
> The most obvious problem with this is that Thrift is buffer based, not
> streaming. That means that whatever the size of your chunk it needs to
> be received, deserialized, and processed by cassandra within a timeframe
> that we call the rpc_timeout (by default this is 10 seconds).
>

Thanks.

 I suspect that 'not streaming' is the key, and not just from the Cassandra
side - our use case has a subtle assumption of streaming on the client
side. We could chop it up in to buckets and put each one in a time ordered
column, but that the defeats the purpose of why I was considering Cassandra
- to avoid the latency of seeks in HDFS

cheers


>
> Bigger buffers mean larger allocations, larger allocations mean that the
> JVM is working harder, and  is more prone to fragmentation on the heap.
>
> With mixed workloads (lots of high latency, large requests and many very
> small low latency requests) larger buffers can also, over time, clog up the
> thread pool in a way that can cause your shorter queries to have to wait
> for your longer running queries to complete (to free up worker threads)
> making everything slow. This isn't a problem unique to Cassandra,
> everything that uses worker queues runs into some variant of this problem.
>
> As with everything else, you'll probably need to test your specific use
> case to see what 'too big' is for you.
>
> On Mon, Apr 2, 2012 at 9:23 AM, Franc Carter wrote:
>
>>
>> Hi,
>>
>> We are in the early stages of thinking about a project that needs to
>> store data that will be accessed by Hadoop. One of the concerns we have is
>> around the Latency of HDFS as our use case is is not for reading all the
>> data and hence we will need custom RecordReaders etc.
>>
>> I've seen a couple of comments that you shouldn't put large chunks in to
>> a value - however 'large' is not well defined for the range of people using
>> these solutions ;-)
>>
>> Doe anyone have a rough rule of thumb for how big a single value can be
>> before we are outside sanity?
>>
>> thanks
>>
>> --
>>
>> *Franc Carter* | Systems architect | Sirca Ltd
>>  
>>
>> franc.car...@sirca.org.au | www.sirca.org.au
>>
>> Tel: +61 2 9236 9118
>>
>> Level 9, 80 Clarence St, Sydney NSW 2000
>>
>> PO Box H58, Australia Square, Sydney NSW 1215
>>
>>
>
>
> --
> Ben Coverston
> DataStax -- The Apache Cassandra Company
>
>


-- 

*Franc Carter* | Systems architect | Sirca Ltd
 

franc.car...@sirca.org.au | www.sirca.org.au

Tel: +61 2 9236 9118

Level 9, 80 Clarence St, Sydney NSW 2000

PO Box H58, Australia Square, Sydney NSW 1215


Re: Cassandra CF merkle tree

2012-04-02 Thread aaron morton
No it's internal only. 

Take a look at o.a.c.service.AntiEntropyService

Cheers

-
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 3/04/2012, at 12:21 AM, Thomas van Neerijnen wrote:

> Hi all
> 
> Is there a way I can easily retrieve a Merkle tree for a CF, like the one 
> created during a repair?
> I didn't see anything about this in the Thrift API docs, I'm assuming this is 
> a data structure made available only to internal Cassandra functions.
> 
> I would like to explore using the Merkle trees as a method for data integrity 
> checks after config changes, version upgrades, and probably loads of other 
> scenarios I haven't even thought of that may result in data loss going 
> initially unnoticed.



Re: Using Thrift

2012-04-02 Thread aaron morton
I would recommend starting with a higher level client like Hector or Astyanax 
http://wiki.apache.org/cassandra/ClientOptions

They have *a lot* of features and will make it easier to focus on learning how 
to use Cassandra. Then when you know what you like or do not like about the 
existing clients, try to improve them or write your own. 

Hope that helps. 


-
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 2/04/2012, at 11:12 PM, Rishabh Agrawal wrote:

> Hello,
>  
> I have just started exploring Cassandra from java side and using wish to use 
> thrift as my api. The problem is whenever is I try to compile my java code I 
> get following error :
>  
> “package org.slf4j does not exist”
>  
> Can anyone help me with this.
>  
> Thanks and Regards
> Rishabh Agrawal
> 
> 
> Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know 
> more about our Big Data quick-start program at the event. 
> 
> New Impetus webcast ‘Cloud-enabled Performance Testing vis-à-vis On-premise’ 
> available at http://bit.ly/z6zT4L. 
> 
> 
> NOTE: This message may contain information that is confidential, proprietary, 
> privileged or otherwise protected by law. The message is intended solely for 
> the named addressee. If received in error, please destroy and notify the 
> sender. Any use of this email is prohibited when received in error. Impetus 
> does not represent, warrant and/or guarantee, that the integrity of this 
> communication has been maintained nor that the communication is free of 
> errors, virus, interception or interference.



Re: Error Replicate on write

2012-04-02 Thread aaron morton
Is JNA.jar in the path ?

Cheers
 
-
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 2/04/2012, at 10:11 PM, Carlos Juzarte Rolo wrote:

> Hi,
> 
> I've been using cassandra for a while, but after a upgrade to 1.0.7, every 
> machine kept running perfectly. Well, except one that constantly throws this 
> error:
> 
> ERROR [ReplicateOnWriteStage:39] 2012-04-02 12:02:55,131 
> AbstractCassandraDaemon.java (line 139) Fatal exception in thread 
> Thread[ReplicateOnWriteStage:39,5,main]
> java.lang.NoClassDefFoundError: Could not initialize class 
> org.apache.cassandra.cache.FreeableMemory
>at 
> org.apache.cassandra.cache.SerializingCache.serialize(SerializingCache.java:92)
>at 
> org.apache.cassandra.cache.SerializingCache.put(SerializingCache.java:154)
>at 
> org.apache.cassandra.cache.InstrumentingCache.put(InstrumentingCache.java:63)
>at 
> org.apache.cassandra.db.ColumnFamilyStore.cacheRow(ColumnFamilyStore.java:1170)
>at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1194)
>at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1151)
>at org.apache.cassandra.db.Table.getRow(Table.java:375)
>at 
> org.apache.cassandra.db.SliceByNamesReadCommand.getRow(SliceByNamesReadCommand.java:58)
>at 
> org.apache.cassandra.db.CounterMutation.makeReplicationMutation(CounterMutation.java:99)
>at 
> org.apache.cassandra.service.StorageProxy$7$1.runMayThrow(StorageProxy.java:544)
>at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1223)
>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)
> 
> The machine does run, but nodetool doesn't connect to the machine for example.
> 
> Any ideia from what could be trigerring this?
> 
> Thanks,



Re: data size difference between supercolumn and regular column

2012-04-02 Thread Yiming Sun
Yup Jeremiah, I learned a hard lesson on how cassandra behaves when it runs
out of disk space :-S.I didn't try the compression, but when it ran out
of disk space, or near running out, compaction would fail because it needs
space to create some tmp data files.

I shall get a tatoo that says keep it around 50% -- this is valuable tip.

-- Y.

On Sun, Apr 1, 2012 at 11:25 PM, Jeremiah Jordan <
jeremiah.jor...@morningstar.com> wrote:

>  Is that 80% with compression?  If not, the first thing to do is turn on
> compression.  Cassandra doesn't behave well when it runs out of disk space.
>  You really want to try and stay around 50%,  60-70% works, but only if it
> is spread across multiple column families, and even then you can run into
> issues when doing repairs.
>
>  -Jeremiah
>
>
>
>  On Apr 1, 2012, at 9:44 PM, Yiming Sun wrote:
>
> Thanks Aaron.  Well I guess it is possible the data files from
> sueprcolumns could've been reduced in size after compaction.
>
>  This bring yet another question.  Say I am on a shoestring budget and
> can only put together a cluster with very limited storage space.  The first
> iteration of pushing data into cassandra would drive the disk usage up into
> the 80% range.  As time goes by, there will be updates to the data, and
> many columns will be overwritten.  If I just push the updates in, the disks
> will run out of space on all of the cluster nodes.  What would be the best
> way to handle such a situation if I cannot to buy larger disks? Do I need
> to delete the rows/columns that are going to be updated, do a compaction,
> and then insert the updates?  Or is there a better way?  Thanks
>
>  -- Y.
>
> On Sat, Mar 31, 2012 at 3:28 AM, aaron morton wrote:
>
>>   does cassandra 1.0 perform some default compression?
>>
>>  No.
>>
>>  The on disk size depends to some degree on the work load.
>>
>>  If there are a lot of overwrites or deleted you may have rows/columns
>> that need to be compacted. You may have some big old SSTables that have not
>> been compacted for a while.
>>
>>  There is some overhead involved in the super columns: the super col
>> name, length of the name and the number of columns.
>>
>>  Cheers
>>
>> -
>> Aaron Morton
>> Freelance Developer
>> @aaronmorton
>> http://www.thelastpickle.com
>>
>>  On 29/03/2012, at 9:47 AM, Yiming Sun wrote:
>>
>> Actually, after I read an article on cassandra 1.0 compression just now (
>> http://www.datastax.com/dev/blog/whats-new-in-cassandra-1-0-compression),
>> I am more puzzled.  In our schema, we didn't specify any compression
>> options -- does cassandra 1.0 perform some default compression? or is the
>> data reduction purely because of the schema change?  Thanks.
>>
>>  -- Y.
>>
>> On Wed, Mar 28, 2012 at 4:40 PM, Yiming Sun  wrote:
>>
>>> Hi,
>>>
>>>  We are trying to estimate the amount of storage we need for a
>>> production cassandra cluster.  While I was doing the calculation, I noticed
>>> a very dramatic difference in terms of storage space used by cassandra data
>>> files.
>>>
>>>  Our previous setup consists of a single-node cassandra 0.8.x with no
>>> replication, and the data is stored using supercolumns, and the data files
>>> total about 534GB on disk.
>>>
>>>  A few weeks ago, I put together a cluster consisting of 3 nodes
>>> running cassandra 1.0 with replication factor of 2, and the data is
>>> flattened out and stored using regular columns.  And the aggregated data
>>> file size is only 488GB (would be 244GB if no replication).
>>>
>>>  This is a very dramatic reduction in terms of storage needs, and is
>>> certainly good news in terms of how much storage we need to provision.
>>>  However, because of the dramatic reduction, I also would like to make sure
>>> it is absolutely correct before submitting it - and also get a sense of why
>>> there was such a difference. -- I know cassandra 1.0 does data compression,
>>> but does the schema change from supercolumn to regular column also help
>>> reduce storage usage?  Thanks.
>>>
>>>  -- Y.
>>>
>>
>>
>>
>
>


Re: Cassandra - crash with “free() invalid pointer”

2012-04-02 Thread Vijay
Can you send us the stack trace which you can find in the hs_err_pid*.log?
is the system memory all used up (free)? any errors in the logs just before
the crash?

Regards,




On Mon, Mar 26, 2012 at 12:35 AM, Maciej Miklas
wrote:

> I have row cache - it's about 20GB big in this case.
> The problem can be reproduced with our load test - we are using 20 reader
> threads on single Cassandra node.
>
> I will retest it with Java 6 - still it looks to me like JNA problem and
> JDK in this case should not matter, but we will see.
>
>
> On Thu, Mar 22, 2012 at 8:27 PM, Benoit Perroud wrote:
>
>> Sounds like a race condition in the off heap caching while calling
>> Unsafe.free().
>>
>> Do you use cache ? What is your use case when you encounter this error
>> ? Are you able to reproduce it ?
>>
>>
>> 2012/3/22 Maciej Miklas :
>> > Hi *,
>> >
>> > My Cassandra installation runs on flowing system:
>> >
>> > Linux with Kernel 2.6.32.22
>> > jna-3.3.0
>> > Java 1.7.0-b147
>> >
>> > Sometimes we are getting following error:
>> >
>> > *** glibc detected *** /var/opt/java1.7/bin/java: free(): invalid
>> pointer:
>> > 0x7f66088a6000 ***
>> > === Backtrace: =
>> > /lib/libc.so.6[0x7f661d7099a8]
>> > /lib/libc.so.6(cfree+0x76)[0x7f661d70bab6]
>> > /lib64/ld-linux-x86-64.so.2(_dl_deallocate_tls+0x59)[0x7f661e02f349]
>> > /lib/libpthread.so.0[0x7f661de09237]
>> > /lib/libpthread.so.0[0x7f661de0931a]
>> > /lib/libpthread.so.0[0x7f661de0a0bd]
>> > /lib/libc.so.6(clone+0x6d)[0x7f661d76564d]
>> > === Memory map: 
>> > 0040-00401000 r-xp  68:07 537448203
>> > /var/opt/jdk1.7.0/bin/java
>> > 0060-00601000 rw-p  68:07 537448203
>> > /var/opt/jdk1.7.0/bin/java
>> > 01bae000-01fd rw-p  00:00 0
>> > [heap]
>> > 01fd-15798000 rw-p  00:00 0
>> > [heap]
>> > 40002000-40005000 ---p  00:00 0
>> > 40005000-40023000 rw-p  00:00 0
>> > 4003-40033000 ---p  00:00 0
>> > 40033000-40051000 rw-p  00:00 0
>> >
>> > Does anyone have similar problems? or maybe some hints?
>> >
>> > Thanks,
>> > Maciej
>>
>>
>>
>> --
>> sent from my Nokia 3210
>>
>
>


Re: Largest 'sensible' value

2012-04-02 Thread Ben Coverston
This is a difficult question to answer for a variety of reasons, but I'll
give it a try, maybe it will be helpful, maybe not.

The most obvious problem with this is that Thrift is buffer based, not
streaming. That means that whatever the size of your chunk it needs to
be received, deserialized, and processed by cassandra within a timeframe
that we call the rpc_timeout (by default this is 10 seconds).

Bigger buffers mean larger allocations, larger allocations mean that the
JVM is working harder, and  is more prone to fragmentation on the heap.

With mixed workloads (lots of high latency, large requests and many very
small low latency requests) larger buffers can also, over time, clog up the
thread pool in a way that can cause your shorter queries to have to wait
for your longer running queries to complete (to free up worker threads)
making everything slow. This isn't a problem unique to Cassandra,
everything that uses worker queues runs into some variant of this problem.

As with everything else, you'll probably need to test your specific use
case to see what 'too big' is for you.

On Mon, Apr 2, 2012 at 9:23 AM, Franc Carter wrote:

>
> Hi,
>
> We are in the early stages of thinking about a project that needs to store
> data that will be accessed by Hadoop. One of the concerns we have is around
> the Latency of HDFS as our use case is is not for reading all the data and
> hence we will need custom RecordReaders etc.
>
> I've seen a couple of comments that you shouldn't put large chunks in to a
> value - however 'large' is not well defined for the range of people using
> these solutions ;-)
>
> Doe anyone have a rough rule of thumb for how big a single value can be
> before we are outside sanity?
>
> thanks
>
> --
>
> *Franc Carter* | Systems architect | Sirca Ltd
>  
>
> franc.car...@sirca.org.au | www.sirca.org.au
>
> Tel: +61 2 9236 9118
>
> Level 9, 80 Clarence St, Sydney NSW 2000
>
> PO Box H58, Australia Square, Sydney NSW 1215
>
>


-- 
Ben Coverston
DataStax -- The Apache Cassandra Company


Re: Nodetool snapshot, consistency and replication

2012-04-02 Thread Rob Coli
On Mon, Apr 2, 2012 at 9:19 AM, R. Verlangen  wrote:
> - 3 node cluster
> - RF = 3
> - fully consistent (not measured, but let's say it is)
>
> Is it true that when I take a snaphot at only one of the 3 nodes this
> contains all the data in the cluster (at least 1 replica)?

Yes.

=Rob

-- 
=Robert Coli
AIM>ALK - rc...@palominodb.com
YAHOO - rcoli.palominob
SKYPE - rcoli_palominodb


Re: multi region EC2

2012-04-02 Thread Rob Coli
On Mon, Mar 26, 2012 at 3:31 PM, Deno Vichas > but what if i already
have a bunch (8g per node) data that i need and i
> don't have a way to re-create it.

Note that the below may have unintended consequences if using Counter
column families. It actually can be done with the cluster running,
below is the least tricky version of this process.

a) stop writing to your cluster
b) do a major compaction and then stop cluster
c) ensure globally unique filenames for all sstable files for all cfs
for all nodes
d) copy all sstables to all new nodes
e) start cluster, join new nodes, run cleanup compactions

=Rob

-- 
=Robert Coli
AIM>ALK - rc...@palominodb.com
YAHOO - rcoli.palominob
SKYPE - rcoli_palominodb


Re: column’s timestamp

2012-04-02 Thread Pierre Chalamet
Hi,

What about using a ts as column name and do a get sliced instead ?


--Original Message--
From: Avi-h
To: cassandra-u...@incubator.apache.org
ReplyTo: user@cassandra.apache.org
Subject: column’s timestamp
Sent: Apr 2, 2012 18:24

Is it possible to fetch a column based on the row key and the column’s
timestamp only (not using the column’s name)?

--
View this message in context: 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/column-s-timestamp-tp7429905p7429905.html
Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
Nabble.com.


- Pierre

Re: column’s timestamp

2012-04-02 Thread Tyler Hobbs
On Mon, Apr 2, 2012 at 11:24 AM, Avi-h  wrote:

> Is it possible to fetch a column based on the row key and the column’s
> timestamp only (not using the column’s name)?
>

No, but most clients support including the timestamp in the result set, so
you can filter the columns by timestamp from there.

Otherwise, your best bet is including the timestamp in the column name.

-- 
Tyler Hobbs
DataStax 


column’s timestamp

2012-04-02 Thread Avi-h
Is it possible to fetch a column based on the row key and the column’s
timestamp only (not using the column’s name)?

--
View this message in context: 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/column-s-timestamp-tp7429905p7429905.html
Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
Nabble.com.


Nodetool snapshot, consistency and replication

2012-04-02 Thread R. Verlangen
Hi there,

I have a question about the nodetool snapshot.

Situation:
- 3 node cluster
- RF = 3
- fully consistent (not measured, but let's say it is)

Is it true that when I take a snaphot at only one of the 3 nodes this
contains all the data in the cluster (at least 1 replica)?

With kind regards,

Robin Verlangen
www.robinverlangen.nl


Re: Compression on client side vs server side

2012-04-02 Thread Ben McCann
Thanks Jeremiah, that's what I has suspected.  I appreciate the
confirmation.

Martin, there's not built-in support for doing compression client side, but
it'd be easy for me to do manually since I just have one column with all my
serialized data, which is why I was considering it.


On Mon, Apr 2, 2012 at 8:54 AM, Martin Junghanns  wrote:

> Hi,
>
> how do you select between client- and serverside compression? i'm using
> hector and i set compression when creating a cf, so the compression
> executes when inserting the data "on the server" oO
>
> greetings, martin
>
> Am 02.04.2012 17:42, schrieb Ben McCann:
>
>  Hi,
>>
>> I was curious if I compress my data on the client side with Snappy
>> whether there's any difference between doing that and doing it on the
>> server side?  The wiki said that compression works best where each row has
>> the same columns.  Does this mean the compression will be more efficient on
>> the server side since it can look at multiple rows at once instead of only
>> the row being inserted?  The reason I was thinking about possibly doing it
>> client side was that it would save CPU on the datastore machine.  However,
>> does this matter?  Is CPU typically the bottleneck on a machine or is it
>> some other resource? (of course this will vary for each person, but
>> wondering if there's a rule of thumb.  I'm making a web app, which
>> hopefully will store about 5TB of data and have 10s of millions of page
>> views per month)
>>
>> Thanks,
>> Ben
>>
>>
>


Re: Compression on client side vs server side

2012-04-02 Thread Martin Junghanns

Hi,

how do you select between client- and serverside compression? i'm using 
hector and i set compression when creating a cf, so the compression 
executes when inserting the data "on the server" oO


greetings, martin

Am 02.04.2012 17:42, schrieb Ben McCann:

Hi,

I was curious if I compress my data on the client side with Snappy 
whether there's any difference between doing that and doing it on the 
server side?  The wiki said that compression works best where each row 
has the same columns.  Does this mean the compression will be more 
efficient on the server side since it can look at multiple rows at 
once instead of only the row being inserted?  The reason I was 
thinking about possibly doing it client side was that it would save 
CPU on the datastore machine.  However, does this matter?  Is CPU 
typically the bottleneck on a machine or is it some other resource? 
(of course this will vary for each person, but wondering if there's a 
rule of thumb.  I'm making a web app, which hopefully will store about 
5TB of data and have 10s of millions of page views per month)


Thanks,
Ben





RE: Compression on client side vs server side

2012-04-02 Thread Jeremiah Jordan
The server side compression can compress across columns/rows so it will most 
likely be more efficient.
Whether you are CPU bound or IO bound depends on your application and node 
setup.  Unless your working set fits in memory you will be IO bound, and in 
that case server side compression helps because there is less to read from 
disk.  In many cases it is actually faster to read a compressed file from disk 
and decompress it, then to read an uncompressed file from disk.

See Ed's post:
"Cassandra compression is like more servers for free!"
http://www.edwardcapriolo.com/roller/edwardcapriolo/entry/cassandra_compression_is_like_getting


From: benjamin.j.mcc...@gmail.com [benjamin.j.mcc...@gmail.com] on behalf of 
Ben McCann [b...@benmccann.com]
Sent: Monday, April 02, 2012 10:42 AM
To: user@cassandra.apache.org
Subject: Compression on client side vs server side

Hi,

I was curious if I compress my data on the client side with Snappy whether 
there's any difference between doing that and doing it on the server side?  The 
wiki said that compression works best where each row has the same columns.  
Does this mean the compression will be more efficient on the server side since 
it can look at multiple rows at once instead of only the row being inserted?  
The reason I was thinking about possibly doing it client side was that it would 
save CPU on the datastore machine.  However, does this matter?  Is CPU 
typically the bottleneck on a machine or is it some other resource? (of course 
this will vary for each person, but wondering if there's a rule of thumb.  I'm 
making a web app, which hopefully will store about 5TB of data and have 10s of 
millions of page views per month)

Thanks,
Ben



Re: really bad select performance

2012-04-02 Thread David Leimbach
This is all very hypothetical, but I've been bitten by this before.

Does row_loaded happen to be a binary or boolean value?  If so the
secondary index generated by Cassandra will have at most 2 rows, and
they'll be REALLY wide if you have a lot of entries.  Since Cassandra
doesn't distribute columns over rows, those potentially very wide index
rows, and their replicas, must live in SSTables in their entirety on the
nodes that own them (and their replicas).

Even though you limit 1, I'm not sure what "behind the scenes" things
Cassandra does.  I've received advice to avoid the built in secondary
indexes in Cassandra for some of these reasons.  Also if row_loaded is
meant to implement some kind of queuing behavior, it could be the wrong
problem space for Cassandra as a result of all of the above.





On Sat, Mar 31, 2012 at 12:22 PM, aaron morton wrote:

> Is there anything in the logs when you run the queries ?
>
> Try turning the logging up to DEBUG on the node that fails to return and
> see what happens. You will see it send messages to other nodes and do work
> itself.
>
> One thing to note, a query that uses secondary indexes runs on a node for
> each token range. So it will use more than CL number of nodes.
>
> Cheers
>
> -
> Aaron Morton
> Freelance Developer
> @aaronmorton
> http://www.thelastpickle.com
>
> On 30/03/2012, at 11:52 AM, Chris Hart wrote:
>
> Hi,
>
> I have the following cluster:
>
> 136112946768375385385349842972707284580
>   MountainViewRAC1Up Normal  1.86 GB
> 20.00%  0
>   MountainViewRAC1Up Normal  2.17 GB
> 33.33%  56713727820156410577229101238628035242
>   MountainViewRAC1Up Normal  2.41 GB
> 33.33%  113427455640312821154458202477256070485
>  Rackspace   RAC1Up Normal  3.9 GB
>  13.33%  136112946768375385385349842972707284580
>
> The following query runs quickly on all nodes except 1 MountainView node:
>
> select * from Access_Log where row_loaded = 0 limit 1;
>
> There is a secondary index on row_loaded.  The query usually doesn't
> complete (but sometimes does) on the bad node and returns very quickly on
> all other nodes.  I've upping the rpc timeout to a full minute
> (rpc_timeout_in_ms: 6) in the yaml, but it still often doesn't complete
> in a minute.  It seems just as likely to complete and takes about the same
> amount of time whether the limit is 1, 100 or 1000.
>
>
> Thanks for any help,
> Chris
>
>
>


Compression on client side vs server side

2012-04-02 Thread Ben McCann
Hi,

I was curious if I compress my data on the client side with Snappy whether
there's any difference between doing that and doing it on the server side?
 The wiki said that compression works best where each row has the same
columns.  Does this mean the compression will be more efficient on the
server side since it can look at multiple rows at once instead of only the
row being inserted?  The reason I was thinking about possibly doing it
client side was that it would save CPU on the datastore machine.  However,
does this matter?  Is CPU typically the bottleneck on a machine or is it
some other resource? (of course this will vary for each person, but
wondering if there's a rule of thumb.  I'm making a web app, which
hopefully will store about 5TB of data and have 10s of millions of page
views per month)

Thanks,
Ben


Re: another DataStax OpsCenter question

2012-04-02 Thread Nick Bailey
No. Each agent is responsible for collecting and reporting all the
statistics for the node it is installed on, so there shouldn't be any
duplication.

On Sat, Mar 31, 2012 at 5:01 AM, R. Verlangen  wrote:
> Nick, would that also result in useless duplicates of the statistics?
>
>
> 2012/3/30 Nick Bailey 
>>
>> Unfortunately at the moment OpsCenter only really supports having one
>> instance per cluster. It may be possible to set up an instance in each
>> datacenter, however it has not been tested and each opscenter instance
>> would lose some functionality.
>>
>> On Fri, Mar 30, 2012 at 3:13 AM, Alexandru Sicoe 
>> wrote:
>> > Hi Nick,
>> >
>> > I forgot to say I was using 1.2.3 which I think uses different ports. So
>> > I
>> > will upgrade to 1.4.1 and open those ports across the firewall although
>> > that's kind of a pain. I already have about 320 config lines for the
>> > Cassandra cluster itself.
>> >
>> > So, just to make things clear, is it mandatory to have one OpsCenter
>> > instance per Cassandra cluster? Even if that cluster is split in
>> > multiple
>> > Cassandra DCs across separate regions?
>> >
>> > Is there a way to have one OpsCenter per Cassandra DC (monitor Cassandra
>> > DCs
>> > individually)? That would get rid of many configuration issues!
>> >
>> > Cheers,
>> > Alex
>> >
>> >
>> > On Thu, Mar 29, 2012 at 9:35 PM, Nick Bailey  wrote:
>> >>
>> >> This setup may be possible although there are a few potential issues.
>> >> Firstly, see:
>> >>
>> >> http://www.datastax.com/docs/opscenter/configure_opscenter#configuring-firewall-port-access
>> >>
>> >> Basically the agents and OpsCenter communicate on ports 61620 and
>> >> 61621 by default (those can be configured though). The agents will
>> >> contact the the OpsCenter machine on port 61620. You can specify the
>> >> interface the agents will use to connect to this port when
>> >> installing/setting up the agents.
>> >>
>> >> The OpsCenter machine will contact the agents on port 61621. Right now
>> >> the OpsCenter machine will only talk to the nodes using the
>> >> listen_address configured in your cassandra conf. We have a task to
>> >> fix this in the future so that you can configure the interface that
>> >> opscenter will contact each agent on. In the meantime though OpsCenter
>> >> will need to be able to hit the listen_address for each node.
>> >>
>> >> On Thu, Mar 29, 2012 at 12:47 PM, Alexandru Sicoe 
>> >> wrote:
>> >> > Hello,
>> >> >  I am planning on testing OpsCenter to see how it can monitor a multi
>> >> > DC
>> >> > cluster. There are 2 DCs each on a different side of a firewall. I've
>> >> > configured NAT on the firewall to allow the communication between all
>> >> > Cassandra nodes on ports 7000, 7199 and 9160. The cluster works fine.
>> >> > However when I start OpsCenter (obviously on one side of the
>> >> > firewall)
>> >> > the
>> >> > OpsCenter CF gives me two schema versions in the cluster and
>> >> > basically
>> >> > messes up everything. Plus, I can only see the nodes on one the same
>> >> > side.
>> >> >
>> >> > What are the requirements to let the OpsCenter on one side see the
>> >> > Cassandra
>> >> > nodes and the OpsCenter agents on the other, and viceversa?
>> >> >
>> >> > Is it possible to use OpsCenter across a firewall?
>> >> >
>> >> > Cheers,
>> >> > Alex
>> >
>> >
>
>
>
>
> --
> With kind regards,
>
> Robin Verlangen
> www.robinverlangen.nl
>


Re: [BETA RELEASE] Apache Cassandra 1.1.0-beta2 released

2012-04-02 Thread Sylvain Lebresne
There's an open issue for that:
https://issues.apache.org/jira/browse/CASSANDRA-3676
Patch welcome :)

--
Sylvain

On Sat, Mar 31, 2012 at 8:55 PM, Ben McCann  wrote:
> I'm trying to upgrade Solandra to use 1.1.0-beta2 and think I found a minor
> issue:
> java.lang.NoClassDefFoundError: edu/stanford/ppl/concurrent/SnapTreeMap
> at
> org.apache.cassandra.db.AtomicSortedColumns$Holder.(AtomicSortedColumns.java:296)
>
> Looks like this dependency is missing from cassandra-all-1.1.0-beta2.pom.
>
>
> On Thu, Mar 29, 2012 at 1:48 PM, Sylvain Lebresne 
> wrote:
>>
>> On Thu, Mar 29, 2012 at 10:37 PM, Mohit Anchlia 
>> wrote:
>> >
>> >
>> > On Thu, Mar 29, 2012 at 1:32 PM, Sylvain Lebresne 
>> > wrote:
>> >>
>> >> As the NEWS file says, only the version 1.0.3-1.0.5 are generating
>> >> those cross-dc forwarding messages that are incompatible with 1.1. If
>> >> you're on 1.0.0, you shouldn't have that problem. To be more precise,
>> >> 1.0.0 does not generate cross-dc forwarding message at all, so you're
>> >> safe on that side.
>> >>
>> > Is cross-dc forwarding different than replication?
>>
>> Here cross-dc forwarding means the fact of optimizing cross-dc
>> replication. If we're in some DC1 and need to replicate a write to 3
>> replicas in DC2, we send just one message cross-DC, and they have the
>> one node in DC2 forward the message to the 2 other replica, instead of
>> just sending 3 message cross-DC.
>>
>> --
>> Sylvain
>>
>>
>> >>
>> >> --
>> >> Sylvain
>> >>
>> >> On Thu, Mar 29, 2012 at 9:33 PM, Mohit Anchlia 
>> >> wrote:
>> >> > Any updates?
>> >> >
>> >> >
>> >> > On Thu, Mar 29, 2012 at 7:31 AM, Mohit Anchlia
>> >> > 
>> >> > wrote:
>> >> >>
>> >> >> This is from NEWS.txt. So my question is if we are on 1.0.0-2
>> >> >> release
>> >> >> do
>> >> >> we still need to upgrade since this impacts releases between
>> >> >> 1.0.3-1.0.5?
>> >> >> -
>> >> >> If you are running a multi datacenter setup, you should upgrade to
>> >> >>   the latest 1.0.x (or 0.8.x) release before upgrading.
>> >> >> Versions
>> >> >>   0.8.8 and 1.0.3-1.0.5 generate cross-dc forwarding that is
>> >> >> incompatible
>> >> >>   with 1.1.
>> >> >> -
>> >> >>
>> >> >> On Thu, Mar 29, 2012 at 4:51 AM, Sylvain Lebresne
>> >> >> 
>> >> >> wrote:
>> >> >>>
>> >> >>> To be clear, the incompatibility we've talked about does *not*
>> >> >>> concern
>> >> >>> any of the 1.0 releases (you'll want to refer NEWS file for any
>> >> >>> details on the upgrade path for these versions).
>> >> >>> The incompatibility here is only between 1.1.0-beta1 and
>> >> >>> 1.1.0-beta2.
>> >> >>>
>> >> >>> --
>> >> >>> Sylvain
>> >> >>>
>> >> >>> On Thu, Mar 29, 2012 at 2:50 AM, Mohit Anchlia
>> >> >>> 
>> >> >>> wrote:
>> >> >>> > We are currently using 1.0.0-2  version. Do we still need to
>> >> >>> > migrate
>> >> >>> > to
>> >> >>> > the
>> >> >>> > latest release of 1.0 before migrating to 1.1? Looks like
>> >> >>> > incompatibility is
>> >> >>> > only between 1.0.3-1.0.8.
>> >> >>> >
>> >> >>> >
>> >> >>> > On Tue, Mar 27, 2012 at 6:42 AM, Benoit Perroud
>> >> >>> > 
>> >> >>> > wrote:
>> >> >>> >>
>> >> >>> >> Thanks for the quick feedback.
>> >> >>> >>
>> >> >>> >> I will drop the schema then.
>> >> >>> >>
>> >> >>> >> Benoit.
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> Le 27 mars 2012 14:50, Sylvain Lebresne  a
>> >> >>> >> écrit
>> >> >>> >> :
>> >> >>> >> > Actually, there was a few changes to the on-disk format of
>> >> >>> >> > schema
>> >> >>> >> > between beta1 and beta2 so upgrade is not supported between
>> >> >>> >> > those
>> >> >>> >> > two
>> >> >>> >> > beta versions.
>> >> >>> >> > Sorry for any inconvenience.
>> >> >>> >> >
>> >> >>> >> > --
>> >> >>> >> > Sylvain
>> >> >>> >> >
>> >> >>> >> > On Tue, Mar 27, 2012 at 12:57 PM, Benoit Perroud
>> >> >>> >> > 
>> >> >>> >> > wrote:
>> >> >>> >> >> Hi All,
>> >> >>> >> >>
>> >> >>> >> >> Thanks a lot for the release.
>> >> >>> >> >> I just upgraded my 1.1-beta1 to 1.1-beta2, and I get the
>> >> >>> >> >> following
>> >> >>> >> >> error :
>> >> >>> >> >>
>> >> >>> >> >>  INFO 10:56:17,089 Opening
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >> /app/cassandra/data/data/system/LocationInfo/system-LocationInfo-hc-18
>> >> >>> >> >> (74 bytes)
>> >> >>> >> >>  INFO 10:56:17,092 Opening
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >> /app/cassandra/data/data/system/LocationInfo/system-LocationInfo-hc-17
>> >> >>> >> >> (486 bytes)
>> >> >>> >> >> ERROR 10:56:17,306 Exception encountered during startup
>> >> >>> >> >> java.lang.NullPointerException
>> >> >>> >> >>        at
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >> org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:163)
>> >> >>> >> >>        at
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >> org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:120)
>> >> >>> >> >>        at
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >> >> org.apac

Re:

2012-04-02 Thread Everton Lima
???

2012/4/1 juan quintero 

>


-- 

Everton Lima Aleixo
Bacharel em Ciencia da Computação
Universidade Federal de Goiás


Re: Using Thrift

2012-04-02 Thread Dave Brosius
slf4j is just a logging facade, if you actually want log files, you need 
a logger, say log4j-*.jar in your classpath. Then just configure that 
with a log4j.properties file. That properties file also needs to be on 
the classpath.




On 04/02/2012 09:05 AM, Rishabh Agrawal wrote:


I didn't fine slf4j files in distribution. So I downloaded them can 
you help me how to configure it.


*From:*Dave Brosius [mailto:dbros...@mebigfatguy.com]
*Sent:* Monday, April 02, 2012 6:28 PM
*To:* user@cassandra.apache.org
*Subject:* Re: Using Thrift

For a thrift client, you need the following jars at a minimum

apache-cassandra-clientutil-*.jar
apache-cassandra-thrift-*.jar
libthrift-*.jar
slf4j-api-*.jar
slf4j-log4j12-*.jar

all of these jars can be found in the cassandra distribution.



On 04/02/2012 07:40 AM, Rishabh Agrawal wrote:

Any suggestions

*From:*Rishabh Agrawal
*Sent:* Monday, April 02, 2012 4:42 PM
*To:* user@cassandra.apache.org 
*Subject:* Using Thrift

Hello,

I have just started exploring Cassandra from java side and using wish 
to use thrift as my api. The problem is whenever is I try to compile 
my java code I get following error :


"package org.slf4j does not exist"

Can anyone help me with this.

Thanks and Regards

Rishabh Agrawal




Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. 
Know more about our Big Data quick-start program at the event.


New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis 
On-premise' available at http://bit.ly/z6zT4L.



NOTE: This message may contain information that is confidential, 
proprietary, privileged or otherwise protected by law. The message is 
intended solely for the named addressee. If received in error, please 
destroy and notify the sender. Any use of this email is prohibited 
when received in error. Impetus does not represent, warrant and/or 
guarantee, that the integrity of this communication has been 
maintained nor that the communication is free of errors, virus, 
interception or interference.





Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. 
Know more about our Big Data quick-start program at the event.


New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis 
On-premise' available at http://bit.ly/z6zT4L.



NOTE: This message may contain information that is confidential, 
proprietary, privileged or otherwise protected by law. The message is 
intended solely for the named addressee. If received in error, please 
destroy and notify the sender. Any use of this email is prohibited 
when received in error. Impetus does not represent, warrant and/or 
guarantee, that the integrity of this communication has been 
maintained nor that the communication is free of errors, virus, 
interception or interference.





Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. 
Know more about our Big Data quick-start program at the event.


New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis 
On-premise' available at http://bit.ly/z6zT4L.



NOTE: This message may contain information that is confidential, 
proprietary, privileged or otherwise protected by law. The message is 
intended solely for the named addressee. If received in error, please 
destroy and notify the sender. Any use of this email is prohibited 
when received in error. Impetus does not represent, warrant and/or 
guarantee, that the integrity of this communication has been 
maintained nor that the communication is free of errors, virus, 
interception or interference.




RE: Using Thrift

2012-04-02 Thread Sasha Dolgy
Best to read about maven.  Save you some grief.
On Apr 2, 2012 3:05 PM, "Rishabh Agrawal" 
wrote:

>  I didn’t fine slf4j files in distribution. So I downloaded them can you
> help me how to configure it.
>
>
>
> *From:* Dave Brosius [mailto:dbros...@mebigfatguy.com]
> *Sent:* Monday, April 02, 2012 6:28 PM
> *To:* user@cassandra.apache.org
> *Subject:* Re: Using Thrift
>
>
>
> For a thrift client, you need the following jars at a minimum
>
> apache-cassandra-clientutil-*.jar
> apache-cassandra-thrift-*.jar
> libthrift-*.jar
> slf4j-api-*.jar
> slf4j-log4j12-*.jar
>
> all of these jars can be found in the cassandra distribution.
>
>
>
> On 04/02/2012 07:40 AM, Rishabh Agrawal wrote:
>
> Any suggestions….
>
>
>
> *From:* Rishabh Agrawal
> *Sent:* Monday, April 02, 2012 4:42 PM
> *To:* user@cassandra.apache.org
> *Subject:* Using Thrift
>
>
>
> Hello,
>
>
>
> I have just started exploring Cassandra from java side and using wish to
> use thrift as my api. The problem is whenever is I try to compile my java
> code I get following error :
>
>
>
> “package org.slf4j does not exist”
>
>
>
> Can anyone help me with this.
>
>
>
> Thanks and Regards
>
> Rishabh Agrawal
>
>
>  --
>
>
> Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know
> more about our Big Data quick-start program at the event.
>
> New Impetus webcast ‘Cloud-enabled Performance Testing vis-à-vis
> On-premise’ available at http://bit.ly/z6zT4L.
>
>
> NOTE: This message may contain information that is confidential,
> proprietary, privileged or otherwise protected by law. The message is
> intended solely for the named addressee. If received in error, please
> destroy and notify the sender. Any use of this email is prohibited when
> received in error. Impetus does not represent, warrant and/or guarantee,
> that the integrity of this communication has been maintained nor that the
> communication is free of errors, virus, interception or interference.
>
>
>  --
>
>
> Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know
> more about our Big Data quick-start program at the event.
>
> New Impetus webcast ‘Cloud-enabled Performance Testing vis-à-vis
> On-premise’ available at http://bit.ly/z6zT4L.
>
>
> NOTE: This message may contain information that is confidential,
> proprietary, privileged or otherwise protected by law. The message is
> intended solely for the named addressee. If received in error, please
> destroy and notify the sender. Any use of this email is prohibited when
> received in error. Impetus does not represent, warrant and/or guarantee,
> that the integrity of this communication has been maintained nor that the
> communication is free of errors, virus, interception or interference.
>
>
>
> --
>
> Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know
> more about our Big Data quick-start program at the event.
>
> New Impetus webcast ‘Cloud-enabled Performance Testing vis-à-vis
> On-premise’ available at http://bit.ly/z6zT4L.
>
>
> NOTE: This message may contain information that is confidential,
> proprietary, privileged or otherwise protected by law. The message is
> intended solely for the named addressee. If received in error, please
> destroy and notify the sender. Any use of this email is prohibited when
> received in error. Impetus does not represent, warrant and/or guarantee,
> that the integrity of this communication has been maintained nor that the
> communication is free of errors, virus, interception or interference.
>


RE: Using Thrift

2012-04-02 Thread Rishabh Agrawal
I didn't fine slf4j files in distribution. So I downloaded them can you help me 
how to configure it.

From: Dave Brosius [mailto:dbros...@mebigfatguy.com]
Sent: Monday, April 02, 2012 6:28 PM
To: user@cassandra.apache.org
Subject: Re: Using Thrift

For a thrift client, you need the following jars at a minimum

apache-cassandra-clientutil-*.jar
apache-cassandra-thrift-*.jar
libthrift-*.jar
slf4j-api-*.jar
slf4j-log4j12-*.jar

all of these jars can be found in the cassandra distribution.



On 04/02/2012 07:40 AM, Rishabh Agrawal wrote:
Any suggestions

From: Rishabh Agrawal
Sent: Monday, April 02, 2012 4:42 PM
To: user@cassandra.apache.org
Subject: Using Thrift

Hello,

I have just started exploring Cassandra from java side and using wish to use 
thrift as my api. The problem is whenever is I try to compile my java code I 
get following error :

"package org.slf4j does not exist"

Can anyone help me with this.

Thanks and Regards
Rishabh Agrawal



Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know more 
about our Big Data quick-start program at the event.

New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis On-premise' 
available at http://bit.ly/z6zT4L.


NOTE: This message may contain information that is confidential, proprietary, 
privileged or otherwise protected by law. The message is intended solely for 
the named addressee. If received in error, please destroy and notify the 
sender. Any use of this email is prohibited when received in error. Impetus 
does not represent, warrant and/or guarantee, that the integrity of this 
communication has been maintained nor that the communication is free of errors, 
virus, interception or interference.



Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know more 
about our Big Data quick-start program at the event.

New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis On-premise' 
available at http://bit.ly/z6zT4L.


NOTE: This message may contain information that is confidential, proprietary, 
privileged or otherwise protected by law. The message is intended solely for 
the named addressee. If received in error, please destroy and notify the 
sender. Any use of this email is prohibited when received in error. Impetus 
does not represent, warrant and/or guarantee, that the integrity of this 
communication has been maintained nor that the communication is free of errors, 
virus, interception or interference.




Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. Know more 
about our Big Data quick-start program at the event.

New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis On-premise' 
available at http://bit.ly/z6zT4L.


NOTE: This message may contain information that is confidential, proprietary, 
privileged or otherwise protected by law. The message is intended solely for 
the named addressee. If received in error, please destroy and notify the 
sender. Any use of this email is prohibited when received in error. Impetus 
does not represent, warrant and/or guarantee, that the integrity of this 
communication has been maintained nor that the communication is free of errors, 
virus, interception or interference.


Re: Using Thrift

2012-04-02 Thread Dave Brosius

For a thrift client, you need the following jars at a minimum

apache-cassandra-clientutil-*.jar
apache-cassandra-thrift-*.jar
libthrift-*.jar
slf4j-api-*.jar
slf4j-log4j12-*.jar

all of these jars can be found in the cassandra distribution.



On 04/02/2012 07:40 AM, Rishabh Agrawal wrote:


Any suggestions

*From:*Rishabh Agrawal
*Sent:* Monday, April 02, 2012 4:42 PM
*To:* user@cassandra.apache.org
*Subject:* Using Thrift

Hello,

I have just started exploring Cassandra from java side and using wish 
to use thrift as my api. The problem is whenever is I try to compile 
my java code I get following error :


"package org.slf4j does not exist"

Can anyone help me with this.

Thanks and Regards

Rishabh Agrawal




Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. 
Know more about our Big Data quick-start program at the event.


New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis 
On-premise' available at http://bit.ly/z6zT4L.



NOTE: This message may contain information that is confidential, 
proprietary, privileged or otherwise protected by law. The message is 
intended solely for the named addressee. If received in error, please 
destroy and notify the sender. Any use of this email is prohibited 
when received in error. Impetus does not represent, warrant and/or 
guarantee, that the integrity of this communication has been 
maintained nor that the communication is free of errors, virus, 
interception or interference.





Impetus to sponsor and exhibit at Structure Data 2012, NY; Mar 21-22. 
Know more about our Big Data quick-start program at the event.


New Impetus webcast 'Cloud-enabled Performance Testing vis-à-vis 
On-premise' available at http://bit.ly/z6zT4L.



NOTE: This message may contain information that is confidential, 
proprietary, privileged or otherwise protected by law. The message is 
intended solely for the named addressee. If received in error, please 
destroy and notify the sender. Any use of this email is prohibited 
when received in error. Impetus does not represent, warrant and/or 
guarantee, that the integrity of this communication has been 
maintained nor that the communication is free of errors, virus, 
interception or interference.




Cassandra CF merkle tree

2012-04-02 Thread Thomas van Neerijnen
Hi all

Is there a way I can easily retrieve a Merkle tree for a CF, like the one
created during a repair?
I didn't see anything about this in the Thrift API docs, I'm assuming this
is a data structure made available only to internal Cassandra functions.

I would like to explore using the Merkle trees as a method for data
integrity checks after config changes, version upgrades, and probably loads
of other scenarios I haven't even thought of that may result in data loss
going initially unnoticed.


Re: Row iteration using RandomPartitioner

2012-04-02 Thread Jake Luciani
Correct. Random partitioner order is md5 token order. If you make no changes 
you will get the same order

 

On Apr 2, 2012, at 7:53 AM,  wrote:

> Hi,
> 
> Bit of a silly question, is row iteration using the RandomPartitioner 
> deterministic?  I don't particularly care what the order is relative to the 
> row keys (obviously there isn't one, it's the RandomPartitioner), but if I 
> run a full iteration over all rows in a CF twice, assuming no underlying 
> changes to the CF in the meantime, will the rows be returned in the same 
> order both times?
> 
> I assume so, as I don’t see how one could use get_range_slices to do this 
> otherwise, but I wanted to check.
> 
> Visit our website at http://www.ubs.com 
> 
> This message contains confidential information and is intended only 
> for the individual named. If you are not the named addressee you 
> should not disseminate, distribute or copy this e-mail. Please 
> notify the sender immediately by e-mail if you have received this 
> e-mail by mistake and delete this e-mail from your system. 
> 
> E-mails are not encrypted and cannot be guaranteed to be secure or 
> error-free as information could be intercepted, corrupted, lost, 
> destroyed, arrive late or incomplete, or contain viruses. The sender 
> therefore does not accept liability for any errors or omissions in the 
> contents of this message which arise as a result of e-mail transmission. 
> If verification is required please request a hard-copy version. This 
> message is provided for informational purposes and should not be 
> construed as a solicitation or offer to buy or sell any securities 
> or related financial instruments. 
> 
> UBS Limited is a company limited by shares incorporated in the United 
> Kingdom registered in England and Wales with number 2035362. 
> Registered office: 1 Finsbury Avenue, London EC2M 2PP.  UBS Limited 
> is authorised and regulated by the Financial Services Authority. 
> 
> UBS AG is a public company incorporated with limited liability in 
> Switzerland domiciled in the Canton of Basel-City and the Canton of 
> Zurich respectively registered at the Commercial Registry offices in 
> those Cantons with Identification No: CH-270.3.004.646-4 and having 
> respective head offices at Aeschenvorstadt 1, 4051 Basel and 
> Bahnhofstrasse 45, 8001 Zurich, Switzerland.  Registered in the 
> United Kingdom as a foreign company with No: FC021146 and having a 
> UK Establishment registered at Companies House, Cardiff, with No:  
> BR 004507.  The principal office of UK Establishment: 1 Finsbury Avenue, 
> London EC2M 2PP.  In the United Kingdom, UBS AG is authorised and 
> regulated by the Financial Services Authority.
> 
> UBS reserves the right to retain all messages. Messages are protected 
> and accessed only in legally justified cases.


Row iteration using RandomPartitioner

2012-04-02 Thread christopher-t.ng
Hi,

Bit of a silly question, is row iteration using the RandomPartitioner
deterministic?  I don't particularly care what the order is relative to
the row keys (obviously there isn't one, it's the RandomPartitioner),
but if I run a full iteration over all rows in a CF twice, assuming no
underlying changes to the CF in the meantime, will the rows be returned
in the same order both times?

I assume so, as I don't see how one could use get_range_slices to do
this otherwise, but I wanted to check.
Visit our website at http://www.ubs.com 

This message contains confidential information and is intended only 
for the individual named. If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail. Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system. 

E-mails are not encrypted and cannot be guaranteed to be secure or 
error-free as information could be intercepted, corrupted, lost, 
destroyed, arrive late or incomplete, or contain viruses. The sender 
therefore does not accept liability for any errors or omissions in the 
contents of this message which arise as a result of e-mail transmission. 
If verification is required please request a hard-copy version. This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities 
or related financial instruments. 

UBS Limited is a company limited by shares incorporated in the United 
Kingdom registered in England and Wales with number 2035362. 
Registered office: 1 Finsbury Avenue, London EC2M 2PP.  UBS Limited 
is authorised and regulated by the Financial Services Authority. 

UBS AG is a public company incorporated with limited liability in 
Switzerland domiciled in the Canton of Basel-City and the Canton of 
Zurich respectively registered at the Commercial Registry offices in 
those Cantons with Identification No: CH-270.3.004.646-4 and having 
respective head offices at Aeschenvorstadt 1, 4051 Basel and 
Bahnhofstrasse 45, 8001 Zurich, Switzerland.  Registered in the 
United Kingdom as a foreign company with No: FC021146 and having a 
UK Establishment registered at Companies House, Cardiff, with No:  
BR 004507.  The principal office of UK Establishment: 1 Finsbury Avenue, 
London EC2M 2PP.  In the United Kingdom, UBS AG is authorised and 
regulated by the Financial Services Authority.

UBS reserves the right to retain all messages. Messages are protected 
and accessed only in legally justified cases. 

Error Replicate on write

2012-04-02 Thread Carlos Juzarte Rolo

Hi,

I've been using cassandra for a while, but after a upgrade to 1.0.7, 
every machine kept running perfectly. Well, except one that constantly 
throws this error:


ERROR [ReplicateOnWriteStage:39] 2012-04-02 12:02:55,131 
AbstractCassandraDaemon.java (line 139) Fatal exception in thread 
Thread[ReplicateOnWriteStage:39,5,main]
java.lang.NoClassDefFoundError: Could not initialize class 
org.apache.cassandra.cache.FreeableMemory
at 
org.apache.cassandra.cache.SerializingCache.serialize(SerializingCache.java:92)
at 
org.apache.cassandra.cache.SerializingCache.put(SerializingCache.java:154)
at 
org.apache.cassandra.cache.InstrumentingCache.put(InstrumentingCache.java:63)
at 
org.apache.cassandra.db.ColumnFamilyStore.cacheRow(ColumnFamilyStore.java:1170)
at 
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1194)
at 
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1151)

at org.apache.cassandra.db.Table.getRow(Table.java:375)
at 
org.apache.cassandra.db.SliceByNamesReadCommand.getRow(SliceByNamesReadCommand.java:58)
at 
org.apache.cassandra.db.CounterMutation.makeReplicationMutation(CounterMutation.java:99)
at 
org.apache.cassandra.service.StorageProxy$7$1.runMayThrow(StorageProxy.java:544)
at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1223)
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)

The machine does run, but nodetool doesn't connect to the machine for 
example.


Any ideia from what could be trigerring this?

Thanks,


Largest 'sensible' value

2012-04-02 Thread Franc Carter
Hi,

We are in the early stages of thinking about a project that needs to store
data that will be accessed by Hadoop. One of the concerns we have is around
the Latency of HDFS as our use case is is not for reading all the data and
hence we will need custom RecordReaders etc.

I've seen a couple of comments that you shouldn't put large chunks in to a
value - however 'large' is not well defined for the range of people using
these solutions ;-)

Doe anyone have a rough rule of thumb for how big a single value can be
before we are outside sanity?

thanks

-- 

*Franc Carter* | Systems architect | Sirca Ltd
 

franc.car...@sirca.org.au | www.sirca.org.au

Tel: +61 2 9236 9118

Level 9, 80 Clarence St, Sydney NSW 2000

PO Box H58, Australia Square, Sydney NSW 1215


Re: sstable2json and resurrected rows

2012-04-02 Thread Jonas Borgström

On 2012-03-31 08:45 , Zhu Han wrote:

Did you hit the bug here?

https://issues.apache.org/jira/browse/CASSANDRA-4054


Yes looks like it. But what confuses me most is not the sstable2json bug 
but why the major compaction does not replace the deleted row data with 
a tombstone.


Is that a bug or a feature?

To me it just looks like a wast of disk space...

/ Jonas



best regards,

坚果云 , 最简捷易用的云存储
无限空间, 文件同步, 备份和分享!


2012/3/30 Jonas Borgström mailto:jo...@borgstrom.se>>

Let me rephrase my question:

Is it true that deleted rows will still be present in the sstable
after a major compaction with 1.0.8 (not just tombstones)?

Or did I mess up my test below?

/ Jonas



On 2012-03-28 10:23 , Jonas Borgström wrote:

Hi all,

I've noticed a change in behavior between 0.8.10 and 1.0.8 when
it comes
to sstable2json output and major compactions. Is this a bug or
intended
behavior?

With 1.0.8:

create keyspace ks;
use ks;
create column family foo;
set foo[1][1] = 1;
nodetool -h localhost flush
sstable2json foo-hc-1-Data.db =>
{
"01": [["01","01",1332920802272000]]
}
del foo[1];
set foo[2][2] = 2;
nodetool -h localhost flush
sstable2json foo-hc-2-Data.db =>
{
"01": [],
"02": [["02","02",133292084309]]
}
nodetool -h localhost compact ks foo

So far so good. But now I expect the resulting sstable to look like
foo-hc-2 (the way 0.8.10 behaves) but instead it looks like the
deleted
foo[1] has been resurrected (foo[1] is still deleted when using the
thrift api):

sstable2json foo-hc-3-Data.db =>
{
"01": [["01","01",1332920802272000]]__,
"02": [["02","02",133292084309]]
}

So why is the full foo[1] row included in the sstable2json
output and
not just a tombstone?

This is both a wast of disk space and makes it impossible to
trust the
sstable2json output.

/ Jonas