[转载]Vertica “ERROR: Too many ROS containers exist”

最近在用Vertica的时候碰到一个问题,Vertica在运行了一段时间后总是出现类似下面的错误

  1: java.sql.SQLException: [Vertica][VJDBC](5065) 
  2: ERROR: Too many ROS containers exist for the following projections: 
  3: 
  4: <projection> (limit = 18078, ROS files = 12088, DV files = 5992, new files = 10)

碰到找个问题就不得不说说Vertica的存储机制了。Vertica在默认情况下会把新写入的数据写入到WOS(写优化)中,然后根据一定的条件(比如说一定的时间周期)再把WOS中的数据写入到ROS(读优化)中,这时ROS有可能很多都是很小数据块的碎片,这是Vertica会在一定的时间周期后把这些ROS数据块合并成大的ROS文件。

这里把数据从WOS写入到ROS的过程Vertica管它叫MoveOut操作,而把零散的ROS合并成大的ROS的过程Vertica管它叫MergeOut操作。

好了,现在来看看我们的问题吧。错误里报的是ROS太多,那可能的原因是
1. WOS写ROS太多,这个原因的原因很大的可能是每次insert/update的数据集太小,导致生成的碎片太多。

2. ROS太多,而配置的MoveOut和MergeOut的时间间隔太长,导致来不及做MoveOut和MergeOut。

好吧来看看我的应用吧
1. 针对第一个可能的原因,确实是我们的应用的需求的问题,这个目前来说我们没法改变。

2. 对于第二个可能的原因,我们查了一下Vertica的资料,在Vertica中默认的MergeOutInterval是600,MoveOutInterval是300。这两个参数可以通过下面的命令来查看

  1: SELECT GET_CONFIG_PARAMETER(‘MoveOutInterval‘);
  2: SELECT GET_CONFIG_PARAMETER(‘MergeOutInterval‘);

由于我们的应用本身会产生很多的ROS碎片,所以我们想到了是不是可以通过减小MoveOut和MergeOut的Interval来让Vertica尽快的做MoveOut和MergeOut。因此我们修改了Vertica的参数

  1: SELECT SET_CONFIG_PARAMETER(‘MoveOutInterval‘, 60);
  2: SELECT SET_CONFIG_PARAMETER(‘MergeOutInterval‘, 30);

在修改了这两个参数以后,我们的应用确实在运行了很长时间后都没有再出现上面的问题了。

其实关于这个问题,还有几个参数可以调节,具体资料可以参考
Vertica Tuple Mover Parameters

时间: 2024-10-14 06:40:37

[转载]Vertica “ERROR: Too many ROS containers exist”的相关文章

Vertica “ERROR: Too many ROS containers exist”

原文链接:Vertica "ERROR: Too many ROS containers exist" 近期在用Vertica的时候碰到一个问题,Vertica在执行了一段时间后总是出现相似以下的错误 java.sql.SQLException: [Vertica][VJDBC](5065) ERROR: Too many ROS containers exist for the following projections: <projection> (limit = 18

【转载】 ERROR 1045 (28000): Access denied for user [email&#160;protected] (using password: NO)

来自:http://www.jb51.net/LINUXjishu/10981.html 错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误.删除user.user中值为NULL的,或更新NULL为test 1)delete from user where user is NULL 2)update user set user='test' where user is NULL.意外的情况: 如果上述方

sqoop报错java.lang.Throwable Message: ERROR: schema &quot;jice&quot; does not exist

---恢复内容开始--- Caused by: Exception: java.lang.Throwable Message: ERROR: schema "jice" does not exist 位置:35Stack trace: at org.postgresql.core.v3.QueryExecutorImpl (QueryExecutorImpl.java:2102) at org.postgresql.core.v3.QueryExecutorImpl (QueryExe

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation &quot;geometry_columns&quot; does not exist

背景 postgresql 与postgis ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "geometry_columns" does not exist 确认是否自己在开发项目下数据库已扩展postgre $sudo -u postgres psql $\l $\c dbname $ SELECT postgis_full_version();

error C2871: &#39;std&#39; : does not exist or is not a namespace

#include <iostream.h> using namespace std; 然后编译时出现 error C2871: 'std' : does not exist or is not a namespace 查了一下,原来 C++有两个不同版本的头文件.引入名字空间这个概念以前编译器用的是#include <iostream.h>, 而引入名字空间的概念以后std名字空间的头文件名字变成了<iostream>. <iostream.h>是比较老的C

when create a table,then show error ora-00952 tablespace tsb_1 not exist

QUESTION:When create a table,then show error ora-00952 tablespace tsb_1 not exist. STEP: 1.select user table tablespace. SELECT username,DEFAULT_TABLESPACE,temporary_tablespace FROM dba_users WHERE username='LJB'; 2.select user owner tablespace. SELE

react-native run-android Starting: Intent Error type 3 Error: Activity class does not exist

使用"react-native run-android"命令运行android应用时,如果常常出现如下错误: Starting the app (/home/xxx/soft/sdk//platform-tools/adb shell am start -n xxx/.MainActivity)- Starting: Intent { cmp=xxx/.MainActivity } Error type 3 Error: Activity class {xxx/xxx.MainActi

[转载] VirtualBox – Error In supR3HardenedWinReSpawn 问题解决办法

本文转载自: http://www.tuicool.com/articles/fQF7Rrf Genymotion 模拟器安装好虚拟机后,启动时报错: --------- VirtualBox – Error In supR3HardenedWinReSpawn --------- <html><b>NtCreateFile(\Device\VBoxDrvStub) failed: 0xc0000034 STATUS_OBJECT_NAME_NOT_FOUND (0 retries

(转载)浅析error LNK2001: unresolved external symbol &quot;public: __thisc...

学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于 编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时, 编译都已通过.产生连接错误的原因非常多,尤其LNK2001错误,常常使人不 明其所以然.如果不深入地学习和理解VC++,要想改正连接错误LNK2001非 常困难. 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolved   external   symbol   “symbol”(不确定的外部“符号”). 如果连接程