You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by "Desimpel, Ignace" <Ig...@nuance.com> on 2011/04/20 13:00:52 UTC

Different result after restart

Cassandra version 0.7.4

 

Hi,

 

I'm storing (no deletion) in a small test some records to an embedded
Cassandra instance.

Then I connect using Thrift and I can retrieve the data as excepted.

 

Then I restart the server with the embedded Cassandra, reconnect using
Thrift but now the same query gives me no results at all.

After restart the commitlog directory get cleared leaving only a small
log and a small log.header file. The data directory for the keyspace is
still present together with the db files corresponding the column
families.

Any idea what I would be doing wrong here?

 

 

Ignace 


RE: Different result after restart

Posted by "Desimpel, Ignace" <Ig...@nuance.com>.
Aaron,

 

Already found out what the problem was. I was using an AbstractType
comparator for a column family. That code was changing the given
ByteBuffer position and was not supposed to do that (Hinted by Sylvain
Lebresne !).

Anyway, after correcting that problem I got back the results as before.
Still don't grasp how this relates to the restart of the server, but
I'am happy as is.

 

Thanks very much Aaron!

 

Ignace

 

 

From: aaron morton [mailto:aaron@thelastpickle.com] 
Sent: Wednesday, April 20, 2011 1:40 PM
To: user@cassandra.apache.org
Subject: Re: Different result after restart

 

Checking the simple things first, are you using the
o.a.c.service.EmbeddedCassandraService or  the o.a.c.EmbeddedServer in
the unit test directory ? The later deletes data, but it does not sound
like you are using it.

 

When the server starts it should read any commit logs, roll them forward
and then flush all the changes to SSTables. Which will result in the log
files been deleted from disk, and you should see INFO level log messages
that say "Discarding obsolete commit log:..."

 

Do you get new SSTables written at start up ? 

 

If you wanted to confirm the data was there take a look at
bin/sstable2json 

 

Hope that helps. 

Aaron

 

 

 

On 20 Apr 2011, at 23:00, Desimpel, Ignace wrote:





Cassandra version 0.7.4

 

Hi,

 

I'm storing (no deletion) in a small test some records to an embedded
Cassandra instance.

Then I connect using Thrift and I can retrieve the data as excepted.

 

Then I restart the server with the embedded Cassandra, reconnect using
Thrift but now the same query gives me no results at all.

After restart the commitlog directory get cleared leaving only a small
log and a small log.header file. The data directory for the keyspace is
still present together with the db files corresponding the column
families.

Any idea what I would be doing wrong here?

 

 

Ignace

 


RE: Different result after restart

Posted by "Desimpel, Ignace" <Ig...@nuance.com>.
I'm using the org.apache.cassandra.thrift.CassandraDeamon
implementation. I have done the same with version 0.6.x but now modified
the code for version 0.7.4. I could restart without problem in 0.6.x.

 

I get (did not add them all) the following messages :

