作者 | 胡巍巍
出品 | CSDN(ID:CSDNnews)
曾经有这么一位老板,把自己的员工当兄弟,称“不会开除任何一位兄弟”。
图源见水印
曾经这位老板,在某年的老员工授勋仪式上,无比仗义地说:
“凡是公司五年以上老员工,如果得病保险报销之外不够的钱,不管花多少,公司出!公司不会不管兄弟,不希望一人重病穷三代的事发生在京东兄弟身上!”
曾经这位老板,在采访中说,公司是一个最安全、最温暖、最充满爱和信任的地方。
图源:吴晓波频道2018 : 《十年二十人》之刘强东,下同
曾经这位老板,过年回宿迁老家,给老家捐赠一亿多人民币。
曾经这位老板,给村里老乡发红包,可以一下子发上千万。
曾经这位老板,深入河北农村当村长,穿着亲民的布鞋,对村民说自己也是农民的儿子,还承诺要在五年内带领村民,把收入提高十倍。
世间好物不坚牢,彩云易散琉璃脆。最易变的,永远是人心。
如今,在邮件中像评价物品一样,用“性价比”评价员工的,还是这位老板。
刘强东在邮件中,用“性价比”来衡量员工
试问,有谁会评价自己兄弟说“我兄弟性价比老高了”?
目前,京东方面,已经回应称:“文章系片面解读,目前京东倡导创业和拼搏精神,希望在公司营造出一个靠公平的勤劳付出而不是以各种借口混日子的环境。”
“哐哐当当”的京东
明尼苏达事件之后,刘强东虽然谈不上性情大变,但是对待员工,越来越狠辣,先是大刀阔斧高反腐、后是送员工去看守所受教育......
甚至还取消了快递员的底薪、降低了公积金系数。
而早在2017年初,刘强东曾表示:“大量的电商从业人员,没有或仅有少的可怜的五险一金,以克扣基层配送员和电商从业人员的福利,而带来的电商表面繁荣应该引起全社会的反思。”
2017年末,刘强东又说:“京东快递员的平均工资高出同行业50%,任何快递员在京东工作个5年,可以带着足够的钱回乡买栋房子。”
那现在降低公积金系数,还让不让人买房子了?
据界面新闻报道,“此次京东降低快递员的公积金系数,从12%降到7%,下调了 5%。
对此,北京不同片区的几位京东快递员予以证实,并表示6月以后入职的快递员,统一没有底薪、没有公积金。
此外,有老员工表示,新员工入职后或将和第三方公司签订合同,不再直接与京东签合同。”
但是快递员的工作其实很辛苦,最近就有京东物流员工,在脉脉发帖称,春节回来后就没有8点之前下过班,连女朋友都不理他了。
京东发生了什么?
我们不禁问,京东到底怎么了?
那个在宿迁办公大楼给员工建了整整15层员工公寓的京东;那个过年给加班员工孩子包3000红包的京东,去哪里了?
要知道,开年以来,京东的人事变动之剧烈,堪称中国版“伦敦的天气”。
2月,京东开年大会,这恐怕是京东罕见的没有“开门红”的一次开年大会。
京东在会上宣布,2019年将末位淘汰10%的副总裁级别以上的高管。
这相当于18万员工的京东,要淘汰掉几十到上百人左右的高管。
二月打雷,三月下雨。
很快,就有高管们逐次离职。
3月15日,京东宣布张晨卸任京东首席技术官,离职之日,正好接近张晨入职京东四周年。
3月19日,京东宣布首席法务官隆雨,因为个人职业发展和家庭原因,提出辞职。七年京东生涯,戛然而止。
而隆雨,曾经是刘强东的同学,亦是刘强东四顾茅庐、并等待半年之久才请来的。她来的那年,京东正处在资金链断裂、亏损高达17亿元的水深火热之中。
正是这种情况下,隆雨放弃了UT斯达康的高薪工作,加入了京东。
4月4日,京东首席公共事务官蓝烨,碰巧也因为个人和家庭原因提出离职。
不管怎样,一个月内三位高管离职,足以说明未来京东还会有更多的人事动作。
但你会发现,京东的变,并不是单方面的变,而是三位一体、甚至多位一体地变。
其工作时间、工作福利、和员工流动,都在变。
2018年11月,京东到家被传裁员,不过京东否认裁员,并表示内部提供了转岗机会。
3月初,京东提倡995工作制。
3月12日,有京东员工在脉脉曝出,995已经上升到了996.
4月初,有应届生收到京东Offer后又被撤回,虽然京东赔偿了五千元也算很仁义,但也足以说明,当下的京东很不安宁。
清明前夕,章泽天卸任刘强东旗下公司董事。
4月7日,京东物流宣布,快递员取消底薪制,公积金缴存比例也被调整。
去年以来,京东市值一度被拼多多超越。刘强东出事后,京东竟然出现了增速降低。
虽不能说和他出事有强关联,但是出事后国内外各种大会的缺席,又何尝不会引起投资者的担忧?
任何企业都不是常青树,即便没有这样的困难,也会有其它的困难。
将困难转嫁到员工身上未必理智
对于京东,直接把困难转嫁的员工的薪水上、工作的时长上。不就是打了创始人的脸吗?
当初是谁说,不想成为压榨员工血汗钱的老板的?又是谁说,赚钱不需要压榨劳动力和克扣五险一金的?
当然,京东有自己的苦衷,不过也请记得,“得道多助,失道寡助”。
很多企业想当然地以为,用压榨逼走了一个老王,还会有无数个老王来面试。
但是,当有一天美誉度不在,恐怕公司损失的,远比克扣的工资要多得多。
以上。
Python 成功上位,为什么逐渐与 Java 拉开差距?
【广告时间】
程序员想提升学历怎么办?动脑学历教育 —— 自考本科计算机专业辅导班:可报考多所 985 高校计算机相关专业。学信网可查,含金量高!赶快扫码下方二维码,加辅导员咨询吧!
免责声明:以上广告系商家投放,CSDN恕不承担任何风险和责任。
热 文 推 荐
TIOBE 4 月编程语言排行榜:Python 让位,老将 C++ 夺回前三,PHP 惨遭抛弃!
00后的AI开发者进阶之道:从入门到鏖战MIT编程大赛 | 人物志
EOS现状: 72%应用涉赌被列为高危, 说好的诗和远方, 你竟沦落成了这样?
System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
你点的每个“在看”,我都认真当成了喜欢


