`

Sensei:分布式, 实时, 半结构化数据库

阅读更多
在未出现开源搜索引擎以前, Doug Cutting整了个Lucene, 随后Yonik Seeley写了一个Solr, 在2010年 Shay Banon发布了ElasticSearch, 大概在两年前, 我们迎来了Sensei, 最近他们发布了1.0版本, 下面通过@sematext对LinkedIn的搜索架构师John Wang的一个采访. 来大致了解一下Sensei.


Sensei是什么?
开源, 灵活, 实时, 分布式数据库, 原生支持搜索, 能操作非结构化文本和结构化数据. 它主要用户处理海量复杂半结构化查询和经常变化的数据结构. 它广泛用于支持LinkedIn.com的搜索功能.

为什么没有用solr?
1.数据更新量大
2.分布式. 目前solr的分布式在master上还存在单点问题(SPOF), 而Solr Cloud还没出来
3.复杂的facet支持.

Sensei的独到之处有哪些?
支持海量更新
支持半结构化查询

Sensei最大的缺点以及计划何时解决?
1. Sensei的文档必须有一个long类型的唯一标示符. 这个主要是处于性能的考虑. 目前没考虑解决.
2. 数字类型不支持负数, 该功能即将实现.
3. 静态schema. 稍后支持动态schema.

接下来即将实现的关键功能有哪些?
1.相关的工具
2.内建对时间和地理信息类型字段支持
3.parent node类型文档支持
4.支持属性类型facet(名字对)
5.在线均衡重置
6.在线索引重建
7.参数化二级存储
8.动态schema
9.支持聚合函数, 比如AVG, MIN, MAX

Norbert在Sensei中的作用?
一个集群管理器, 负责Broker和Sensei node之间的RPC调用. Broker是内置在Sensei节点的Servlet. Norbert用于Sensei Node之间的消息传输. 同时它内置了Zookeeper来进行集群管理. 下一步将对其进行抽象, 允许以plugin的方式集成其他集群功能.

对BQL介绍一下?
BQL – Browse Query Language. 作为SQL变种支持Sensei查询. 它将成为Sensei的标准查询.

Sensei相关的性能测试数据?
测试数据参见:http://Senseidb.com/performance.html
相关测试代码参见:https://github.com/kwei/search-perf

Sensei是否有单点问题(SPOF)?
没有.

什么情况下会导致数据丢失?
除非所有副本节点都丢失数据
Sensei要求添加的所有数据都是有序而且带版本的, 从而实现数据回放恢复.

如果集群中的一个节点挂了会怎样?
有ZooKeeper呢.

如果达到集群容量上限会如何处理? 自动扩展还是手工重置负载均衡?
取决于数据的Sharding方式.
新加入的节点需要在Sensei.properties配置文件中指定处理哪些分片的数据, 比如:
Sensei.node.partitions=1,3,8

如果sharding策略不需要迁移数据, 比如根据时间和连续UID sharding, 那么扩展集群将非常方便
如果sharding策略需要迁移数据. 比如采用取模的方式sharding, 这时集群就需要重置负载均衡. 下一步将实现在线重置负载均衡. 而现在需要对所有数据重建索引.

作为最终一致性的Sensei, 如何保证多次查询结果一致?
通过一个路由参数, Sensei采用一致性hash路由参数, 保证每次查询都定位到同一个节点.

如何升级? 是否需要停机整个集群? 是否向后兼容?
部分升级. 不需要停机整个集群. 向后兼容.

Sensei是否需要shema?
需要, 下一步支持动态shema.

其他搜索功能的支持情况?
通过相关工具支持Function query
计划支持SpatialSearch和Parent-Child数据
不计划支持Join.

如何访问Sensei?
提供两个接口: REST/JSON和BQL
提供Java和Python客户端.

Sensei的运维工具做的怎样?
自带有一个web应用来管理集群.
提供了JMX支持,
还支持修改配置来调整输出, 比如日志输出.

原文地址:http://blog.sematext.com/2012/01/26/Sensei-distributed-realtime-semi-structured-database/
0
0
分享到:
评论

相关推荐

    sensei, 分布式实时搜索数据库.zip

    sensei, 分布式实时搜索数据库 什么是 Sensei( http://www.senseidb.com/ )Sensei是一个分布式的弹性实时搜索数据库。维基维基在以下位置可用:http://linkedin.jira.com/wiki/display/SENS

    SENSEI:表面运行对Sub-GeV暗物质的第一个直接检测约束

    次电子噪声Skipper CCD实验仪器(SENSEI)使用最新开发的Skipper-CCD技术,从次GeV暗物质粒子与硅中电子的相互作用中寻找电子反冲。 我们报告了原型SENSEI检测器的第一个结果,该检测器在费米国家加速器实验室的地面...

    SENSEI:使用原型船长CCD进行的浅地下运行对Sub-GeV暗物质的直接检测约束

    我们使用亚电子噪声Skipper-CCD实验仪器的原型检测器,提出了与电子相互作用的eV-GeV暗物质与电子相互作用的新直接检测约束条件。 结果基于费米国家加速器实验室在MINOS洞穴中获得的数据。 我们专注于通过两种不同的...

    Sensei:Sensei LMS WordPress插件

    WordPress的学习管理插件,可提供最流畅的...Sensei LMS结构模型可以分为几个部分。 这些组件在当前版本中没有很好地分离,但是可以作为将来更改的模型。 核心 帖子类型 设定值 用户数 教师 学习者 留言内容 电邮 内

    sensei:https的替代品

    Sensei 旨在替代 ,使用更简单和更新的堆栈。 它在功能方面并不符合标准,但已准备好进行试驾。 安装 使用发布的 Docker 镜像 :spouting_whale: 使用docker image pull zenika/sensei 创建别名sensei alias ...

    react-sensei:清理React UI组件库

    Sensei是为前端React开发人员构建的UI组件库。 主要重点是快速创建干净的响应式仪表板! 安装 Sensei依赖于整个应用程序被包装在带有单个主题道具的SenseiProvider组件中。 1.安装react-sensei Sensei现在可以通过...

    sensei:WooThemes Sensei 插件

    woothemes-老师WooThemes Sensei 插件

    sensei:中型数据的逻辑回归引擎

    Sensei 是一个逻辑回归引擎。 它旨在在一台机器上运行中型数据。 它目前能够: 以 LIBSVM 格式读取数据集(仅具有二进制特征) 高度可配置的训练 自动特征探索 自动特征修剪 保存模型以供以后训练或评分 数据评分...

    Sensei:Dark-Fb无需登录100%安全

    • cd Sensei • chmod +x * • python2 main.py 卡利Linux • sudo apt-get install python2 && git -y • sudo git clone https://github.com/BOT-033/Sensei • sudo apt-get install python3-pip • sudo pip3 ...

    admit-sensei:启动模拟

    登录原型 网站和用户系统启动器。 使用 Express 和 Backbone 实现。 技术 在服务器上 在客户端 发展 表示 引导程序 ...$ mv ./config.example.js ... 接下来,您需要数据库中的一些记录才能开始使用用户系统。 通过终端在

    sensei:Sensei是一个简单的命令行工具,可以打开crates.io中任何包装箱的文档

    Sensei是一个简单的命令行工具,可以打开crates.io中任何包装箱的文档。 安装 cargo install sensei 用法 sensei <crate> [OPTIONS] [FLAGS] 选项 -v, --version <version> Opens documentation for a specific ...

    binja_sensei:二进制忍者的教育工具

    binja_sensei 二进制忍者的教育工具 该插件为初学者提供了使用Binary Ninja学习逆向工程的资源。 它会自动安装其他几个插件,并提供示例来展示这些插件的功能。 注意: 截至2018年7月18日,此插件用于安装其他插件...

    hudl-dev-sensei:用于开发人员提名的 Chrome 扩展

    hudl-dev-sensei 这是 Hudl 的开发人员奖提名的 Chrome 扩展。 它使用填写当前登录的 GitHub 用户的电子邮件,以及接收提名的用户的电子邮件,前提是单击评论按钮。 由于 API 的性质,只有具有公开可见电子邮件地址...

    Sensei.unitypackage

    Sensei.unitypackage

    yumeres:电子商务

    导入yumeres.sql数据库 帐户测试: :Sensei :森 去做! 客户登录页面* V 客户注册页面* V 客户帐户页面层* V 客户容器:仪表板* V 客户容器:列出表中发布的商品* V 客户容器:关节插入* V 客户端容器:...

    sensei-anywhere:由模糊搜索 (JSHTML) 提供支持的导航工具

    Sensei Anywhere 在用于在连接、数据库和表之间导航。 该项目目前正在大量开发中,使用风险自负。安装Sensei Anywhere 依赖于 jQuery、lodash/underscore.js 和 Mousetrap。 将这些库与sensei-anywhere.css和sensei...

    Sensei for Mac v1.2.1 中文版 系统性能优化及清理工具

    Sensei mac版,是一款系统性能优化及清理工具,提供了一些与硬件和软件相关的功能,例如超级易于使用的应用程序卸载程序,快速的磁盘清理程序,电池和存储驱动器的运行状况信息等等,帮助您优化,监控和清洁Mac,以...

    赛睿SteelSeries Sensei RAW游戏鼠标驱动程序 最新版

    赛睿SteelSeries Sensei游戏鼠标驱动程序,是赛睿鼠标的官方驱动程序,支持WINXP/WIN7/WIN8驱动【32/64位】有需要的小伙伴赶紧下载吧。Steelseries Sensei游戏鼠标拥有一个32位的ARM处理器,运算速度相当于英特尔...

    zadlab9-Sensei14:zadlab9-Sensei14由GitHub Classroom创建

    OOPL9 馆藏 ... 但是,要使用数组,必须使用new运算符实例化一个新的数组对象,即初始化该数组。 然后确定数组的大小: słowa = new String [ 4 ]; x = new int [n + 20 ]; // przykład rozmiaru

    jQuery数据网格库SenseiGrid.zip

    Sensei Grid 是简单的数据网格库,使用 JavaScript 编写。i 目标: 简单 极小的代码基础 扩展性 稳定性 在线演示 标签:Sensei

Global site tag (gtag.js) - Google Analytics