草庐IT

【iOS面试总结】疫情隔离中,线上面试的问题集合(第一部分)

 1、内存管理部分  1.1介绍下内存管理机制  在iOS中,使用引用计数来管理OC对象的内存    一个新创建的OC对象引用计数默认是1,当引用计数减为0,OC对象就会销毁,释放其占用的内存空间,调用retain会让OC对象的引用计数+1,调用release会让OC对象的引用计数-1    内存管理的经验总结    MRC下:    当调用alloc、new、copy、mutableCopy方法返回了一个对象,在不需要这个对象时,要调用release或者autorelease来释放它        想拥有某个对象,就让它的引用计数+1;不想再拥有某个对象,就让它的引用计数-1        

详解数仓的网络调度与隔离管控能力

摘要:GaussDB目前采用的FIFO调度机制,该调度机制无法满足用户的网络隔离需求和QoS需求,同时FIFO调度可能带来比较严重的抖动。本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】GaussDB(DWS)网络调度与隔离管控能力》,作者:门前一棵葡萄树。一、常见的调度算法QoS(QualityofService)即服务质量,是一种调度控制机制,是网络设计和运维的重要技术。在带宽资源有限情况下,针对不同用户/业务采用不同的调度策略,为任务提供端到端的服务质量保证。QoS本身并不会拓展带宽,提升网络吞吐量,相反设计不合理的调度反而有可能降低整体吞吐量。QoS的一个关键点是允许不

详解数仓的网络调度与隔离管控能力

摘要:GaussDB目前采用的FIFO调度机制,该调度机制无法满足用户的网络隔离需求和QoS需求,同时FIFO调度可能带来比较严重的抖动。本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】GaussDB(DWS)网络调度与隔离管控能力》,作者:门前一棵葡萄树。一、常见的调度算法QoS(QualityofService)即服务质量,是一种调度控制机制,是网络设计和运维的重要技术。在带宽资源有限情况下,针对不同用户/业务采用不同的调度策略,为任务提供端到端的服务质量保证。QoS本身并不会拓展带宽,提升网络吞吐量,相反设计不合理的调度反而有可能降低整体吞吐量。QoS的一个关键点是允许不

事务的隔离级别详解

四种隔离级别:READ-UNCOMMITTED(读取未提交):最低的隔离级别,允许读取尚未提交的数据变更,**可能会导致脏读、幻读或不可重复读**。READ-COMMITTED(读取已提交):允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。REPEATABLE-READ(可重复读):对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。SERIALIZABLE(可串行化):最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、

事务的隔离级别详解

四种隔离级别:READ-UNCOMMITTED(读取未提交):最低的隔离级别,允许读取尚未提交的数据变更,**可能会导致脏读、幻读或不可重复读**。READ-COMMITTED(读取已提交):允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。REPEATABLE-READ(可重复读):对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。SERIALIZABLE(可串行化):最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、

[k8s]容器基础-隔离与限制

容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这不就是PaaS最理想的状态嘛。"程序"被执行起来,它就从磁盘上的二进制文件,变成了计算机内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件,以及各种设备的状态信息的一个集合。像这样一个程序运行起来后的计算机执行环境的总和,就是:进程容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”。对于Docker等大多数Linux容器来说,Cgroups技术是用来制造约束的主要手段,

[k8s]容器基础-隔离与限制

容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这不就是PaaS最理想的状态嘛。"程序"被执行起来,它就从磁盘上的二进制文件,变成了计算机内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件,以及各种设备的状态信息的一个集合。像这样一个程序运行起来后的计算机执行环境的总和,就是:进程容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”。对于Docker等大多数Linux容器来说,Cgroups技术是用来制造约束的主要手段,

【Docker】关于Docker网络隔离与通信详解

一、Docker的网络概念docker受一个github上的issue启发,引入了容器网络模型(containernetworkmodel,CNM),容器网络模型主要包含了3个概念network:网络,可以理解为一个Driver,是一个第三方网络栈,包含多种网络模式:单主机网络模式(none、host、bridge,joinedcontainer),多主机网络模式(overlay、macvlan、flannel)sandbox:沙盒,它定义了容器内的虚拟网卡、DNS和路由表,是networknamespace的一种实现,是容器的内部网络栈endpoint:端点,用于连接sandbox和netw

【Docker】关于Docker网络隔离与通信详解

一、Docker的网络概念docker受一个github上的issue启发,引入了容器网络模型(containernetworkmodel,CNM),容器网络模型主要包含了3个概念network:网络,可以理解为一个Driver,是一个第三方网络栈,包含多种网络模式:单主机网络模式(none、host、bridge,joinedcontainer),多主机网络模式(overlay、macvlan、flannel)sandbox:沙盒,它定义了容器内的虚拟网卡、DNS和路由表,是networknamespace的一种实现,是容器的内部网络栈endpoint:端点,用于连接sandbox和netw

MySQL为什么RR隔离级别添加了间隙锁还是无法解决幻读问题?

MySQL为什么RR隔离级别添加了间隙锁还是无法解决幻读问题?什么是幻读?幻读本质上也属于不可重复读的情况,T1读取某个范围的数据,T2在这个范围内插入或者删除新的数据,T1再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。我的理解我的理解是:间隙锁只能保证范围内的键不被插入,无法保证范围内的键不被删除。如果在事务执行期间另一个事务删除了该范围内的某一行数据,原事务再次查询时就会发现出现了幻读。比如索引1,3有数据,然后加了间隙锁,那么查询1-3之间的数据的时候,会查询到两条记录。并且因为间隙锁的存在,所以无法添加数据。但是索引1或者3本身所代表的数据可能会被删除,所以再次查询的