静态资源池限定并隔离了可以使用的资源使用范围,动态资源池限定了可以使用的最大资源。在动态资源池中有任务时动态资源池会占用规定的资源,无任务情况下则归还共享资源。
资源管理是通过cgroup实现的。cpu子系统是控制cpu时间分配的一个控制器,这个子系统使用调度程序提供对CPU的cgroup任务访问。
GBase是原生态的列存,各列独立存储,列存储的基本单位是DC(DataCell),以DC为单位进行IO(Read 、Write)以及压缩等,每个DC有对应的SmartIndex,可用于查询中的部分算子计算优化。
支持行列混合存储,可以为指定多个列建立行存储数据(这部分数据和列存是冗余存储的)。一般行存储数据用于查询投影列为很多列且命中数据非常离散的场景(这种场景行存IO比较有优势),缺陷是存储空间会增加很多。
资源管理在如下使用情景下,高优先级用户读DC的过程会受到低优先级用户的影响,导致高、低优先级用户执行性能相近:
(1)使用相同并行度;
(2)同时采用相同(类似)的SQL访问同一张表的相同列的数据,且IO是该SQL的主要耗时(如果算子计算是SQL主要耗时则影响程度会降低);
(3)访问的数据是冷数据(如果部分数据是热数据,则随着热数据占比重的增加,读DC数据的影响程度降低);
在完全满足条件(2)、(3)的情况下,调整并行度,可以减少高低优先级相互之间的影响。
查看coordinator节点:
gbase> show gcluster nodes;
+------------+--------------+--------------+--------+-----------+
| Id | ip | name | status | datastate |
+------------+--------------+--------------+--------+-----------+
| 1678379530 | 10.10.10.100 | coordinator1 | online | 0 |
| 1695156746 | 10.10.10.101 | coordinator2 | online | 0 |
| 1711933962 | 10.10.10.102 | coordinator3 | online | 0 |
+------------+--------------+--------------+--------+-----------+
3 rows in set (Elapsed: 00:00:00.00)
查看node节点:
gbase> show nodes;
+------------+--------------+-------+--------------+----------------+--------+-----------+
| Id | ip | name | primary part | duplicate part | status | datastate |
+------------+--------------+-------+--------------+----------------+--------+-----------+
| 1711933962 | 10.10.10.102 | node1 | n1 | n3 | online | 0 |
| 1678379530 | 10.10.10.100 | node2 | n2 | n1 | online | 0 |
| 1695156746 | 10.10.10.101 | node3 | n3 | n2 | online | 0 |
+------------+--------------+-------+--------------+----------------+--------+-----------+
3 rows in set (Elapsed: 00:00:00.00)