Perhaps have a read here?
https://docs.datastax.com/en/cassandra-oss/3.x/cassandra/operations/opsAddNodeToCluster.html
On 04/04/2023 06:41, David Tinker wrote:
Ok. Have to psych myself up to the add node task a bit. Didn't go well
the first time round!
Tasks
- Make sure the new node is not in seeds list!
- Check cluster name, listen address, rpc address
- Give it its own rack in cassandra-rackdc.properties
- Delete cassandra-topology.properties if it exists
- Make sure no compactions are on the go
- rm -rf /var/lib/cassandra/*
- rm /data/cassandra/commitlog/* (this is on different disk)
- systemctl start cassandra
And it should start streaming data from the other nodes and join the
cluster. Anything else I have to watch out for? Tx.
On Tue, Apr 4, 2023 at 5:25 AM Jeff Jirsa <jji...@gmail.com> wrote:
Because executing “removenode” streamed extra data from live nodes
to the “gaining” replica
Oversimplified (if you had one token per node)
If you start with A B C
Then add D
D should bootstrap a range from each of A B and C, but at the end,
some of the data that was A B C becomes B C D
When you removenode, you tell B and C to send data back to A.
A B and C will eventually contact that data away. Eventually.
If you get around to adding D again, running “cleanup” when you’re
done (successfully) will remove a lot of it.
On Apr 3, 2023, at 8:14 PM, David Tinker <david.tin...@gmail.com>
wrote:
Looks like the remove has sorted things out. Thanks.
One thing I am wondering about is why the nodes are carrying a
lot more data? The loads were about 2.7T before, now 3.4T.
# nodetool status
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID
Rack
UN xxx.xxx.xxx.105 3.4 TiB 256 100.0%
afd02287-3f88-4c6f-8b27-06f7a8192402 rack3
UN xxx.xxx.xxx.253 3.34 TiB 256 100.0%
e1af72be-e5df-4c6b-a124-c7bc48c6602a rack2
UN xxx.xxx.xxx.107 3.44 TiB 256 100.0%
ab72f017-be96-41d2-9bef-a551dec2c7b5 rack1
On Mon, Apr 3, 2023 at 5:42 PM Bowen Song via user
<user@cassandra.apache.org> wrote:
That's correct. nodetool removenode is strongly preferred
when your node is already down. If the node is still
functional, use nodetool decommission on the node instead.
On 03/04/2023 16:32, Jeff Jirsa wrote:
FWIW, `nodetool decommission` is strongly preferred.
`nodetool removenode` is designed to be run when a host is
offline. Only decommission is guaranteed to maintain
consistency / correctness, and removemode probably streams a
lot more data around than decommission.
On Mon, Apr 3, 2023 at 6:47 AM Bowen Song via user
<user@cassandra.apache.org> wrote:
Use nodetool removenode is strongly preferred in most
circumstances, and only resort to assassinate if you do
not care about data consistency or you know there won't
be any consistency issue (e.g. no new writes and did not
run nodetool cleanup).
Since the size of data on the new node is small,
nodetool removenode should finish fairly quickly and
bring your cluster back.
Next time when you are doing something like this again,
please test it out on a non-production environment, make
sure everything works as expected before moving onto the
production.
On 03/04/2023 06:28, David Tinker wrote:
Should I use assassinate or removenode? Given that
there is some data on the node. Or will that be found
on the other nodes? Sorry for all the questions but I
really don't want to mess up.
On Mon, Apr 3, 2023 at 7:21 AM Carlos Diaz
<crdiaz...@gmail.com> wrote:
That's what nodetool assassinte will do.
On Sun, Apr 2, 2023 at 10:19 PM David Tinker
<david.tin...@gmail.com> wrote:
Is it possible for me to remove the node from
the cluster i.e. to undo this mess and get the
cluster operating again?
On Mon, Apr 3, 2023 at 7:13 AM Carlos Diaz
<crdiaz...@gmail.com> wrote:
You can leave it in the seed list of the
other nodes, just make sure it's not
included in this node's seed list.
However, if you do decide to fix the issue
with the racks first assassinate this node
(nodetool assassinate <ip>), and update the
rack name before you restart.
On Sun, Apr 2, 2023 at 10:06 PM David
Tinker <david.tin...@gmail.com> wrote:
It is also in the seeds list for the
other nodes. Should I remove it from
those, restart them one at a time, then
restart it?
/etc/cassandra # grep -i bootstrap *
doesn't show anything so I don't think
I have auto_bootstrap false.
Thanks very much for the help.
On Mon, Apr 3, 2023 at 7:01 AM Carlos
Diaz <crdiaz...@gmail.com> wrote:
Just remove it from the seed list
in the cassandra.yaml file and
restart the node. Make sure that
auto_bootstrap is set to true first
though.
On Sun, Apr 2, 2023 at 9:59 PM
David Tinker
<david.tin...@gmail.com> wrote:
So likely because I made it a
seed node when I added it to
the cluster it didn't do the
bootstrap process. How can I
recover this?
On Mon, Apr 3, 2023 at 6:41 AM
David Tinker
<david.tin...@gmail.com> wrote:
Yes replication factor is 3.
I ran nodetool repair -pr
on all the nodes (one at a
time) and am still having
issues getting data back
from queries.
I did make the new node a
seed node.
Re "rack4": I assumed that
was just an indication as
to the physical location of
the server for redundancy.
This one is separate from
the others so I used rack4.
On Mon, Apr 3, 2023 at
6:30 AM Carlos Diaz
<crdiaz...@gmail.com> wrote:
I'm assuming that your
replication factor is
3. If that's the case,
did you intentionally
put this node in rack
4? Typically, you want
to add nodes in
multiples of your
replication factor in
order to keep the
"racks" balanced. In
other words, this node
should have been added
to rack 1, 2 or 3.
Having said that, you
should be able to
easily fix your problem
by running a nodetool
repair -pr on the new
node.
On Sun, Apr 2, 2023 at
8:16 PM David Tinker
<david.tin...@gmail.com>
wrote:
Hi All
I recently added a
node to my 3 node
Cassandra 4.0.5
cluster and now
many reads are not
returning rows!
What do I need to
do to fix this?
There weren't any
errors in the logs
or other problems
that I could see. I
expected the
cluster to balance
itself but this
hasn't happened
(yet?). The nodes
are similar so I
have num_tokens=256
for each. I am
using the
Murmur3Partitioner.
# nodetool status
Datacenter: dc1
===============
Status=Up/Down
|/
State=Normal/Leaving/Joining/Moving
-- Address
Load Tokens
Owns (effective)
Host ID Rack
UN xxx.xxx.xxx.105
2.65 TiB 256
72.9%
afd02287-3f88-4c6f-8b27-06f7a8192402
rack3
UN xxx.xxx.xxx.253
2.6 TiB 256
73.9%
e1af72be-e5df-4c6b-a124-c7bc48c6602a
rack2
UN xxx.xxx.xxx.24
93.82 KiB 256
80.0%
c4e8b4a0-f014-45e6-afb4-648aad4f8500
rack4
UN xxx.xxx.xxx.107
2.65 TiB 256
73.2%
ab72f017-be96-41d2-9bef-a551dec2c7b5
rack1
# nodetool netstats
Mode: NORMAL
Not sending any
streams.
Read Repair Statistics:
Attempted: 0
Mismatch (Blocking): 0
Mismatch
(Background): 0
Pool Name Active
Pending Completed
Dropped
Large messages
n/a 0 71754 0
Small messages
n/a 0 8398184 14
Gossip messages
n/a 0
1303634 0
# nodetool ring
Datacenter: dc1
==========
Address
Rack Status
State Load
Owns Token
9189523899826545641
xxx.xxx.xxx.24
rack4 Up
Normal 93.82 KiB
79.95%
-9194674091837769168
xxx.xxx.xxx.107
rack1 Up
Normal 2.65 TiB
73.25%
-9168781258594813088
xxx.xxx.xxx.253
rack2 Up
Normal 2.6 TiB
73.92%
-9163037340977721917
xxx.xxx.xxx.105
rack3 Up
Normal 2.65 TiB
72.88%
-9148860739730046229
xxx.xxx.xxx.107
rack1 Up
Normal 2.65 TiB
73.25%
-9125240034139323535
xxx.xxx.xxx.253
rack2 Up
Normal 2.6 TiB
73.92%
-9112518853051755414
xxx.xxx.xxx.105
rack3 Up
Normal 2.65 TiB
72.88%
-9100516173422432134
...
This is causing a
serious production
issue. Please help
if you can.
Thanks
David