关于小米:网传小米汽车总部基本确定落户北京

往年 3 月 30 日,小米团体通过港交所披露音讯,官宣将正式进军造车行业。 自小米官宣造车以来,大家对其造车工厂的选址始终都很关怀,北京、上海、武汉、合肥、西安等地都在争取小米造车我的项目,小米团体董事长雷军也在4个多月里频繁走访长安、广汽、上汽通用五菱、长城、上汽、东风、博世、宁德时代等厂商,并公布大量招聘信息。 对于小米汽车落户何地,此前也传出数个版本。 上月底,有音讯传出,安徽省国资委正在和小米汽车接触,无意将小米汽车引入合肥,同时走漏江淮汽车外部人士陈,江淮汽车或将为小米汽车代工,首款车型有可能主攻 20 万元以下市场,并将布局换电业务。 对此,有相干媒体分割到了小米核实该信息,失去的回应是:“所有以官网披露信息为准”。 8 月 16 日,有最新消息称,小米汽车总部和首座工厂根本确定落户北京。 截止发稿工夫,小米官网暂无回应,而雷军近期也在网络上向关怀汽车我的项目的网友回应称,汽车我的项目正在紧锣密鼓地推动,目前还在十分晚期的阶段,等有了重大进展,再向大家汇报。 实际上,小米造车落地北京是个不错的抉择,其团体总部就在北京市海淀区小米科技园内,该园区占地22万平米,投入金额约20亿元。小米还在北京亦庄建设了小米智能工厂。值得注意的是,往年7月28日,雷军在微博上公布主动驾驶相干职位的招聘信息,工作地点皆在北京市海淀区。联合这些信息来看,无疑进一步加深了小米造车选址北京的可能性。

August 17, 2021 · 1 min · jiezi

关于小米:美联邦法官发布禁令暂时解除小米禁令

在禁令颁布之前,美国公司从本周起将被禁止购买公开交易的小米证券或这些证券的衍生品。 此外,美国联邦法院还发表将临时禁止国防部对国内公司投资小米设置限度。去年 11 月失效的特朗普行政命令对中国移动通信委员会名单上的公司进行束缚。该行政命令禁止美国人对任何上市公司进行交易和投资,并禁止在美国贴上 CCMC 标签后对任何新公司进行交易。 美国联邦法院首席法官 Rudolph Contreras 上周末公布了初步禁令,临时阻止小米进入该名单。 小米仍未被 CCMC 名单除名,限度只是临时解除这项禁令是在法官发现,在此状况下,小米可能会蒙受“无法弥补的挫伤”后公布的。 Rudolph Contreras 在做出决定时解释说,自从贴上 CCMC 标签以来,小米股价上涨了 9.5% ,摩根士丹利、摩根大通和高盛等多家银行暂停了小米股票的交易,而且该公司在寰球范畴内失去了合同,这些因素综合起来看,表明该公司曾经因为被指定为中国商品交易委员会而蒙受了“无法弥补的挫伤”。 Rudolph Contreras 补充称,国防部的备忘录是“站不住脚的”。正是这份备忘录让小米进入了 CCMC 的名单。 他说:“(备忘录)没有明确指出治理 CCMC 指定程序的机构势力起源,当备忘录的确应用了相干的法定语言时,摘录的语言被谬误援用。这些谬误使人们对该机构决策过程没有信念。 往年 1 月中旬,小米被列入该名单,起因是美国国防部指摘该公司“仿佛是一个民用实体”,以获取先进技术,反对中国军方的现代化指标。 谈到这些国家平安方面的担心,Rudolph Contreras 示意,他“有点狐疑重大的国家平安利益是否真的关涉其中”。 他写道: “综上所述,最高法院得出的论断是,原告没有证实这里波及的国家平安利益是令人信服的。”。 自新年以来,纽约证券交易所(New York Stock Exchange)等美国实体始终在致力应答 CCMC 上市的结果和解释。一月份,该交易所示意,在扭转主见之前,它将把三家中国电信公司退市,而后复原原来的决定。 其余上榜的中国公司包含华为、 海康威视、 浪潮、熊猫电子和中芯国内。在一份申明中,小米示意对此后果感到称心,但将持续与国防部进行法律奋斗,直到小米正式从 CCMC 名单上除名。

March 15, 2021 · 1 min · jiezi

关于小米:继华为之后中国第二家手机制造商小米被美国列入黑名单

