Cassandra查询

  • Query
    • Range Query
    • 问题1: 查询应用内最近的记录存在BUG: 查的不是最近而是最早
    • 解决方式: 应用内最近记录使用Order By DESC
    • 问题2: 查询全局范围最近的记录目前的表结构无法实现
    • 拆表
  • CLUSTERING ORDER BY
  • 现实世界的查询: Tombstone
    • tombstone太多查询中断
    • orderby+limit查询
    • timestamp限制不读取tombstone
    • orderby + timestamp
    • orderby+limit如果存活的记录数没有超过limit,是否会查询TTL的数据?
    • tombstone使用经验
    • Slice Query
  • Paging Query
  • Read Time Out
    • Future Interrupt
  • More Abould Query: Token?
  • Node down effect
  • TTL
    • TTL是针对行, 还是针对列
    • 插入数据时using TTL
    • 测试Table的default ttl
    • gc_grace_seconds
    • Delete操作
  • 读一致性
  • 协调节点超时

Cassandra日常运维

Cassandra日常运维, OpsCenter

  • Cassandra日常运维
    • 线上应急
    • 机器预估
    • 准备工作
    • 文件操作
    • 进程
  • Cassandra使用
    • CQL查询客户端
  • 集群维护
    • 删除/下线节点
    • 集群拷贝数据
    • 节点上线、扩容
      • 初始化一个新的集群
      • 添加新节点
      • 替换节点
        • 旧节点当掉
        • 旧节点正在运行
    • Streaming
  • 疑难问题
    • GC
  • 升级
    • 2.0升级到2.1
    • 2.1升级到2.2
    • 2.2升级到3.10
    • 授权访问
  • 监控
    • 安装opscenter
    • 创建集群和安装agent
    • 修改agent配置
    • 堡垒机无法查看opscenter
    • Loading OpsCenter..
    • 手动安装agent
    • rolling restart
  • nodetool常用工具(cfstats,cfhistograms,compactionstats,tpstats)
  • 日志分析
    • GC长时间
    • ParNew统计
    • tombstone与GC的比较
    • cfstats和cfhistograms统计
    • large partition
      • 2.2
      • 3.10
  • 性能调优
    • 服务端配置指南
      • 读写配置
      • JVM配置
      • 从CMS更改为G1 GC
        • G1 GC LOG
      • Memtable
      • KeyCache
      • RowCache
      • compaction
    • commit log
    • JavaDriver配置
      • Partitioner
    • Internal
      • Partitioner
      • Memory
    • Ref

Cassandra压力测试

  • cassandra-stress
    • 介绍
    • 单节点测试
      • 写入测试
      • 采用cql3协议写入
      • 读取测试
      • 没有预热读取
      • 给定一段时间测试最大可以读取多少条记录
      • 混合模式读大于写
      • 混合模式写大于读
    • 自定义schema
      • 示例
      • 只有写入
      • 读写混合模式
      • 只有读取
    • G1测试
    • 集群测试
  • YCSB

Cassandra常见异常

Cassandra异常

  • Cassandra常见异常与解决
    • 安装
    • 内存OOM
    • 新添加节点表不存在
    • 种子节点不一样导致集群分离
    • Request did not complete within rpc_timeout
    • NoHostAvailableException 主机不可用导致操作超时
    • Not enough replica available 副本不足
    • fromIndex
    • 移动文件后重启Cassandra节点:
    • 管道断开
    • api使用Level compaction策略计算mean时
      • cfstats
      • cfhistograms
    • fp空间不足,无法compcation,FileNotFoundException:

Cassandra操作

  • 优雅关闭节点
  • 不同集群数据同步
    • 增量备份
    • 准备工作:新集群搭建和建表
    • 开始:先测试一张表的迁移
    • 整个集群做一次完整的快照迁移
    • 增量备份(需要多次执行)
    • 机房迁移
      • 直接从当前集群同步到上海集群
      • 新集群安装
        1. 表结构
        1. 数据迁移
        1. 增量数据迁移
        1. 数据验证
  • nodetool工具
    • 集群状态: nodetool decribecluster
    • 删除节点: removenode
    • 替换节点: replace_address
    • 重新加入
    • 网络状态netstats: 显示一个节点的Active Stream
    • 节点信息: nodetool info
    • Gossip信息: nodetool gossipinfo
    • 表相关的信息:nodetool cfstats forseti.velocity
    • compactionhistory
    • 节点sstable数量异常
  • tpstats
  • sstable writer
    • 文件数过多
    • 导入数据后,用refresh
    • 通过增大内存来增大sstable大小(内存不足)
    • 分表?
  • sstableloader
  • jHiccup