当前位置: 首页 > wzjs >正文

网站的视频seo站长工具推广平台

网站的视频,seo站长工具推广平台,衡阳百度推广公司,有做外贸的平台网站吗背景 在前文Starrocks 写入报错 primary key memory usage exceeds the limit中,可以通过ALTER TABLE xxxx DISTRIBUTED BY HASH(xx) BUCKETS 50;来改变数据的分布状态,具体的执行过程是怎么样的呢? 分析 首先对应的g4文件中为 alterTableStatement &…

背景

在前文Starrocks 写入报错 primary key memory usage exceeds the limit中,可以通过ALTER TABLE xxxx DISTRIBUTED BY HASH(xx) BUCKETS 50;来改变数据的分布状态,具体的执行过程是怎么样的呢?

分析

首先对应的g4文件中为 alterTableStatement ,这里最终的调用是 AlterJobExecutor.visitAlterTableStatement:

if (statement.hasSchemaChangeOp()) {Locker locker = new Locker();locker.lockTableWithIntensiveDbLock(db, table.getId(), LockType.WRITE);try {SchemaChangeHandler schemaChangeHandler = GlobalStateMgr.getCurrentState().getSchemaChangeHandler();assert table instanceof OlapTable;schemaChangeHandler.process(statement.getAlterClauseList(), db, (OlapTable) table);} catch (UserException e) {throw new AlterJobException(e.getMessage());} finally {locker.unLockTableWithIntensiveDbLock(db, table, LockType.WRITE);}isSynchronous = false;

schemaChangeHandler.process会创建OptimizeJobV2 实例去优化对象,数据链路如下:

SchemaChangeHandler.process||\/
analyzeAndCreateJob||\/
createOptimizeTableJob||\/
OptimizeJobV2Builder.build()||\/
new OptimizeJobV2()

SchemaChangeHandler.process 会把当前的OptimizeJobV2 job 放入要执行的队列中,之后SchemaChangeHandler 以 alter_scheduler_interval_millisecond (10000ms)的轮询间隔从队列中取出要执行的任务,并调用run方法.run方法如下:

public synchronized void run() {if (isTimeout()) {cancelImpl("Timeout");return;}// create connectcontextcreateConnectContextIfNeeded();try {while (true) {JobState prevState = jobState;switch (prevState) {case PENDING:runPendingJob();break;case WAITING_TXN:runWaitingTxnJob();break;case RUNNING:runRunningJob();break;case FINISHED_REWRITING:runFinishedRewritingJob();break;default:break;}if (jobState == prevState) {break;} // else: handle the new state}} catch (AlterCancelException e) {cancelImpl(e.getMessage());}}
  • PENDING
    创建完任务初始状态就是PENDING,所以调用 runPendingJob() 方法,这里有几个关键点是
  1. 创建该Alter语句涉及到的所有的分区
  2. 检查改任务所涉及到表的状态,必须该表的tablet都为健康状态才可以进行下一步,否则设置该表的状态为WAITING_STABLE,并直接跳过该任务
  3. 会获取到在一个事务的ID
  4. 改变该作业的状态为WAITING_TXN
  • WAITING_TXN
    如果任务所涉到的表为正常状态,则会进入runWaitingTxnJob()方法,这里的几个关键点是
  1. 会等待在该任务对应的事务之前的事务都运行完才会执行该任务
  2. 每个分区建立一个任务,并把分区写入一个临时分区中
  3. 改变该作业的状态为RUNNING
  • RUNNING
    如果任务正常运行的话,则会进入runRunningJob()方法,这里的几个关键点是
  1. 等待所有的写入临时分区的任务完成
  2. 锁住该表所在库以及该表,并且是排他锁,所以读取该库的操作也是不可行的
  3. 替换临时分区到对应的分区上去
  4. 改变该作业的状态为FINISHED
http://www.dtcms.com/wzjs/363239.html

相关文章:

  • 淄博网站制作设计上海小红书seo
  • 网站动图是怎么做的石嘴山网站seo
  • 宁波公司做企业网站赣州seo
  • 阿里云部署一个自己做的网站seo网络推广课程
  • 做房产网站需要了解什么东西关键词排名优化软件策略
  • 上海科技网站建设 今日头条
  • 做我男朋友好不好网站最佳搜索引擎磁力王
  • php动态网站开发习题答案app如何推广以及推广渠道
  • html+css网页设计作业seo深圳培训班
  • 做网站卖狗挣钱吗东莞seo排名优化
  • 北海网站建设大数据培训机构排名前十
  • wordpress 获取用户角色广州网站营销优化qq
  • 长宁做网站价格b站网站推广mmm
  • 我做淘宝网站卖东西怎么激活识别关键词软件
  • 国际网站建设公司无锡百度正规推广
  • 中国做国外的网站长治seo顾问
  • 国内空间没备案可以打开网站吗seo关键词排名优化要多少钱
  • 服装市场网站建设齐三seo顾问
  • 请描述网站开发的一般流程图今日腾讯新闻最新消息
  • 露天做愛偷拍网站湛江seo推广公司
  • 网站备案信息查询seo优化seo外包
  • html做的好看的网站必应搜索引擎
  • 推广 网站的优秀文案杭州线上推广
  • 网站开发用户自定义排序方案郑州百度推广公司
  • 建设银行网站怎么基本转个人北京网站推广营销服务电话
  • 贵州公司网站开发知名品牌营销策划案例
  • 怎么做国外的网站吗安卓手机优化软件哪个好
  • 一流的网站建设广告营销策划
  • 网站建设价格差异好大网站联盟营销
  • sem对seo的影响有哪些黄冈网站seo