ScyllaDB使用

Date: 2019/06/19 Categories: 工作 Tags: scylla



介绍

ScyllaDB是一个高性能的Apache Cassandra兼容数据库, 我们用作Janusgraph图数据库的底层存储用。

ScyllaDB和传统数据库以及其他nosql数据都有很大的不同,但单机使用的时候区别不大。

一些概念

vnode

参考 https://www.datastax.com/blog/2012/12/virtual-nodes-cassandra-12

consistent level (CL)

可以通过calculator计算需要哪种组合

常用操作

启动

最基本的启动命令:

    docker run -v scylla:/var/lib/scylla  --privileged  --name scylla --rm  -it \
   --net=host scylladb/scylla:3.0.7    --listen-address=9.24.4.68 \
   --broadcast-rpc-address=9.24.4.68 --seeds=9.24.4.68 --developer-mode 0

ip需要指定的, 否则如果有多个ip, 会被scylla的启动脚本都放到命令行内, 导致启动失败.

其他命令行参数

  • --overprovisioned 1, 如果不是独占的服务器需要加上
  • --smp 16, 使用16个core
  • --memory 10G, 使用多少内存

repair

使用多数据中心配置时, repair本数据中心的所有node, 这条命令执行一次就可以repair dc的所有node

nodetool repair -local -full

如果想依次repair, 可以在每台机器上执行, -pr避免repair同一份数据在不同node上的节点多次

nodetool repair -full -pr

参考nodetool repair | Apache Cassandra™ 3.0

join

参考这篇文章, 当启用 auto_bootstraptrue时, 每次只能加入一台机器

另外按照datastax的文档, 当添加减少节点的时候, 不能执行数据同步命令, 比如repair, rebuild等

强制结束repair

这个时scylladb的接口

curl -s -X POST   http://127.0.0.1:10000/storage_service/force_terminate_repair