基础篇(能解决工作中80%的问题):
进阶篇:
其它:
存储引擎
本文介绍默认存储引擎WiredTiger
WiredTiger架构
WiredTiger的写操作会先写入Cache,并持久化到WAL(Write ahead log),每60s会做一次Checkpoint,将当前的数据持久化,每,产生一个新的快照。Wiredtiger连接初始化时,首先将数据恢复至最新的快照状态,然后根据Checkpoint恢复数据,以保证存储可靠性
btree与b+tree
虽然遍历数据的查询是相对常见的,但是 MongoDB 认为查询单个数据记录远比遍历数据更加常见,由于 B 树的非叶结点也可以存储数据,所以 查询一条数据所需要的平均随机 IO 次数会比 B+ 树少,使用 B 树的 MongoDB 在类似场景中的查询速度就会比 MySQL 快。
这里并不是说 MongoDB 并不能对数据进行遍历,我们在 MongoDB 中也可以使用范围来查询一批满足对应条件的记录,只是需要的时间会比 MySQL 长一些。MySQL 认为遍历数据的查询是常见的,所以它选择 B+ 树作为底层数据结构
cache
内部缓存和文件系统缓存,默认情况下内部缓存取50%(RAM-1 GB)或256M较大者,文件系统缓存使用所有当前可用的RAM。
Wiredtiger的Cache采用Btree的方式组织,每个Btree节点为一个page,root page是btree的根节点,internal page是btree的中间索引节点,leaf page是真正存储数据的叶子节点;btree的数据以page为单位按需从磁盘加载或写入磁盘,btree的每个page以文件里的extent形式(由文件offset + size标识)存储
page
ROW_ARRAY: 每个数组单元(wt_row)存储的是这个 kv row 在存储在磁盘上的 page kv cell 行集合数据缓冲区偏移的位置和编码方式(这个位置和编码方式在 WT 上定义成一个 wt_cell 对象),通过这个信息偏移位置信息就可以访问到这一样在缓冲区中的 K/V 内容值
ROW_UPDATE_ARRAY: 一个 mvcc list 对象,mvcc_list 与 wt_row 是一一对应的,mvcc list 当中存储对 wt_row 修改的值,修改的值包括值更新和值删除,是一个无锁单向链表
写操作
- 遍历btree,找到需要更新的page
- 如果cache中没有对应的page,会从磁盘中加载page,键值对存入WT_ROW
- 如果是insert操作,更新WT_INSERT,如果是update/delete操作,更新WT_UPDATE
- 如果需要,将操作记录写入journal
我们通过一个实例来说明:
假如一个 page 存储了一个 [0,100] 的 key 范围,磁盘上原来存储的行 key=2, 10 ,20, 30 , 50, 80, 90,他们的值分别是value = 102, 110, 120, 130, 150, 180, 190。
在 page 数据从磁盘读到内存后,分别对 key=2 的 value 进行了两次修改,两次修改的值是分别 402,502。对 key = 20 ,50 的 value 做了一次修改,修改后的 value = 122, 155,后有分配 insert 了新的 key = 3,5, 41, 99,value = 203,205,241,299。
那么在内存中的 page 就是如下图组织数据的:
相邻的两 wt_row 之间可能不是连续的,他们之间可以插入新的单元,例如 row1(key = 2) 和 row2(key=10) 可以插入 3 和 5,这两个 row 之间需要有一个排序的数据结构(WT用 skiplist 数据结构)来存储插入的 K/V,就需要一个 skiplist 对象数组 page_insert_array与row array对应。这里需要说明的是 图6 当中红色框当中的 skiplist8,它是用于存储 row1(key=2) 范围之前的 insert 数据,图中如果有 key =1 的数据 insert,那么这个数据会新增到 skiplist8 当中。
那么图中row与 insert skiplist 的对应关系就是:
- row1 之前的范围对应 insert 是 skiplist8
- row1 和 row2之间对应的 insert 是 skiplist1
- row2 和 row3之间对应的 insert 是 skiplist3
- …
- row7 之后的范围对应的 insert 是 skiplist7
checkpoint
一个Checkpoit包含如下元数据:
root page地址,地址由文件offset,size及内容的checksum组成
alloc extent list地址,存储从上次checkpoint起新分配的extent列表
discard extent list地址,存储从上次checkpoint起丢弃的extent列表
available extent list地址,存储可分配的extent列表,只有最新的checkpoint包含该列表
file size 如需恢复到该checkpoint的状态,将文件truncate到file size即可
WAL(journal)
日志文件记录的是从上一个checkpoint之后的实际操作,该文件每100ms或文件大小到达100M就从缓存同步到磁盘
整体关系
存储引擎原理补充
分布式存储
架构
架构图:
写数据流程:
读数据流程:



评论记录:
回复评论: