程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了了解 CockroachDB 副本大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决了解 CockroachDB 副本?

开发过程中遇到了解 CockroachDB 副本的问题如何解决?下面主要结合日常开发的经验,给出你关于了解 CockroachDB 副本的解决方法建议,希望对你解决了解 CockroachDB 副本有所启发或帮助;

我很难理解为什么我的单节点设置的 CockroachDB 管理控制台有 37 个副本。根据我读过的内容

CockroachDB Replicates each range (3 times by default) and stores each replica on a different node.

这直接来自文档 https://www.cockroachlabs.com/docs/v20.2/architecture/overview#glossary

运行命令 \l 我看到了

  database_name
-----------------
  defaultdb
  POSTGRes
  system
  test2
(4 rows)

运行命令 SHOW ALL ZONE CONfigURATIONS; 我得到

target                      |                               raw_config_sql
---------------------------------------------------+------------------------------------------------------------------------------
  RANGE default                                    | ALTER RANGE default CONfigURE ZONE USING
                                                   |     range_min_bytes = 134217728,|     range_max_bytes = 536870912,|     gc.ttlseconds = 90000,|     num_replicas = 3,|     consTraints = '[]',|     lease_preferences = '[]'
  DATABASE system                                  | ALTER DATABASE system CONfigURE ZONE USING
                                                   |     range_min_bytes = 134217728,|     num_replicas = 5,|     lease_preferences = '[]'
  RANGE Meta                                       | ALTER RANGE Meta CONfigURE ZONE USING
                                                   |     range_min_bytes = 134217728,|     gc.ttlseconds = 3600,|     lease_preferences = '[]'
  RANGE system                                     | ALTER RANGE system CONfigURE ZONE USING
                                                   |     range_min_bytes = 134217728,|     lease_preferences = '[]'
  RANGE liveness                                   | ALTER RANGE liveness CONfigURE ZONE USING
                                                   |     range_min_bytes = 134217728,|     gc.ttlseconds = 600,|     lease_preferences = '[]'
  table system.public.Replication_consTraint_stats | alter table system.public.Replication_consTraint_stats CONfigURE ZONE USING
                                                   |     gc.ttlseconds = 600,|     lease_preferences = '[]'
  table system.public.Replication_stats            | alter table system.public.Replication_stats CONfigURE ZONE USING
                                                   |     gc.ttlseconds = 600,|     lease_preferences = '[]'
(7 rows)

我不确定 37 是从哪里来的,它不应该只是 3,因为我只创建了数据库 test2?或者如果它甚至复制默认数据库,它仍然只有 3*4 = 12?我的数据库都没有超过 512M,因此每个数据库最多只需要 1 个范围。我一定是误会了什么,有人可以帮我吗?谢谢。

解决方法

蟑螂的内部系统范围相对较多。它维护内部系统表以及其他引导元数据。蟑螂在表格边界上分割范围以及其他一些硬编码分割点。您可以通过运行如下查询来发现范围集:

> SELECT start_pretty,end_pretty,database_name,table_name,replicas FROM crdb_internal.ranges_no_leases;

          start_pretty          |          end_pretty           | database_name |           table_name            | replicas
--------------------------------+-------------------------------+---------------+---------------------------------+-----------
  /Min                          | /System/NodeLiveness          |               |                                 | {1,2,3}
  /System/NodeLiveness          | /System/NodeLivenessmax       |               |                                 | {1,3}
  /System/NodeLivenessmax       | /System/tsd                   |               |                                 | {1,3}
  /System/tsd                   | /System/"tse"                 |               |                                 | {1,3}
  /System/"tse"                 | /Table/SystemConfigSpan/Start |               |                                 | {1,3}
  /Table/SystemConfigSpan/Start | /Table/11                     |               |                                 | {1,3}
  /Table/11                     | /Table/12                     | system        | lease                           | {1,3}
  /Table/12                     | /Table/13                     | system        | eventlog                        | {1,3}
  /Table/13                     | /Table/14                     | system        | rangelog                        | {1,3}
  /Table/14                     | /Table/15                     | system        | ui                              | {1,3}
  /Table/15                     | /Table/16                     | system        | jobs                            | {1,3}
  /Table/16                     | /Table/17                     |               |                                 | {1,3}
  /Table/17                     | /Table/18                     |               |                                 | {1,3}
  /Table/18                     | /Table/19                     |               |                                 | {1}
  /Table/19                     | /Table/20                     | system        | web_sessions                    | {1,3}
  /Table/20                     | /Table/21                     | system        | table_statistics                | {1,3}
  /Table/21                     | /Table/22                     | system        | LOCATIOns                       | {1,3}
  /Table/22                     | /Table/23                     |               |                                 | {1,3}
  /Table/23                     | /Table/24                     | system        | role_members                    | {1,3}
  /Table/24                     | /Table/25                     | system        | comments                        | {1,3}
  /Table/25                     | /Table/26                     | system        | Replication_consTraint_stats    | {1,3}
  /Table/26                     | /Table/27                     | system        | Replication_critical_localities | {1,3}
  /Table/27                     | /Table/28                     | system        | Replication_stats               | {1,3}
  /Table/28                     | /Table/29                     | system        | reports_meta                    | {1}
  /Table/29                     | /NamespaCETable/30            |               |                                 | {1,3}
  /NamespaCETable/30            | /NamespaCETable/Max           | system        | namespace2                      | {1,3}
  /NamespaCETable/Max           | /Table/32                     | system        | protected_ts_meta               | {1,3}
  /Table/32                     | /Table/33                     | system        | protected_ts_records            | {1,3}
  /Table/33                     | /Table/34                     | system        | role_options                    | {1,3}
  /Table/34                     | /Table/35                     | system        | statemenT_Bundle_chunks         | {1,3}
  /Table/35                     | /Table/36                     | system        | statement_diagnostics_requests  | {1,3}
  /Table/36                     | /Table/37                     | system        | statement_diagnostics           | {1}
  /Table/37                     | /Table/38                     | system        | scheduled_jobs                  | {1,3}
  /Table/38                     | /Table/39                     |               |                                 | {1,3}
  /Table/39                     | /Max                          | system        | sqlliveness                     | {1,3}
(35 rows)

replicas 字段中的每个条目代表一个副本。希望这能让您对存在的范围有所了解。

大佬总结

以上是大佬教程为你收集整理的了解 CockroachDB 副本全部内容,希望文章能够帮你解决了解 CockroachDB 副本所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。