V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  luciankaltz  ›  全部回复第 1 页 / 共 5 页
回复总数  92
1  2  3  4  5  
5 天前
回复了 anivie 创建的主题 程序员 Win+ Linux 开发环境结合
一台 PC 台式机,两个盘分别装 Windows 和 Linux ,默认启动盘是 Linux (当 server 用,GUI 都没有),设定每天早上 9 点自动开机
办公室 MBP ,家里一台 Mac Mini M4 作为开发前端。浏览器文本编辑文档之类的在 macOS 下,开发就 vscode Remote SSH 到 Linux 机器上
到家需要切 Windows 就关机重启一下就好了
10 天前
回复了 irisdev 创建的主题 数据库 关于分库分表的一点疑惑
@irisdev 当然是手打的,这哪有 ai 那味儿( xs

现代数据库并不是一个精确的概念,只是我自己想的一个词,用来代指理念上设计更现代的的数据库,比如内置的 region 的设计?
现代数据库也不等同于分布式,根据适用场景现代数据库也有单点(大部分现代分布式数据库都可以同时单点部署和分布式部署)和“嵌入式”数据库(比如有名的 duckdb )
10 天前
回复了 irisdev 创建的主题 数据库 关于分库分表的一点疑惑
1. 较早的数据库,例如 MySQL 这种对外提供的表概念就是最小化的逻辑单位的情况。通过特定的第三方中间件去实现分库分表,例如在数据库集群上包装入口,或者使用特定的数据库驱动库去链接数据库。本质上是通过特定的逻辑实现自动分库分表

以查询用户的订单为例。设定所有用户的 UID 前两位或者前三位均匀分布在 00-99 或者 000-999 ,然后针对用户的订单(或者任意的用户数据)的操作必须带上用户 UID 信息。中间件拦截这个 UID 字段,并且自动解析,路由到对应的分库分表

虽然使用上是几乎无感的,但是作为研发要知道实际下面可能数据路由到了不同的库表(甚至可能会路由到不同的物理数据库集群中)。这点在事务中要尤其注意

2. 现代的数据库(?)在底下存储的时候,除了有表的概念,有些会进一步细分 region ,或者叫数据块的逻辑单位。数据实际存储在 region 中,表只是 region 的逻辑集合,region 通过主键自动或者手动进行划分,对数据进行分割存储

相比于分库分表这样的作法理论上可以保持单表的无限扩容,并且可以保证数据在同一个数据库的逻辑概念中(不至于要分库)
悲观锁,也就是 select for update ,一般同时满足两种情况
1. 有一个大的事务(也就是不仅操作这一条记录,会涉及起码两条以上的数据库记录),并且需要保持这些操作都原子,或者全成功或者全失败
2. 在整个事务周期中这个记录不能被其他请求修改
理论上来说涉及到钱的一律全部悲观锁(基本上也满足以上两个场景)

乐观锁的目的更多在于保持单条记录的原子性,比如操作记录对应的版本号,允许重试,但是版本更替的记录不能丢失。例如失败了可以通过重拾消息来保证最终更新成功,之类的
@nyxsonsleep 看着没什么问题。我峰值主要是跑编译,大部分时候核心会跑满所以无所谓
家里的 Windows 机器本来只用来打游戏,后来发现 13900k 比垃圾 m1 pro 编译速度快多了,所以想利用起来
现在的实践方案是单独装了一块 SSD 装 Linux server ,然后用 macOS 作为前端 SSH 上去开发(为此公司有一台 MBP 家里这次新买了 Mac Mini M4 ,当然愿意 MBP 上下班都带也没问题)
用 Linux systemd-boot 选择启动这样能识别所有的系统;默认 Linux 每天早上自动启动,这样到公司就能用
下班之后手动重启一下切到 Windows 纯娱乐+玩游戏
@Natsumoku 看着好酷,这个是调整了机内预设吗(
33 天前
回复了 wjx0912 创建的主题 程序员 求一个 fish 配置(类似 zsh 的自动补全)
42 天前
回复了 inspiration2030 创建的主题 程序员 试图反向推理一个 BUG
@inspiration2030 #8 那就要看是业务逻辑处理返回的时候有问题(比如上面说的 js/后端 java 处理格式之类的),还是数据库本身的返回结果有问题了。都不是没可能,谁知道底下代码是怎么写的(

都无从猜起(
42 天前
回复了 inspiration2030 创建的主题 程序员 试图反向推理一个 BUG
首先,能保证查询的数据集合本身是不变的吗?

也就是没人操作这个表里面数据的新增和删减之类的操作
看起来还是一个时序指标的场景
不知道历史的统计要不要频繁查询,不过愿意等的话查询语句写的好应该问题也不大
数据直接存对象存储上,800w/年 的数据放个几年问题都不大(甚至再来几倍都

懒得写重复的回答了,ref https://www.v2ex.com/t/1093560#r_15605476
看起来是个非常明确的边缘设备+时序的场景
不确定这边 10w rows/s 是发生在边缘端还是已经到了一个聚合中心,也不确定是不是有自己的采集程序还是这个数字只是传感器的上报频率汇总之类的。甚至如果是内网传输的话其实上面说的很多带宽的问题都没有那么大

理论上来说时序的数据库应该都能支持( 10w rows/s 并不是一个特别大的数字)。但是考虑到性能和部署条件,可能需要实际测试一下部署的结果

楼上还有说用 clickhouse 的,我不确定用关系型去存一个明显的时序的场景是不是更切合。当然你说要存那肯定没问题(

另外就是后续的使用场景,是用来出大盘还是有一些数据分析的需求,查询的场景更多的是最近分析,最近一周/一个月分析,还是历史全量汇总分析,之类的

回答一下楼主最开始提的几个问题
1. 写入频率。做个简单的 batch ,10w rows/s 对于常见的时序数据库都不是问题。唯一可能需要看下写入时的资源占用
2. 服务器配置,同上。这个相对比较主观,我的猜测是 2c/4c 的服务器就基本能满足。内存 1:2 或者 1:4 (大概率 1:2 就够了)。长时间存储的话只要数据库支持存算分离,长期数据保存到一个对象存储上面,成本应该非常小

有兴趣的话可以考虑一下 GreptimeDB

备注:利益相关
80 天前
回复了 Mogamigawa 创建的主题 Apple mac mini 做什么用途比较好
买一个最低配用来当开发机“前端”
在 mac mini 上跑一些浏览器,IM ,邮件之类的 GUI app ,重活开发就 vscode Remote SSH 到 Linux server
(联动前几天的 https://v2ex.com/t/1084478 ,其实我之前的思路差不多,只不过后来发现家里的 13900K 还能一战就没有配一套新的)

主要是为了 macOS 统一的桌面使用体验(在公司也是这么一套 setup ,Remote SSH 到家里的 Linux server )
试试看抽奖(

要是能带上侧刻的那些符号就更好了(
9 年工作一直用的 macOS 作为开发机。最近(主要是这两年)因为要写 rust 导致 macOS 性能实在跟不上,升级配置的成本有点大,所以动了把家里游戏机( 13900K )装一份 Linux 当半个开发机的想法,来回折腾大概四五次全失败了(可能主要是我菜)

现在还是双系统,只不过 Linux 纯 console ,没有 GUI 。macOS + vscode remote 写代码/编译/build/跑测试。等 mac mini M4 出了准备买一个放公司,然后把 mbp 放家里。家里也是 macOS ssh 到 Linux server 上这套流程

OP 既然有 mac studio ,也可以考虑一下这个方案。Windows + Linux 分别装在双盘上,需要工作的时候 Linux 作为 console 启动,然后 mac studio 连显示器 ssh 到 Linux 上跑重工作。需要娱乐的时候就用 Windows 连显示器

不过我不确定 Android 开发能不能这么搞。
可以找 rust 的开源项目练练手,或者自己(重)写点小工具
185 天前
回复了 karottc 创建的主题 Java quarkus-graalvm 可以救 Java native 一命
我们之前某个小组件用 quarkus + native image 试了一下,结果发现有些莫名其妙的坑,比如上面说到的反射之类的。如果需要手动一个一个标注也太麻烦了(指没必要

说起来 quarkus 坑也很多就是了,还是不如 spring (

一定要扣这些资源,不如直接用 go 重写就是了(
206 天前
回复了 Moierby 创建的主题 问与答 你都见过哪些非常稀少的姓氏?
看到了自己的姓氏,满意离去(
206 天前
回复了 KazuhaMax 创建的主题 职场话题 报计算机相关专业求教
学校和城市的讨论上面已经很多了,就不再赘述。说一些自己的想法看法(以及最近公司招实习生遇到的情况)
1. 可以优先考虑北京(目前来看北京的互联网/ IT 公司的数量还是独一档),或者其他(上广深,半个杭)这种能带来实习机会的城市。按照目前计算机专业这个卷的程度,如果毕业的时候有亮眼的实习经历会有加分。异地实习也不是不行,但是要看和学校怎么沟通处理
2. 多自学。目前网上的专业教材和各种教程已经丰富了很多。英语好的话直接找国外名牌大学 CS 培养的课程和教材看,做习题和实验。国内的专业教学安排可能除了特定几所大学,我保持悲观的态度。在这个基础上尽可能保持绩点高
3. 尝试在开源社区贡献代码。在有一定编码能力之后,积极寻找能真实参与软件开发的机会。会写代码和能在工程里尤其是大型工程里面贡献代码是两回事,学习真实的软件工程的协作开发流程。如果能有给知名代码库贡献有效 pr 的话在简历上也会非常加分
4. 关注和参与开源社区活动。除了代码贡献之外,关注开源社区的活动能让你知道当前社区(包括开源届和技术公司)在关注什么方面的技术和项目,提升自己的眼界的同时也许也能积累一定的人脉和影响力。如果有实践上的问题直接问在业界的人(尤其是一线的开发人员)会得到相对真实的信息
5. 有机会的话可以参与 ICPC/ACM 这样的竞赛。CS 好的学校应该都有自己的队伍和组织。如果能拿到好的成绩也会是加分项
6. 本科阶段的专业个人推荐还是“计算机科学与技术”这个专业。那些细分领域如果真的有兴趣可以在后续读研阶段再转,先夯实编程能力及计算机相关的基础(虽然还是都靠自学)

想到哪里说哪里,先这样吧。几年前我记得轮子哥说过“计算机是实践的科学”,我觉得有道理。很多设计书上说的再多,自己实现一遍才会知道痛点在哪里,为什么这么设计
208 天前
回复了 duron600 创建的主题 问与答 完了,没手机可选了。
xperia 5v 末代小尺寸 21:9 机皇( bushi
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2917 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 08:54 · PVG 16:54 · LAX 00:54 · JFK 03:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.