(Keyspace is 'SearchSpace', CF names like 'ReverseStringValues'
'ReverseLabelValues' , "Structure', ... )

 

2011-04-20 12:27:48 INFO  AbstractCassandraDaemon - Logging initialized

2011-04-20 12:27:48 INFO  AbstractCassandraDaemon - Heap size:
10719985664/10719985664

2011-04-20 12:27:48 WARN  CLibrary - Obsolete version of JNA present;
unable to register C library. Upgrade to JNA 3.2.7 or later

2011-04-20 12:27:48 INFO  DatabaseDescriptor - Loading settings from
file:C:/develop/configs/AnnotationServer7/properties/cassandra.yaml

2011-04-20 12:27:48 INFO  DatabaseDescriptor - DiskAccessMode 'auto'
determined to be mmap, indexAccessMode is mmap

...

2011-04-20 12:27:49 INFO  CommitLogSegment - Creating new commitlog
segment ../cassandra/dbcommitlog\CommitLog-1303295269011.log

2011-04-20 12:27:49 INFO  CommitLog - Replaying
..\cassandra\dbcommitlog\CommitLog-1303294884815.log

2011-04-20 12:27:54 INFO  CommitLog - Finished reading
..\cassandra\dbcommitlog\CommitLog-1303294884815.log

2011-04-20 12:27:54 INFO  ColumnFamilyStore - Enqueuing flush of
Memtable-ReverseStringValues@249550264(8519832 bytes, 189992 operations)

2011-04-20 12:27:54 INFO  Memtable - Writing
Memtable-ReverseStringValues@249550264(8519832 bytes, 189992 operations)

2011-04-20 12:27:54 INFO  ColumnFamilyStore - Enqueuing flush of
Memtable-ReverseLabelValues@1617914474(1339548 bytes, 31894 operations)

2011-04-20 12:27:54 INFO  Memtable - Writing
Memtable-ReverseLabelValues@1617914474(1339548 bytes, 31894 operations)

2011-04-20 12:27:55 INFO  ColumnFamilyStore - Enqueuing flush of
Memtable-ForwardLabelValues@1924550782(1339548 bytes, 31894 operations)

2011-04-20 12:27:55 INFO  Memtable - Writing
Memtable-ForwardLabelValues@1924550782(1339548 bytes, 31894 operations)

...

2011-04-20 12:27:58 INFO  CommitLog - Log replay complete

....

2011-04-20 12:27:57 INFO  CompactionManager - Compacting
[SSTableReader(path='..\cassandra\dbdatafile\SearchSpace\Structure-f-1-D
ata.db'),SSTableReader(path='..\cassandra\dbdatafile\SearchSpace\Structu
re-f-2-Data.db')]

...

2011-04-20 12:27:57 INFO  ColumnFamilyStore - Enqueuing flush of
Memtable-ReverseDoubleValues@1985313813(56946 bytes, 1265 operations)

2011-04-20 12:27:57 INFO  Memtable - Writing
Memtable-ReverseDoubleValues@1985313813(56946 bytes, 1265 operations)

2011-04-20 12:27:57 INFO  ColumnFamilyStore - Enqueuing flush of
Memtable-Documents@1715831652(1872209 bytes, 36 operations)

2011-04-20 12:27:57 INFO  Memtable - Writing
Memtable-Documents@1715831652(1872209 bytes, 36 operations)

 

2011-04-20 12:27:59 INFO  CompactionManager - Compacting
[SSTableReader(path='..\cassandra\dbdatafile\system\LocationInfo-f-1-Dat
a.db'),SSTableReader(path='..\cassandra\dbdatafile\system\LocationInfo-f
-2-Data.db'),SSTableReader(path='..\cassandra\dbdatafile\system\Location
Info-f-3-Data.db'),SSTableReader(path='..\cassandra\dbdatafile\system\Lo
cationInfo-f-4-Data.db')]

2011-04-20 12:27:59 INFO  Mx4jTool - Will not load MX4J, mx4j-tools.jar
is not in the classpath

2011-04-20 12:27:59 INFO  CassandraDaemon - Binding thrift service to
GH-DSK0178.nuance.com/10.184.56.115:9160

2011-04-20 12:27:59 INFO  CassandraDaemon - Listening for thrift
clients...

2011-04-20 12:27:59 INFO  CompactionManager - Compacted to
..\cassandra\dbdatafile\system\LocationInfo-tmp-f-5-Data.db.  751 to 457
(~60% of original) bytes for 3 keys.  Time: 370ms.

2011-04-20 12:28:02 INFO  SearchServer - Annotation labels present.
Count labels : 568

 

I do not get any message saying 'Discarding obsolete ..'. The replayed
commit file however is deleted. The only one left is the new
CommitLog-1303295269011. But I thought that is normal at restart.

Some data is still there and could be queried and that is why there is
my own message saying '..Annotation labels present. Count labels :
568...' 

The column family I wanted to access in my query is ForwardLabelValues
(also present in the log extraction here). And the size of the file on
disk is 3.5 m bytes. Also the query I specify is one that should get all
the 'records'.

 

I did try the sstable2json but must be doing something wrong. I got :

 

sstable2json
C:\develop\configs\AnnotationServer7\cassandra\dbdatafile\SearchSpace\Fo
rwardLabelValues-f-1-Data.db

no non-system tables are defined

Exception in thread "main"
org.apache.cassandra.config.ConfigurationException: no non-system tables
are defined

        at
org.apache.cassandra.tools.SSTableExport.main(SSTableExport.java:457)

 

Thanks,

Ignace

 

From: aaron morton [mailto:aaron@thelastpickle.com] 
Sent: Wednesday, April 20, 2011 1:40 PM
To: user@cassandra.apache.org
Subject: Re: Different result after restart

 

Checking the simple things first, are you using the
o.a.c.service.EmbeddedCassandraService or  the o.a.c.EmbeddedServer in
the unit test directory ? The later deletes data, but it does not sound
like you are using it.

 

When the server starts it should read any commit logs, roll them forward
and then flush all the changes to SSTables. Which will result in the log
files been deleted from disk, and you should see INFO level log messages
that say "Discarding obsolete commit log:..."

 

Do you get new SSTables written at start up ? 

 

If you wanted to confirm the data was there take a look at
bin/sstable2json 

 

Hope that helps. 

Aaron

 

 

 

On 20 Apr 2011, at 23:00, Desimpel, Ignace wrote:





Cassandra version 0.7.4

 

Hi,

 

I'm storing (no deletion) in a small test some records to an embedded
Cassandra instance.

Then I connect using Thrift and I can retrieve the data as excepted.

 

Then I restart the server with the embedded Cassandra, reconnect using
Thrift but now the same query gives me no results at all.

After restart the commitlog directory get cleared leaving only a small
log and a small log.header file. The data directory for the keyspace is
still present together with the db files corresponding the column
families.

Any idea what I would be doing wrong here?

 

 

Ignace

 


Re: Different result after restart

Posted by aaron morton <aa...@thelastpickle.com>.
Checking the simple things first, are you using the o.a.c.service.EmbeddedCassandraService or  the o.a.c.EmbeddedServer in the unit test directory ? The later deletes data, but it does not sound like you are using it.

When the server starts it should read any commit logs, roll them forward and then flush all the changes to SSTables. Which will result in the log files been deleted from disk, and you should see INFO level log messages that say "Discarding obsolete commit log:..."

Do you get new SSTables written at start up ? 

If you wanted to confirm the data was there take a look at bin/sstable2json 

Hope that helps. 
Aaron



On 20 Apr 2011, at 23:00, Desimpel, Ignace wrote:

> Cassandra version 0.7.4
>  
> Hi,
>  
> I’m storing (no deletion) in a small test some records to an embedded Cassandra instance.
> Then I connect using Thrift and I can retrieve the data as excepted.
>  
> Then I restart the server with the embedded Cassandra, reconnect using Thrift but now the same query gives me no results at all.
> After restart the commitlog directory get cleared leaving only a small log and a small log.header file. The data directory for the keyspace is still present together with the db files corresponding the column families.
> Any idea what I would be doing wrong here?
>  
>  
> Ignace