微信群:数据库Hacker, 已超200多人,无法通过扫描直接加入。需要入群的朋友,请直接微信联系我(个人微信:_iihero),标上您的全名_数据库Hacker作为备注。欢迎入群。
前一两天,看到各群里头,有一个特别引人注目的消息:
一个亲身经历:被license折磨了一天半。GP数据库莫名其妙总是提示too many connections,于是一阵分析啊,又是看用户级别的限制,pg_user\pg_roles,又是看数据库级别的connect limit,看pg_database,发现都没有限制;又去看控制文件,新建库各种尝试,使出九牛二虎之力,依旧不得解;最终拉上研发,上来也是一阵debug,一阵pring,step,最终莫名其妙好了,就在我纳闷的时候,反馈说换了个license。。。。。。吐血,算是亲身经历明白了“卡脖子”这件事的真相了。
你说整个license到期的提示也行,日志里也没有;更为关键的是,还有10多天才到期,这就给你上强度了,10来个连接就不让你连了
这还是源于PG技术大拿在实际排错过程中的遭遇。为了避免引发纠纷,他也隐去了具体国产数据库厂商的名字。
那么从这里,我们能得到什么启示呢?
1.License是否有必要
作为商业软件,通过License来为不同类型的用户提供不同类型或等级的服务,以实现或提高其商业价值。这个显然是有帮助的。如果是无差别的功能,那就需要从后续支持或维护服务中拿到额外利润。两种不同的盈利方式。
从商业软件的发展历程来看,大多采用带License的策略。
2.License会如何做
那么一般情况下,License会做到什么粒度,会怎么做?
这个就取决于软件提供商的具体实现思路。大体上都是“功能”叠加时间限制。比如:
2024-03-01续license至2025-03-01日。提供的功能模块:
企业版/标准版 支持Cluster, HA (Y/N) 支持高级监控 (Y/N) 支持In-Memory(Y/N) 支持Column-based存储(Y/N)
等等。这些因为都是比较独立的大功能模块,实现起来,无非就是一个开关的ON/OFF, 也比较简单明了。
3.操蛋的实现是什么样的
操蛋的license实现是,偷偷摸摸的给你“停”了。
仍然以上例为例,你买了一个企业版+Cluster的某DB产品。2025-03-01到期。然后到了2025年02-01日的时候,忽然发现,原来500个连接的连接池,好多都拿到数据库连接了。日志里头没有进一步更详细的信息。然后Cluster功能也不好使了。
license还没到期,就做这种恶心事,确实难以想像。
于是,就苦了DBA们了。他们挖空心思,找各种技术手段,最后才碰巧找出是因为license在作恶。
4.有良心的商家是如何做的
关于license, 有良心的商家是如何做的?
有良心的商家,会在一个月甚至一个多月前,就在数据库系统日志里头每隔一个小时提醒你一次:
[warning: ] 您好,您系统的license将在2025-03-01到期,为确保系统能正常提供服务,请务必于该日之前更新您的license。
并且,在任何能登陆系统的console界面,尤其是Web界面,也会在醒目的位置,推送上述消息,并提供您原来购买的license涉及到哪些功能。
在这之前的任何时刻,功能上的东西都不会受到任影响。
而到了03-01到期日的时候,一般都是直接温和的shutdown,而不是限制功能。shutdown意味着系统“宕机”,也意味着DBA或上层到最后关头,需要去着力解决license续约的事情。
闲扯一下,不知道说的是否完整,最后还是祝愿国产厂商能在license这一块,挑选正确的执行路径,不要给广大用户使绊子,那样只会给自己带来坏名声。
个人微信:_iihero
CSDN: iihero
墨天轮:https://www.modb.pro/u/16258 (Sean)
pgfans: iihero
往期导读:
1. PostgreSQL中配置单双向SSL连接详解
2. 提升PSQL使用技巧:PostgreSQL中PSQL使用技巧汇集(1)
3. 提升PSQL使用技巧:PostgreSQL中PSQL使用技巧汇集(2)
4. PostgreSQL SQL的基础使用及技巧
5. PostgreSQL开发技术基础:过程与函数
6. PostgreSQL中vacuum 物理文件truncate发生的条件
7. PostgreSQL中表的年龄与Vacuum的实验探索:Vacuum有大用
8. PostgreSQL利用分区表来弥补AutoVacuum的不足
9. 也聊聊PostgreSQL中的空间膨胀与AutoVacuum
10. 正确理解SAP BTP中hyperscaler PG中的IOPS (AWS篇)
11. 由浅入深高可用(HA)之: HAProxy