[
http://jira.amdatu.org/jira/browse/AMDATU-254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=10647#comment-10647
]
Ivo Ladage - van Doorn commented on AMDATU-254:
-----------------------------------------------
It seems that this not a valid way to add a new node to the cluster. On this
page:
http://wiki.apache.org/cassandra/FAQ#existing_data_when_adding_new_nodes
it clearly states that; "Under no circumstances should you introduce a new
empty node to your cluster and have autoboostrap disabled"
This is exactly what we are doing; auto_bootstrap is false by default and a new
node is booted empty.
So tried with auto_bootstrap set to true. The downside of auto bootstrapping is
that booting amdatu will increase the boot time significantly. the auto
bootstrap mode does not much more then forcing a 90 seconds wait, to give the
node the time to merge data from all nodes in the cluster. After that, it wait
another 30 seconds for 'pending range setup'.
But worse, in the end starting the node fails on this error:
ERROR: Fatal exception in thread Thread[Thread-14,5,main]
[org.amdatu.core.loghandler]
String index out of range: -1
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1937)
at
org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:115)
at
org.apache.cassandra.streaming.PendingFile$PendingFileSerializer.deserialize(PendingFile.java:126)
at
org.apache.cassandra.streaming.StreamHeader$StreamHeaderSerializer.deserialize(StreamHeader.java:90)
at
org.apache.cassandra.streaming.StreamHeader$StreamHeaderSerializer.deserialize(StreamHeader.java:72)
at
org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:73)
Using the debugger it seems a problem with different file separator between
Linux and Windows. The first node I start on a Linux OS, the second one on a
Windows OS. Now it receives an event to merge data from
work/cassandra/data/Default/Role-e-1-Data.db but in the Descriptor.fromFilename
method it tries to retrieve the filename from this path by File.separatorChar.
> When a new cassandra node comes available in the cluster, random data is
> removed from the Role ColumnFamily
> -----------------------------------------------------------------------------------------------------------
>
> Key: AMDATU-254
> URL: http://jira.amdatu.org/jira/browse/AMDATU-254
> Project: Amdatu
> Issue Type: Bug
> Components: Amdatu Cassandra
> Affects Versions: 0.1.0
> Reporter: Ivo Ladage - van Doorn
> Fix For: 0.1.0
>
>
> The following use case causes random data to disappear from the cassandra
> storage:
> - Start a node in the cassandra cluster with replication factor 1
> - Start another node in the cassandra cluste, also with replication factor 1
> Now apparently, bringing up the second node in the cluster causes random data
> to be removed from the Role ColumnFamily. After bringing up the first node,
> these are the row keys available in the CF 'Role';
> (1) user_marior
> (2) user_janed
> (3) group_Parent
> (4) user_melissad
> (5) group_Student
> (6) group_Administrators
> (7) user_georged
> (8) user_tedb
> (9) group_Teacher
> (10) user_elisad
> (11) user_Administrator
> (12) user_maijam
> (13) user_johnd
> After booting the second node, random data disappeared:
> (1) user_marior
> (2) group_Teacher
> (3) user_elisad
> (4) user_Administrator
> (5) user_maijam
> (6) user_johnd
> the result is different every time you try it. Also, when I stop node 2,
> clean its cassandra database and start it again, more data is missing.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira