公司

港股上市!小米开源项目盘点

2018年7月11日 10:40:04

本文来自微信公众号“InfoQ”,作者为小智。

写在前面

7月9日,小米在香港挂牌上市,股票代码01810。据了解,小米将香港IPO报价16.6港元,较发行价低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

写在最后

恭喜小米成功上市,希望小米能保持初心,在技术上也能做出更多感动人心的好开源项目来!

(更多最新最全港股资讯,请点击下载智通财经App

取消评论