来自外媒音讯,在间隔完结任期还有六天的当地工夫1月14日,美国特朗普政府又减少了一批公司进入美国国防部清单,此前这份清单中蕴含华为、大疆和中芯国内等公司。 这次新列入了九家中国公司,其中有飞机制造商中国商用飞机有限责任公司、罗空科技公司、手机制造商小米、高云半导体公司、中微(上海)有限公司、中译语通科技股份有限公司等。 本次新增公司: 此前已列入清单的公司: 特朗普政府给出的理由是这些公司波及「军民交融打算」,这些公司将受到新的美国投资禁令的束缚,该禁令将迫使美国投资者在2021年11月11日之前剥离其在清单中持有的公司股份。 小米公司的列入让人意外在清单新增的公司中,最让人感到意外的是小米,如果清单失效,小米公司将被禁止与美国公司的任何业务。此外,任何次要在美国开发的硬件或软件的公司,包含许多芯片代工厂和芯片设计公司,也可能受到束缚中断与小米的单干。 此前华为就因为被列入清单,失去了GMS许可证使用权,导致智能手机销量有所降落。 音讯颁布后小米股价暴涨逾11%,截止发稿小米没有对此回应,不过事件还有反转的可能,行将上任的美国新总统拜登及其团队或者会重新考虑这些行为,话句话说拜登政府有可能会颠覆此命令。

January 15, 2021 · 1 min · jiezi

关于小米:小米电视的鼠标模式不能点击屏幕下半部分的解决

前言: 小米电视降级后,常常会产生鼠标模式不能点击屏幕的下半局部,复原出厂设置可临时解决,之后会再次出现这种问题。起因:官网排查后定位到问题来源于"小爱同学"解决:装置新版https://pan.baidu.com/s/1cJUmHcQ7uiFn71K192Dy5w 提取码:dou7

November 10, 2020 · 1 min · jiezi

TiDB 在小米的应用实践

