<
回复: 2
收起左侧

萝卜乐思 系统设计

匿名用户-1PE8L  2023-8-5 08:44:51
本楼:   👍  0
0%
0%
0   👎

2023(7-9月) 工程类 本科 全职@ - 内推 - 技术电面  | Fail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 匿名 于 2023-8-5 08:48 编辑

大家常提到的Flag items
自己系统设计太菜挂了

想问下具体应该怎么实现,来提高自己

User 想知道 flag 是不是被flag (1m qps)
User 想能 flag/unflag item (100k qps)-baidu 1point3acres
User 想知道 item 被flag 多少次 (1M qps)

上一篇:rippling中国情况
下一篇:coupang 电面面经 -- 北京
地里匿名用户
匿名用户-IWURT  2023-8-5 08:48:27
本楼:   👍  0
0%
0%
0   👎
本帖最后由 匿名 于 2023-8-4 20:10 编辑 . 1point3acres

是不是4个表就可以了?.google  и

1. user (primary key: user ID), item(primary key: item ID),user_likes_item (combined key: user id/item id), item_liked_by_user (combined key: item id/user id).
(其实后面两个table的信息是一样的,但是因为item和user的shard方式不一样,可能需要shard到不同的mysql host,然后根据item id和user id可以方便的找到他们对应的shard)

2. 4个table都可以shard到多个mysql host。
    其中, user , user_likes_item是根据user id来shard
    item,item_liked_by_user是根据item id 来shard。. .и


然后在query的时候做各种统计。
1. 多个server接受1m qps, 根据item id找到相应的shard,然后查找 item_liked_by_user。 如果后台的db host即使shard之后也无法承受相应的qps,那么中间层加入cache,like的时候写入cache,unlike的时候delete。
2.必须直接写相应的table.google  и

3. 和1类似。如果可以的话,直接根据item id找到item_liked_by_user, 然后count。如果引入cache的话,<item id, count> 。每当一个item被like或者unlike,count做加减处理。其中,要定期invalidate cache,以保证cache会定期的到数据库取最新的准确数据来更新cache。. check 1point3acres for more.
如果一个item的被like/unlike的concurrency太高的话,只能是invalidate cache然后写数据库,等下次读的时候再根据数据库的信息更新cache。
抛砖引玉。
回复

使用道具 举报

咖喱给给1 2023-8-6 11:26:31 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   1
100%
0%
0
lz这是面的国内的萝卜吗?我看国内萝卜最近深圳就一个principal的开发岗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

Advertisement
>
快速回复 返回顶部 返回列表