Hi TR,
The query I used is list email of user (also support paging)
Thanks for your reply.
On Tue, Dec 1, 2009 at 4:24 AM, Tux Racer <tuxracer69@gmail.com> wrote:
> Hello QuyenPN,
>
> You forgot to tell us what typical search queries you will do against your
> database.
> If you know the user id and mail id, and just want to get the mail content,
> then you may even not need super columns:
>
> key= userid_mailid->content:the_content
>
> If you only know the user id and want to get the mails for that user, you
> could get the mails ID using and key ordered scanner.
>
> Cheers
> TR
>
>
> Quyen Pham Ngoc wrote:
>
>> Hi all,
>>
>> I know the limitation when using super column.
>>
>> "# Cassandra has two levels of indexes: key and column. But in super
>> columnfamilies there is a third level of subcolumns; these are not indexed,
>> and any request for a subcolumn deserializes _all_ the subcolumns in that
>> supercolumn. So you want to avoid a data model that requires large numbers
>> of subcolumns"
>>
>> I have Mail data model like
>> //Column Family
>> MailBox{
>> userId{//row key
>> "inbox":{//super column
>> mailId1: mailData1,
>> mailId2: mailData2 },
>> "outbox":{//super column
>> mailId3: mailData3,
>> mailId4: mailData4
>> }
>> }
>> }
>>
>> I know above design violate the Cassandra limitation with super column,
>> because day by day, email user send and receive increase.
>> Try to avoid this, I have 2 solution:
>> 1. Use 2 column Family: InboxMailBox and OutboxMailBox
>> //Column Family
>> InboxMailBox{
>> userId{//row key
>> mailId1: mailData1,
>> mailId2: mailData2 }
>> }
>>
>> //Column Family
>> OutboxMailBox{
>> userId{//row key
>> mailId3: mailData3,
>> mailId4: mailData4 }
>> }
>>
>> 2. Use complex row key: I use a prefix append to userId, ex "inbox" or
>> "outbox"
>>
>> //Column Family
>> MailBox{
>> prefix + userId{//row key
>> mailId1: mailData1,
>> mailId2: mailData2 }
>> }
>>
>> Could you give me some advice?
>> Thanks a lot for support.
>>
>>
>> Best regards,
>> QuyenPN
>>
>>
>
--
Best regards,
QuyenPN
Mail: quyenpnq@gmail.com
Tel: 0909 269 792
|