作者:张良,小米 DBA 负责人;潘友飞,小米 DBA;王必文,小米开发工程师。一、应用场景介绍MIUI 是小米公司旗下基于 Android 系统深度优化、定制、开发的第三方手机操作系统,也是小米的第一个产品。MIUI 在 Android 系统基础上,针对中国用户进行了深度定制,在此之上孕育出了一系列的应用,比如主题商店、小米音乐、应用商店、小米阅读等。 <center>图 1 MIUI Android 系统界面图</center>目前 TiDB 主要应用在:小米手机桌面负一屏的快递业务商业广告交易平台素材抽审平台这两个业务场景每天读写量均达到上亿级,上线之后,整个服务稳定运行;接下来我们计划逐步上线更多的业务场景,小米阅读目前正在积极的针对订单系统做迁移测试。二、TiDB 特点TiDB 结合了传统的 RDBMS 和 NoSQL 的最佳特性,兼容 MySQL 协议,支持无限的水平扩展,具备强一致性和高可用性。具有如下的特性:高度兼容 MySQL,大多数情况下无需修改代码即可从 MySQL 轻松迁移至 TiDB,即使已经分库分表的 MySQL 集群亦可通过 TiDB 提供的迁移工具进行实时迁移。水平弹性扩展,通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景。分布式事务,TiDB 100% 支持标准的 ACID 事务。真正金融级高可用,相比于传统主从(M-S)复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复(auto-failover),无需人工介入。TiDB 的架构及原理在 官网 里有详细介绍,这里不再赘述。<center>图 2 TiDB 基础架构图</center>三、背景跟绝大数互联网公司一样,小米关系型存储数据库首选 MySQL,单机 2.6T 磁盘。由于小米手机销量的快速上升和 MIUI 负一屏用户量的快速增加,导致负一屏快递业务数据的数据量增长非常快,每天的读写量级均分别达到上亿级别,数据快速增长导致单机出现瓶颈,比如性能明显下降、可用存储空间不断降低、大表 DDL 无法执行等,不得不面临数据库扩展的问题。比如,我们有一个业务场景(智能终端),需要定时从几千万级的智能终端高频的向数据库写入各种监控及采集数据,MySQL 基于 Binlog 的单线程复制模式,很容易造成从库延迟,并且堆积越来越严重。对于 MySQL 来讲,最直接的方案就是采用分库分表的水平扩展方式,综合来看并不是最优的方案,比如对于业务来讲,对业务代码的侵入性较大;对于 DBA 来讲提升管理成本,后续需要不断的拆分扩容,即使有中间件也有一定的局限性。同样是上面的智能终端业务场景,从业务需求看,需要从多个业务维度进行查询,并且业务维度可能随时进行扩展,分表的方案基本不能满足业务的需求。了解到 TiDB 特点之后,DBA 与业务开发沟通确认当前 MySQL 的使用方式,并与 TiDB 的兼容性做了详细对比,经过业务压测之后,根据压测的结果,决定尝试将数据存储从 MySQL 迁移到 TiDB。经过几个月的线上考验,TiDB 的表现达到预期。四、兼容性对比TiDB 支持包括跨行事务、JOIN、子查询在内的绝大多数 MySQL 的语法,可以直接使用 MySQL 客户端连接;对于已用 MySQL 的业务来讲,基本可以无缝切换到 TiDB。二者简单对比如下几方面:功能支持TiDB 尚不支持如下几项:增加、删除主键非 UTF8 字符集视图(即将支持)、存储过程、触发器、部分内置函数Event全文索引、空间索引默认设置字符集、排序规则、sql_mode、lower_case_table_names 几项默认值不同。事务TiDB 使用乐观事务模型,提交后注意检查返回值。TiDB 限制单个事务大小,保持事务尽可能的小。TiDB 支持绝大多数的 Online DDL。另,一些 MySQL 语法在 TiDB 中可以解析通过,不会产生任何作用,例如: create table 语句中 engine、partition 选项都是在解析后忽略。详细信息可以访问官网:https://pingcap.com/docs-cn/sql/mysql-compatibility/ 。五、压测5.1 目的通过压测 TiDB 了解一下其 OLTP 性能,看是否满足业务要求。5.2 机器配置组件实例数量CPU 型号内存磁盘版本操作系统TiDB3Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz128GSSD Raid 52.0.3CentOS Linux release 7.3.1611PD3Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz128GSSD Raid 52.0.3CentOS Linux release 7.3.1611TiKV4Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz128GSSD Raid 52.0.3CentOS Linux release 7.3.16115.3 压测内容以及结果5.3.1 标准 Select 压测ThreadsQPSLatency (avg / .95 / max)812650.810.63 / 0.90 / 15.621621956.210.73 / 1.50 / 15.713231534.81.01 / 2.61 / 25.1664382171.67 / 5.37 / 49.8012839943.053.20 / 8.43 / 58.6025640920.646.25 / 13.70 / 95.13<center>图 3 标准 Select 压测图</center>5.3.2 标准 OLTP 压测ThreadsTPSQPSLatency (avg / .95 / max)8428.98578.0918.65 / 21.89 / 116.0616731.6714633.3521.86 / 25.28 / 120.59321006.4320128.5931.79 / 38.25 / 334.92641155.4423108.955.38 / 71.83 / 367.531281121.5522431114.12 / 161.51 / 459.03256941.2618825.1271.94 / 369.77 / 572.88<center>图 4 标准 OLTP 压测图</center>5.3.3 标准 Insert 压测ThreadsQPSLatency (avg / .95 / max)83625.752.20 / 2.71 / 337.94166527.242.45 / 3.55 / 160.843210307.663.10 / 4.91 / 332.416413662.834.68 / 7.84 / 467.5612815100.448.47 / 16.41 / 278.2325617286.8614.81 / 25.74 / 3146.52<center>图 5 标准 Insert 压测图</center>通过压测发现 TiDB 稳定性上与预期稍有差别,不过压测的 Load 会明显高于生产中的业务 Load,参考低 Threads 时 TiDB 的表现,基本可以满足业务对 DB 的性能要求,决定灰度一部分 MySQL 从库读流量体验一下实际效果。六、迁移过程整个迁移分为 2 大块:数据迁移、流量迁移。6.1 数据迁移数据迁移分为增量数据、存量数据两部分。对于存量数据,可以使用逻辑备份、导入的方式,除了传统的逻辑导入外,官方还提供一款物理导入的工具 TiDB Lightning。对于增量备份可以使用 TiDB 提供的 Syncer (新版已经更名为 DM - Data Migration)来保证数据同步。Syncer 结构如图 6,主要依靠各种 Rule 来实现不同的过滤、合并效果,一个同步源对应一个 Syncer 进程,同步 Sharding 数据时则要多个 Syncer 进程。<center>图 6 Syncer 结构图</center>使用 Syncer 需要注意:做好同步前检查,包含 server-id、log_bin、binlog_format 是否为 ROW、binlog_row_image 是否为 FULL、同步相关用户权限、Binlog 信息等。使用严格数据检查模式,数据不合法则会停止。数据迁移之前最好针对数据、表结构做检查。做好监控,TiDB 提供现成的监控方案。对于已经分片的表同步到同一个 TiDB 集群,要做好预先检查。确认同步场景是否可以用 route-rules 表达,检查分表的唯一键、主键在数据合并后是否冲突等。6.2 流量迁移流量切换到 TiDB 分为两部分:读、写流量迁移。每次切换保证灰度过程,观察周期为 1~2 周,做好回滚措施。读流量切换到 TiDB,这个过程中回滚比较简单,灰度无问题,则全量切换。再将写入切换到 TiDB,需要考虑好数据回滚方案或者采用双写的方式(需要断掉 Syncer)。七、集群状况7.1 配置集群配置采用官方推荐的 7 节点配置,3 个 TiDB 节点,3 个 PD 节点,4 个 TiKV 节点,其中每个 TiDB 与 PD 为一组,共用一台物理机。后续随着业务增长或者新业务接入,再按需添加 TiKV 节点。7.2 监控监控采用了 TiDB 的提供的监控方案,并且也接入了公司开源的 Falcon,目前整个集群运行比较稳定,监控如图 7。 <center>图 7 监控图</center>八、遇到的问题、原因及解决办法问题原因及解决办法在一个 DDL 里不能对多个列或者多个索引做操作。ADD/DROP INDEX/COLUMN 操作目前不支持同时创建或删除多个索引或列,需要拆分单独执行,官方表示 3.0 版本有计划改进。部分操作符查询优化器支持不够好,比如 or 操作符会使用 TableScan,改写成 union all 可避免。官方表示目前使用 or 操作符确实在执行计划上有可能不准确,已经在改进计划中,后续 3.0 版本会有优化。重启一个 PD 节点的时候,业务能捕捉到 PD 不可用的异常,会报 PD server timeout 。因为重启的是 Leader 节点,所以重启之前需要手动切换 Leader,然后进行重启。官方建议这里可以通过重启前做 Leader 迁移来减缓,另外后续 TiDB 也会对网络通讯相关参数进行梳理和优化。建表语句执行速度相比 MySQL 较慢多台 TiDB 的时候,Owner 和接收 create table 语句的 TiDB Server 不在一台 Server 上时,可能比 MySQL 慢一些,每次操作耗时在 0.5s 左右,官方表示会在后续的版本中不断完善。pd-ctl 命令行参数解析严格,多一个空格会提示语法错误。官方表示低版本中可能会有这个问题,在 2.0.8 及以上版本已经改进。tikv-ctl 命令手动 compact region 失败。在低版本中通常是因为 tikv-ctl 与集群版本不一致导致的,需要更换版本一致的 tikv-ctl,官方表示在 2.1 中已经修复。大表建索引时对业务有影响官方建议在业务低峰期操作,在 2.1 版本中已经增加了操作优先级以及并发读的控制,情况有改善。存储空间放大问题该问题属于 RocksDB,RocksDB 的空间放大系数最理想的值为 1.111,官方建议在某些场景下通过 TiKV 开启 RocksDB 的 dynamic-level-bytes 以减少空间放大。九、后续和展望目前 TiDB 在小米主要提供 OLTP 服务,小米手机负一屏快递业务为使用 TiDB 做了一个良好的开端,而后商业广告也有接入,2 个业务均已上线数月,TiDB 的稳定性经受住了考验,带来了很棒的体验,对于后续大体的规划如下:MIUI 生态业务中存在大量的类似场景的业务,后续将会与业务开发积极沟通,从 MySQL 迁移到 TiDB。针对某些业务场景,以资源合理利用为目标,推出归档集群,利用 Syncer 实现数据归档的功能。数据分析,结合 TiDB 提供的工具,将支持离线、实时数据分析支持。将 TiDB 的监控融合到小米公司开源的监控系统 Falcon 中。十、致谢非常感谢 TiDB 官方在迁移及业务上线期间给予我们的支持,为每一个 TiDB 人专业的精神、及时负责的响应点赞。更多 TiDB 用户实践: https://www.pingcap.com/cases-cn/ ...

December 4, 2018 · 3 min · jiezi