cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Santal Li <santal...@gmail.com>
Subject Re: goods search with cassandra
Date Wed, 21 Jul 2010 14:10:31 GMT
I think build a ColumnValueFilter isn't a good idea, you really needs was a
self defined index, otherwise filter will cause too many scan and disk IO.

we have meet almost same problem as yours in our own webapp: store data in
one fields, then get data by search on another fields. Our solution is
create a new KeySpace for index, them maintains the index by query
conditions at application. Suggest you read this document, for get
basic idea
http://code.google.com/intl/zh-CN/appengine/articles/index_building.html .

if you using this solution, maybe you need consider bellow issue:
1. multi client concurrent access
2. index and object data maybe inconsistence during error.

Some kind of lock service maybe help, like ZooKeeper.

Regards
-Santal



2010/7/19 Chen Xinli <chen.daqi@gmail.com>

> Hi,
>
> I want to implement goods search with cassandra; and I have some
> confusings. Can someone help me out?
>
> The case is that:
> There are about 1 million shops, every shop with about 10,000 goods, every
> goods with property like "title", "price" etc..
> The search is like "give me 10 goods in a specific shop and the price of
> the goods should be less than  10$"
>
> For the data model, I use shop name as the key; goods id as the column name
> and "title", "price" are special encoded as column value .
> There are too many goods in one shop, filtering the data in thrift client
> is impossible for network transferring reason.
> I want to implement a special ColumnValueFilter extends QueryFilter to get
> the result in "local".
> Is this the best way?
>
>
> Insertion of goods is about 100/second for the whole cluster, so a thrift
> client for insertion is ok.
> For reads, latency and qps are important and I must provide a http service
> for user searching.
> Embedding a thrift client in such a service will involve another network
> transferring, so I want to build the service on top of cassandra directly.
> I reviewed the code of ClientOnlyExample.java.
> What makes me confusing is that: insertion through thrift client and
> reading through using cassandra directly, is data consistency promised and
> how?
>
> Any help is appreciated. Thanks!
>
> --
> Best Regards,
> Chen Xinli
>

Mime
View raw message