查看: 2008| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

[题目讨论] 系统设计题目讨论

全局:

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

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

x

现在有一张表是一个csv格式的文件,这张表在一个包含了很多东西很杂的repo中,能访问这个repo的人都可以提交pull request修改这张表,现在需求是想把这修改这张表变成一个service,这个service可以限制什么人有权限修改这张表,并且每次修改可以记录下是谁在什么时间修改了什么,以便于后期查找。


我的想法是做一个提供change api的service,这个service有role based access control,所有对这个表的change用append only log保存,但是有两个问题没有想清楚,一是如果append only log太大了怎么保存,是分成好几个文件吗?那查询的时候不知应该怎么操作。二是这个service上线了以后,如果有好几个人对数据同时进行修改,应该怎么处理?


不知地里朋友除了这些还有什么更好的想法?谢谢了!

上一篇:有个教人手写实现mysql,redis的网站
下一篇:硅谷程序员跳槽指南之系统设计 System design (with iOS example)
全局:
本帖最后由 不想刷题223 于 2023-9-12 22:11 编辑

很简单,修改表对应的就是post api,学习github的设计,每次总是在push的时候告诉你 "401, xxx conflict了要修改",既push的时候做一遍检查,反正恶心的是提交修改表的人。

如果follow-up问高频写入怎么办? 那唯一的办法就是上锁,不存在其他方案。
回复

使用道具 举报

推荐
cto 2023-9-12 15:03:22 来自APP | 只看该作者
全局:
Log 一天一个可以吧
把数据存到数据库里,修改查询都容易,想用csv生成一下就行
回复

使用道具 举报

全局:
感觉可以套用Svn/git
回复

使用道具 举报

🔗
phantom 2023-9-15 04:37:28 | 只看该作者
全局:
大概的QPS?

CSV大概相当于database的table?
那就看你用什么方案了。mysql。或者non-sql的。根据具体情况
csv。table有多大,每次读是读几行,还是整个table读还是啥
写是改已有的row还是加新的。。concurrent mode那就是database的锁呗。
可以锁整个table。可以锁某一行。按照平时都是交PR去改。那write qps肯定就不高呗。
强一致性把table的行锁住就好了

change log很多database直接就有change log之类的解决方案。或者就开个log table去写log
也可以你的application去写cassandra,dynamo这些
大概算一下每天有多少write。要保留多久历史就知道log table有多大了。一条log也很小。存几个million的log应该没问题的吧
回复

使用道具 举报

🔗
18M 2023-9-15 06:20:36 | 只看该作者
全局:
这个需求听起来是建一个公司内部的feature flag平台,取代configuration文件。
Web frontend:
  查看config,修改config(edit, roll out, approval),浏览修改记录,包括login, 权限管理
Backend:
实现面向frontend的api,用于Login,view/modify/roll out config.
实现面向其他service的api,用于获取最新的config.
config可以采用json格式,存于RDBMS中。

多人同时编辑的问题不大,这并不是实时协作google doc,以最后的编辑为准。
其他service启动时,获取最新config。如果想让其他service不重启就能获取新的config,就比较复杂,可能需要一个message queue去通知config有了改变。
回复

使用道具 举报

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

本版积分规则

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