创业8年成功上市,小米还交出了一份不错的开源成绩单

 

7 月 9 日,小米在香港挂牌上市,股票代码 1810.hk。据了解,小米将香港 IPO 报价 16.60 港元,较发行价低 2.35%,首日就破发,净筹资 239.75 亿港元,总市值 3714 亿港元;共收到约 10.35 亿股认购申请,相当于超额认购约 9.5 倍。知情人士称,李嘉诚、马云、马化腾 3 人就认购小米份额超过 2.3 亿美元。小米早期投资人,回报达到 866 倍。

除了手机等核心业务之外,小米有哪些开源技术同样值得关注呢?InfoQ 特意搜集制作了这份小米开源项目列表,以飨读者。

MACE:移动端深度学习框架

MACE 是专门为移动设备优化的深度学习模型预测框架,从设计之初,便针对移动设备的特点进行了专门的优化:速度、功耗、系统响应、初始化延迟、内存占用、模型保护等均有提升。

MACE 支持 TensorFlow 和 Caffe 模型,提供转换工具,可以将训练好的模型转换成专有的模型数据文件,同时还可以选择将模型转换成 C++ 代码,支持生成动态库或者静态库,提高模型保密性。目前 MACE 已经在小米手机上的多个应用场景得到了应用,其中包括相机的人像模式,场景识别,图像超分辨率,离线翻译 (即将实现) 等。

地址:https://github.com/XiaoMi/mace

Pegasus:分布式 KV 存储系统

Pegasus 是小米云存储团队开发的一个分布式 Key-Value 存储系统,最初的动机是弥补 HBase 在可用性和性能上的不足。Pegasus 系统的 Server 端完全采用 C++ 语言开发,使用 PacificA 协议支持强一致性,使用 RocksDB 作为单机存储引擎。

Pegasus 具有高可用、高性能、强一致、高扩展、易使用的特性,经过两年多的开发,目前已支持了十几个业务。更多细节可阅读:小米开源分布式 KV 存储系统 Pegasus。

地址:https://github.com/XiaoMi/pegasus

Open-falcon:企业级监控系统解决方案

Open Falcon 是小米运维部开源的一款互联网企业级监控系统解决方案。Open Falcon 是完全用 GO 语言编写的,主要特性如下:

  • 数据采集免配置

  • 容量水平扩展

  • 告警策略自发现

  • 告警设置人性化

  • 历史数据高效查询

  • Dashboard 人性化

  • 架构设计高可用

官网:http://open-falcon.org/

GitHub 地址:https://github.com/open-falcon

rDSN:分布式服务框架

rDSN 是一个快速构建鲁棒分布式系统的框架。它有一个可插拔组件的微内核,包括应用程序、分布式框架、devops 工具和本地运行时 / 资源提供程序,支持它们的独立开发和无缝集成。这个项目最初是为微软必应开发的,现在已经在微软内部和外部的生产中被采用。

GitHub 地址:https://github.com/XiaoMi/rdsn

Shepher:Zookeeper 管理工具

Shepher 是一款 ZooKeeper 的管理工具,小米用它作为配置管理中心。

Shepher 具有以下特性:

  • ZooKeeper 节点的可视化操作

  • ZooKeeper 节点的快照管理

  • ZooKeeper 节点修改的 Diff 和 Review 功能

  • ZooKeeper 节点操作邮件通知

  • 集成 CAS 和 LDAP 登录

  • 权限管理

GitHub 地址:https://github.com/XiaoMi/shepher

LInden:基于 Lucene 的实时搜索系统

Linden 是一个基于 Lucene 创建的实时搜索系统。它提供一个类似 SQL 查询语言接口,名为 BQL。BQL 简单而直接。Linden 提供一个非常简单的方式来调整搜索结果排名。你可以在你的查询中传递一段 java 评分代码甚至一个评分插件类名。Linden 也支持通过 linden 灵活查询从低指数水平自定义评分逻辑,你可以获得每一个查询词匹配的信息,所以你可以制作一个非常直观的评分逻辑。这对初学者来说是非常方便的。

GitHub 地址:https://github.com/XiaoMi/linden

Rose:Web 开发框架

Rose 是一个 Java 的 Web 开发框架。Rose 提供各种特性和约束惯例,从而使开发者能够轻松地开发 web 程序。Rose 整合技术,强调最佳实践,甚至包括名称规范。Rose 规范了对 Spring 的使用,同时允许开发者放置 applicationContext-xxx.xml 文件来扩展 Rose。

GitHub 地址:https://github.com/XiaoMi/rose

Chronos: 时间戳服务器

小米公司开发的实现高可用、高性能、提供全局唯一而且严格单调递增 timestamp 的服务。Chronos 采用主备架构,主服务器挂了以后备服务器迅速感知并接替服务,从而实现系统的高可用。服务端使用 Thrift 框 架,经测试每秒可处理约 60 万次 RPC 请求,客户端单线程每秒可请求 6 万次 (本地服务器),保证高性能与低延时。全局只有唯一的 ChronosServer 提供服务,分配的 timestamp 保证严格单调递增,并且将已分配的值持久化到 ZooKeeper 上,即使发生 failover 也能保证服务的正确性。

GitHub 地址:https://github.com/XiaoMi/chronos

Themis:HBase 跨行 / 跨表的事务处理

Themis 是小米公司开发的,为 HBase 提供了跨行 / 跨表的事务处理,基于 Google 的 percolator。

Themis 通过基于 HBase 的单行事务的两阶段提交和冲突解决来保证交叉行事务的 ACID 特性。Themis 依赖于 Chronos 来提供严格递增的全局时间戳,它定义事务的全局顺序,并使 Themis 能够在给定的时间戳之前读取数据库快照。Themis 采用 HBase 协处理器框架,无需改变 HBase 源代码即可应用。我们对它们的正确性进行了几个月的验证,并对算法进行了优化,以获得更好的性能。

GitHub 地址:https://github.com/XiaoMi/themis

Android_tv_metro:安卓版 TV Metro 框架和服务器 API

Android_tv_metro 是一款安卓版 TV Metro 框架和服务器 API,开发语言为 Java。

API 和数据结构

  • 专辑和显示项目:Metro 风格是由两个元素构成

  • 专辑可以包含多张专辑和显示项目

  • 显示项目可以被定义为视频,游戏,应用程序,音乐等

  • 您可以从显示项目中删除你自己的游戏 / 应用 / 视频详细条目

GitHub 地址:https://github.com/XiaoMi/android_tv_metro

Minos:分布式的发布和监控系统

Minos 是小米公司开发的一个分布式的发布和监控系统。最初是小米开发的用来在 Hadoop 和 ZooKeeper 集群上发布和管理的工具。Minos 可轻松扩展来支持其他的系统,目前已经支持包括 HDFS、YARN 和 Impala 。

GitHub 地址:https://github.com/XiaoMi/minos

声明:本文由入驻混序财经的作者撰写,观点仅代表作者本人,不代表混序财经赞同其观点或证实其描述。若涉及作品版权问题烦请告知,我们会及时处理。

意见反馈