每次使用enableTableShareAndPersistence函数时,执行时间非常久是什么原因?

比如我这里之前定义过一个持久化共享流表,名为st。执行dropstream后,并重启server。再次执行enableTableShareAndPersistence函数,需要等待数分钟才能完成。

dropStreamEngine(`st);// 之后重启server
enableTableShareAndPersistence(table=t, tableName=`st, cacheSize=1200000);

请问是什么原因?难道是删除流表的函数没有删除持久化的数据吗?


请先 登录 后评论

1 个回答

Yingnan Wang

首先删除流表应该使用dropStreamTable(tableName)函数:如果流数据表启用了持久化,该函数也会将磁盘上持久化的数据删除。

dropStreamEngine函数用来释放指定的流数据引擎,所以这里执行后实际上没有成功删除这张流表;

在这个前提下,之所以执行时间长是因为如果重启系统,再次执行enableTableShareAndPersistence函数会把硬盘中的数据(持久化数据)加载到内存中,加载的记录条数由参数 preCache 指定,脚本中没有指定,默认会把所有记录加载进内存,所以执行时间会比较长。

请先 登录 后评论