Sensei

http://senseidb.com/
Sensei is a distributed database that is designed to handle the following type of query:

SELECT f1,f2...fn FROM members 
WHERE c1 AND c2 AND c3..
MATCH (fulltext query, e.g. "java engineer")
GROUP BY fx,fy,fz...
ORDER BY fa,fb...
LIMIT offset,count
							

Architecture:

Some Features

  • Full-text search
  • Faceted Search
  • Dynamic Sorting
  • Streaming index
  • Fast realtime update
  • Distributed - sharded
  • Dynamic cluster support
  • ...

Design considerations

  • data:
    • Fault tolerance - when one replication is down, data is still accessible
    • Durability - N copies of data is stored
    • Through-put - Parallelizable request-handling on different nodes/data replicas, designed to handle internet traffic
    • Consistency - Eventally consistent
    • Data recovery - each shared/replica is noted with a watermark for data recovery
    • Large dataset - designed to handle 100s millions - billions of rows
  • horizontally scalable:
    • Data is partitioned - so work-load is also distributed
    • Elasticity - Nodes can be added to accomodate data growth
    • Online expansion - Cluster can grow while handling online requests
    • Online cluster management - Cluster topology can change while handling online requests
    • Low operational/maintenance costs - Push it, leave it and forget it.
  • performance:
    • low indexing latency - real-time update
    • low search latency - millisecond query response time
    • low volatility - low variance in both indexing and search latency
  • customizability:
    • plug-in framework - custom query handling logic
    • routing factory - custom routing logic, default: round-robin
    • index sharding strategy - different sharding strategy for different applications, e.g. time, mod etc.

    Comparing to a traditional RDBMS

    RDBMS:

    • scales vertically
    • strong ACID guarantee
    • relational support
    • performance cost with full-text integration
    • high query latency with large dataset, esp. Group By
    • indexes needs to be built for all sort possibilities offline

    Sensei:

    • scales horizontally
    • relaxed Consistency with high durability guarantees
    • data is streamed in, so Atomicity and Isolation is to be handled by the data producer
    • full-text support
    • low query latency with arbitrarily large dataset
    • dynamic sorting, index is already built for all sortable fields and their combinations

        Learn about Sensei

Technology stack:

Sensei is built on top of an abundance of awesome-ness from the open-source community:

  • Bobo: a faceted search library
  • Zoie: a realtime stream search library
  • Lucene: full-text search engine
  • ZooKeeper: distribute resource synchronization system
  • Netty: NIO client server framework

 

Getting Started

Things to help you get started:

 

Gateways

Gateways specify where Sensei should be fetching data from.

posted on 2011-12-15 09:47  lexus 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2011/12/15/2288380.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值