问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

semi-加单词是什么意思?

发布网友 发布时间:2022-05-01 21:53

我来回答

4个回答

懂视网 时间:2022-04-16 00:07

I was interested to hear about semi-sync replication improvements in MySQL’s 5.7.4 DMR release and decided to check it out. I previouslyblogged about poor semi-sync performanceand was pretty disappointed from semi-sync’s performance across WAN distances back then, particularly with many client threads.

The Test

The basic environment of these tests was:

  • AWS EC2 m3.medium instances
  • Master in us-east-1, slave in us-west-1 (~78ms ping RTT)
  • CentOS 6.5
  • innodb_flush_log_at_trx_commit=1
  • sync_binlog=1
  • Semi-sync replication plugin installed and enabled.
  • GTID’s enabled (except on 5.5)
  • sysbench 0.5 update_index.lua test, 60 seconds, 250k table size.
  • MySQL 5.7 was tested with both AFTER_SYNC and AFTER_COMMIT settings forrpl_semi_sync_master_wait_point
  • I tested Percona XtraDB Cluster 5.6 / Galera 3.5 as well by means of comparison
  • Without further ado, here’s the TpmC results I got for a single client thread:

    These graphs are interactive, so mouse-over for more details. I’m using log scales to better highlight the differences.

    The blue bars represent transactions per second (more is better). The red bars represent average latency per transaction per client (less is better). Remember these transactions are synchronously being copied across the US before the client can execute another.

    The first test is our control: Async allows ~273 TPS on a single thread. Once we introduce synchronicity, we clearly see the bulk of the time is that round trip. Note that MySQL 5.5 and 5.6 are a bit higher than MySQL 5.7 and Percona XtraDB Cluster, the latter of which show pretty similar results.

    Adding parallelism

    This gets more interesting to see if we redo the same tests, but with 32 test threads:

    In the MySQL 5.5 and 5.6 tests, we can clearly see nasty serialization. Both really don’t allow more performance than single threaded sysbench. I was happy to see, however, that this seems to be dramatically improved in MySQL 5.7, nice job Oracle!

    AFTER_SYNC and AFTER_COMMIT vary, but AFTER_SYNC is the default and is preferred over AFTER_COMMIT. The reasoning here is AFTER_SYNC forces the semi-sync wait BEFORE the transaction is committed on the master. The client still must wait for the semi-sync in AFTER_COMMIT, but other transactions may see its data on the master BEFORE we confirm the semi-sync slave has received it. This is potentially bad because if the master crashed at that instant, clients may have read data from the master that did not make it to a failover slave. This is a type of ‘phantom read’ andYoshinori explains it in more detail here.

    What about Percona XtraDB Cluster?

    I also want to discuss the Percona XtraDB Cluster results, Galera here is somewhat slower than MySQL 5.7 semi-sync. There may be some enhancements to Galera that can be made (competition is a good thing), but there are still some significant differences here:

  • Galera allows for writing on any and all nodes, semi-sync does not
  • Galera introduces the certification process to check for conflicts, Semi-sync does not
  • Galera is not 2-phase commit and transactions are not committed synchronously anywhere except the node originating the transaction. So, it is similar to Semi-sync in this way.
  • I ran the Galera tests with no log-bin (Galera does not require it)
  • I ran the Galera tests with innodb_flush_log_at_trx_commit=1
  • I set the fc_limit on the second node really high to eliminate Flow control as a bottleneck. In a live cluster, it would typically be needed.
  • Galera provides parallel slave threads for faster apply, but it doesn’t matter here because I set the fc_limit so high
  • TL;DR

    Semi-sync in MySQL 5.7 looks like a great improvement. Any form of synchronicity is always going to be expensive, particularly over 10s and 100s of milliseconds of latency. With MySQL 5.7, I’d be much more apt to recommend semi-sync as an option than in previous releases. Thanks to Oracle for investing here.

    热心网友 时间:2022-04-15 21:15

    semi-
    是英语中很常见的单词前缀,词义为“半”、“部分”,可与所有词义说得通的名词和形容词构成复合词。例:semiannual,semifinal,semitrailer,semiautomatic......

    热心网友 时间:2022-04-15 22:33

    一半

    热心网友 时间:2022-04-16 00:08

    半-...
    semi-circle,semi-final,semi-conscious
    半圈、半决赛、半意识的
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    无线生活台频道介绍 高赋码给产品做的“身份证”好吗? 包头市康钱工贸有限公司怎么样? 混凝土裂缝分类有哪些 混凝土裂缝种类及成因有哪些? 混凝土微观裂缝有哪些 水泥混凝土裂缝有哪些 智能制造工程专业要学哪些课程 智能制造工程大一学什么 智能制造工程专业主要学什么课程 Semis是什么意思 Semi 和quasi 都有'准'的意思,那么二者有什么区别呢? 怎么在wps中分栏时让其两边一起铺满加回车符没用 如何向下图那样在WPS中设置分栏,图片下的分栏的文字直接在右边部分衔接上。而不是在图片上部的右侧 wps排版,页脚与正文分栏,怎么实现? wps上面分栏下面不分栏 煎鸡蛋饺子怎么做如何做好吃 怎样解决WPS中脚注与分栏冲突 都是海水,但太平洋和大西洋海水永不相融,这是为什么? 东海和南海的分界线是什么 淡水于海水的分界线清楚吗?能用肉眼看到吗? 山东渤海分界线处的海水竟然高低不一,这里面有何“玄机”? 黄渤海分界线在长岛可以看见吗? wps怎么分栏排版 煎鸡蛋饺子是怎么做的 密西西比河与墨西哥湾海域之间,为何会出现一条分界线? 鸡蛋煎饺子的做法,鸡蛋煎饺子怎么做好吃,鸡蛋 我国的河与海是如何划分的?是以什么为分界线的? 太平洋和大西洋之间的海水分割线,它们的海水为何不相融? 鸡蛋煎饺的做法有哪些? 1069097095528是什么号码 在语法方面semi-negative,non-assertion,assertion是什么意思? nursing a semi是什么意思? semi-final是什么意思 我不知为何,莫名收到浦发银行的短信,我没弄过呀。要不要仅,这什么意思? semi-ready-made molecule什么意思 semi-precious是什么意思 10694121695528发短信是浦发的吗? semiquietly是什么意思? Semi-Variable Cost是什么意思啊? SEMI-MMORPG是什么游戏?SEMI又是什么意思的缩写? Semi-Variable Cost 是什么意思啊? 我没有申请银行卡,为什么浦发银行发短信说我申请了借记卡,号码是95528的,请问是诈骗吗? 虎牙直播别人给我送礼物 我可以兑现吗 为什么我不能用免流? 你好,我的免流量应用怎么用不了 移动为什么免费领取的流量不能用 怎样从MySQL里面取出日期转换成 yyyy 菊花可以做成什么有营养的东西? 菊花可以干什么