并行 parallel DOP 受 Resource Manager 限制

news2024/9/23 16:22:45

监控

Script

select s.SID, s.SERIAL#, s.username ,rpd.plan,
       s.RESOURCE_CONSUMER_GROUP,
       rpd.PARALLEL_DEGREE_LIMIT_P1 
from   v$session s, 
       DBA_RSRC_CONSUMER_GROUPS rcg,
       DBA_RSRC_PLAN_DIRECTIVES rpd ,
       V$RSRC_CONSUMER_GROUP vcg
where  s.RESOURCE_CONSUMER_GROUP is not null
   and rcg.CONSUMER_GROUP = s.RESOURCE_CONSUMER_GROUP
  -- and rcg.status = 'ACTIVE'
   and rpd.GROUP_OR_SUBPLAN = rcg.CONSUMER_GROUP
   --and rpd.status = 'ACTIVE'
   and vcg.name = s.RESOURCE_CONSUMER_GROUP;

This article shows how you can limit the degree ot parallelism.

SOLUTION

NOTE: In the images and/or the document content below, the user information and data used represents fictitious data from the Oracle sample schema(s) or Public Documentation delivered with an Oracle database product. Any similarity to actual persons, living or dead, is purely coincidental and not intended in any manner.

In a database there is only 1 resource group.

You can see it when you query V$RSRC_CONSUMER_GROUP  

SQL> select name from V$RSRC_CONSUMER_GROUP;
NAME
--------------------------------
<Group name>

We can limit the  Degree of Parallelism for this group with the command

exec dbms_resource_manager.create_plan_directive(plan=> 'LIMIT_DOP', -

      group_or_subplan =>'<Group name>' , -

     comment => 'limits the parallelism', parallel_degree_limit_p1=> 4);

The value of  parallel_degree_limit_p1 contains the maximum number of Parallelism.

The complete script is

exec dbms_resource_manager.clear_pending_area();

exec dbms_resource_manager.create_pending_area();

exec dbms_resource_manager.create_plan( plan => 'LIMIT_DOP', comment => 'Limit Degree of Parallelism');

exec dbms_resource_manager.create_plan_directive(plan=> 'LIMIT_DOP', -

     group_or_subplan =>'<Group name>' , -

     comment => 'limits the parallelism', parallel_degree_limit_p1=> 4);

exec dbms_resource_manager.validate_pending_area();

exec dbms_resource_manager.submit_pending_area();

You activate the script with 

alter system set resource_manager_plan = 'LIMIT_DOP' sid='*';

APPLIES TO:

Oracle Database Exadata Express Cloud Service - Version N/A and later
Oracle Database Cloud Service - Version N/A and later
Oracle Database - Enterprise Edition - Version 11.2.0.1.0 and later
Oracle Database Cloud Schema Service - Version N/A and later
Gen 1 Exadata Cloud at Customer (Oracle Exadata Database Cloud Machine) - Version N/A and later
Information in this document applies to any platform.

PURPOSE

The database may not have sufficient resources to run all queries at the same time at their ideal degree-of-parallelism.  When this happens, parallel queries are downgraded or waiting in the parallel statement queue depending on the configuration.

There are several methods to limit the maximum DOP. If Database Resource Manager (DBRM) is enabled, then it is the ultimate deciding factor
in determining the maximum degree of parallelism (DOP).

DETAILS

A user in a consumer group using a specific resource plan will not be able to run a statement with higher DOP than the maximum DOP specified in the resource plan.

For example, if maximum DOP of 4 is set in the resource plan, and you request a DOP of 16 via a hint, your SQL will run with a DOP of 4 at most, that is, 4 is a maximum upper limit on the degree of parallelism.

The image below shows an Enterprise Manager Database Control screenshot below restricting parallel execution to a DOP of 4 for resource plan named 'REPORTS_PLAN' for consumer group OTHER_GROUPS. The value is specified in the Max Degree of Parallelism column.

The screenshot is the manifestation of the example provided in the Oracle documentation.

Alternatively to the EM GUI, you can use SQLPlus to create a resource plan that limits the maximum degree-of-parallelism for users in a particular consumer group, as the example shows below. The dop should not exceed the value given by the maximum DOP directive.
 

-- create  MY_PLAN resource plan
-- setting maximum degree-of-parallelism for users in a consumer group other_groups
-- other_groups is a pre-defined default consumer group for all sessions that do not have an explicit initial consumer group
exec dbms_resource_manager.create_pending_area();
exec dbms_resource_manager.create_plan('MY_PLAN', 'MY_PLAN');
exec dbms_resource_manager.create_plan_directive('MY_PLAN', 'other_groups', 'other_groups',  parallel_degree_limit_p1 => 4, parallel_target_percentage => 50, parallel_queue_timeout => 14400);
exec dbms_resource_manager.submit_pending_area();
-- enable resource plan
alter system set resource_manager_plan = 'MY_PLAN';

This note is primarily written for single instance database. In case of multiple instances you may want to specify which instances the plan should be turned on:

e.g.

alter system set resource_manager_plan = 'MY_PLAN' sid='*' ;

CREATE_PLAN_DIRECTIVE procedure is to create resource plan directives. Parameter parallel_degree_limit_p1 is for setting the upper limit for DOP.

In the example above we specify values for parallel_target_percentage, parallel_queue_timeout parameters as well. The functionality associated with these parameters is available starting with Oracle Database 11g Release 2 (11.2.0.2).
For more information about these parameters see

  • Oracle Database PL/SQL Packages and Types Reference (for 11.2 click here)
  • Document 1359043.1 Configuring Parallel Statement Queuing to Manage Mixed Priority Workloads in a Data Warehouse

Starting in 18.1, there is an additional plan directive of PQ_TIMEOUT_ACTION (values RUN or CANCEL), which is the action to take when PARALLEL_QUEUE_TIMEOUT has been reached.  The default is CANCEL.  See Oracle® Database PL/SQL Packages and Types Reference/DBMS_RESOURCE_MANAGER/Table 134-10 CREATE_PLAN_DIRECTIVE Procedure Parameters for a list of all plan directives.

In case you want to clean up the above, do the following:

alter system set resource_manager_plan = '';
exec dbms_resource_manager.create_pending_area();
exec dbms_resource_manager.delete_plan('MY_PLAN');
exec dbms_resource_manager.submit_pending_area();

Note

  • The max DOP limit is honored regardless of the value of parallel_degree_policy.
  • The DOP is for slave set, so for an SQL that uses the producer/consumer model with 2 slave sets, there could be 4 (dop) x 2 (slave sets) = 8 parallel slave processes.
  • In case the Max Number of Active Sessions is specified to be other than UNLIMITED e.g. 8, then this means its possible for the "OTHER_USERS" to have a maximum resource consumption of 8 (sessions) x 4 (DOP) x 2 (slave sets) = 64 parallel server processes.
     
  • The value of the Max DOP directive of the resource plan that is active on the parsing instance is the final cap on the DOP.
  • px_trace file shows if/when the Resource Manager limited the DOP:
    e.g.
    2012-11-20 21:18:24.208113*:PX_Messaging:kxfp.c@17785:kxfpclinfo():     inst(load:user:pct:fact:servtarget:queued:started:granted:active:active(free)): aff
    2012-11-20 21:18:24.208113*:PX_Messaging:kxfp.c@17791:kxfpclinfo():     1   (5   :0   :100:40  :32    :0     :0      :0      :0     :0     )
            load adapt num servers requested to = 6 (from kxfpAdaptDOP())
            Ressource Manager reduced num server to maxdop = 4

The following use case demonstrates that the query with 1 slave group having 1 slave set is requested dop=8 by statement level parallel hint.
The query runs with DOP 8 having 8 parallel slaves.
Then DOP is limited by resource plan to 4 and resource manager caps the DOP to 4.
 

SH@dw23> conn sh
Connected.
SH@dw23> select /*+ PARALLEL(8) monitor*/ count(*) from sales;
    783327

SH@dw23> SET LONG 1000000
SH@dw23> SET LONGCHUNKSIZE 1000000
SH@dw23> SET LINESIZE 1000
SH@dw23> SET PAGESIZE 0
SH@dw23> SELECT DBMS_SQLTUNE.report_sql_monitor(session_id=>userenv('SID'), type => 'TEXT',report_level=>'ALL') AS report FROM dual;
SQL Monitoring Report

SQL Text
------------------------------
select /*+ PARALLEL(8) monitor*/ count(*) from sales

Global Information
------------------------------
 Status              :  DONE (ALL ROWS)
 Instance ID         :  1
 Session             :  SH (392:1421)
 SQL ID              :  0md7m3v2sh21s
 SQL Execution ID    :  16777216
 Execution Started   :  10/24/2013 14:46:05
 First Refresh Time  :  10/24/2013 14:46:05
 Last Refresh Time   :  10/24/2013 14:46:05
 Duration            :  .013903s
 Module/Action       :  SQL*Plus/-
 Service             :  dw23.uk.oracle.com
 Program             :  sqlplus.exe
 Fetch Calls         :  1

Global Stats
===========================================================================
| Elapsed |   Cpu   |    IO    |  Other   | Fetch | Buffer | Read | Read  |
| Time(s) | Time(s) | Waits(s) | Waits(s) | Calls |  Gets  | Reqs | Bytes |
===========================================================================
|    0.05 |    0.02 |     0.00 |     0.02 |     1 |   1514 |  102 |  11MB |
===========================================================================

Parallel Execution Details (DOP=8 , Servers Allocated=8)
====================================================================================================================
|      Name      | Type  | Server# | Elapsed |   Cpu   |    IO    |  Other   | Buffer | Read | Read  | Wait Events |
|                |       |         | Time(s) | Time(s) | Waits(s) | Waits(s) |  Gets  | Reqs | Bytes | (sample #)  |
====================================================================================================================
| PX Coordinator | QC    |         |    0.01 |    0.01 |          |     0.01 |     58 |      |     . |             |
| p000           | Set 1 |       1 |    0.00 |         |     0.00 |     0.00 |    200 |   13 |   1MB |             |
| p001           | Set 1 |       2 |    0.01 |    0.01 |     0.00 |          |    194 |   13 |   1MB |             |
| p002           | Set 1 |       3 |    0.00 |    0.00 |     0.00 |          |    179 |   13 |   1MB |             |
| p003           | Set 1 |       4 |    0.00 |         |     0.00 |     0.00 |    173 |   12 |   1MB |             |
| p004           | Set 1 |       5 |    0.00 |         |     0.00 |     0.00 |    186 |   13 |   1MB |             |
| p005           | Set 1 |       6 |    0.00 |         |     0.00 |     0.00 |    161 |   12 |   1MB |             |
| p006           | Set 1 |       7 |    0.00 |         |     0.00 |     0.00 |    189 |   13 |   1MB |             |
| p007           | Set 1 |       8 |    0.00 |         |     0.00 |     0.00 |    174 |   13 |   1MB |             |
====================================================================================================================

SQL Plan Monitoring Details (Plan Hash Value=1763145153)
=================================================================================================================================================
| Id |        Operation         |   Name   |  Rows   | Cost |   Time    | Start  | Execs |   Rows   | Read | Read  | Activity | Activity Detail |
|    |                          |          | (Estim) |      | Active(s) | Active |       | (Actual) | Reqs | Bytes |   (%)    |   (# samples)   |
=================================================================================================================================================
|  0 | SELECT STATEMENT         |          |         |      |         1 |     +0 |     1 |        1 |      |       |          |                 |
|  1 |   SORT AGGREGATE         |          |       1 |      |         1 |     +0 |     1 |        1 |      |       |          |                 |
|  2 |    PX COORDINATOR        |          |         |      |         1 |     +0 |     9 |        8 |      |       |          |                 |
|  3 |     PX SEND QC (RANDOM)  | :TQ10000 |       1 |      |         1 |     +0 |     8 |        8 |      |       |          |                 |
|  4 |      SORT AGGREGATE      |          |       1 |      |         1 |     +0 |     8 |        8 |      |       |          |                 |
|  5 |       PX BLOCK ITERATOR  |          |    783K |   68 |         1 |     +0 |     8 |     783K |      |       |          |                 |
|  6 |        TABLE ACCESS FULL | SALES    |    783K |   68 |         1 |     +0 |   102 |     783K |  102 |  11MB |          |                 |
=================================================================================================================================================


SH@dw23> conn sys as sysdba
Connected.
SYS@dw23> -- create  MY_PLAN resource plan
SYS@dw23> -- setting maximum degree-of-parallelism for users in a consumer group other_groups
SYS@dw23> -- other_groups is a pre-defined default consumer group for all sessions that do not have an explicit initial consumer group
SYS@dw23> exec dbms_resource_manager.create_pending_area();

PL/SQL procedure successfully completed.

SYS@dw23> exec dbms_resource_manager.create_plan('MY_PLAN', 'MY_PLAN');

PL/SQL procedure successfully completed.

SYS@dw23> exec dbms_resource_manager.create_plan_directive('MY_PLAN', 'other_groups', 'other_groups',  parallel_degree_limit_p1 => 4);

PL/SQL procedure successfully completed.

SYS@dw23> exec dbms_resource_manager.submit_pending_area();

PL/SQL procedure successfully completed.

SYS@dw23> -- enable resource plan
SYS@dw23> alter system set resource_manager_plan = 'MY_PLAN' sid='*' ;

System altered.

SYS@dw23> conn sh
Connected.
SH@dw23> alter session set "_px_trace"="high","compilation","high","execution","messaging","time";

Session altered.

SH@dw23> ALTER SESSION SET EVENTS '10053 trace name context forever, level 10';

Session altered.

SH@dw23> select /*+ PARALLEL(8) monitor*/ count(*) from sales;
    783327

SH@dw23> SET LONG 1000000
SH@dw23> SET LONGCHUNKSIZE 1000000
SH@dw23> SET LINESIZE 1000
SH@dw23> SET PAGESIZE 0
SH@dw23> SELECT DBMS_SQLTUNE.report_sql_monitor(session_id=>userenv('SID'), type => 'TEXT',report_level=>'ALL') AS report FROM dual;
SQL Monitoring Report

SQL Text
------------------------------
select /*+ PARALLEL(8) monitor*/ count(*) from sales

Global Information
------------------------------
 Status              :  DONE (ALL ROWS)
 Instance ID         :  1
 Session             :  SH (392:1425)
 SQL ID              :  0md7m3v2sh21s
 SQL Execution ID    :  16777217
 Execution Started   :  10/24/2013 14:46:49
 First Refresh Time  :  10/24/2013 14:46:49
 Last Refresh Time   :  10/24/2013 14:46:49
 Duration            :  .145228s
 Module/Action       :  SQL*Plus/-
 Service             :  dw23.uk.oracle.com
 Program             :  sqlplus.exe
 DOP Downgrade       :  50%
 Fetch Calls         :  1

Global Stats
===========================================================================
| Elapsed |   Cpu   |    IO    |  Other   | Fetch | Buffer | Read | Read  |
| Time(s) | Time(s) | Waits(s) | Waits(s) | Calls |  Gets  | Reqs | Bytes |
===========================================================================
|    0.33 |    0.23 |     0.01 |     0.09 |     1 |   1478 |   63 |  11MB |
===========================================================================

Parallel Execution Details (DOP=4 , Servers Requested=8 , Servers Allocated=4)
====================================================================================================================
|      Name      | Type  | Server# | Elapsed |   Cpu   |    IO    |  Other   | Buffer | Read | Read  | Wait Events |
|                |       |         | Time(s) | Time(s) | Waits(s) | Waits(s) |  Gets  | Reqs | Bytes | (sample #)  |
====================================================================================================================
| PX Coordinator | QC    |         |    0.15 |    0.09 |          |     0.05 |     58 |      |     . |             |
| p000           | Set 1 |       1 |    0.04 |    0.02 |     0.00 |     0.02 |    361 |   17 |   3MB |             |
| p001           | Set 1 |       2 |    0.05 |    0.04 |     0.00 |     0.01 |    377 |   15 |   3MB |             |
| p002           | Set 1 |       3 |    0.05 |    0.05 |     0.00 |     0.00 |    383 |   17 |   3MB |             |
| p003           | Set 1 |       4 |    0.04 |    0.03 |     0.00 |     0.01 |    299 |   14 |   2MB |             |
====================================================================================================================

SQL Plan Monitoring Details (Plan Hash Value=1763145153)
=================================================================================================================================================
| Id |        Operation         |   Name   |  Rows   | Cost |   Time    | Start  | Execs |   Rows   | Read | Read  | Activity | Activity Detail |
|    |                          |          | (Estim) |      | Active(s) | Active |       | (Actual) | Reqs | Bytes |   (%)    |   (# samples)   |
=================================================================================================================================================
|  0 | SELECT STATEMENT         |          |         |      |         1 |     +0 |     1 |        1 |      |       |          |                 |
|  1 |   SORT AGGREGATE         |          |       1 |      |         1 |     +0 |     1 |        1 |      |       |          |                 |
|  2 |    PX COORDINATOR        |          |         |      |         1 |     +0 |     5 |        4 |      |       |          |                 |
|  3 |     PX SEND QC (RANDOM)  | :TQ10000 |       1 |      |         1 |     +0 |     4 |        4 |      |       |          |                 |
|  4 |      SORT AGGREGATE      |          |       1 |      |         1 |     +0 |     4 |        4 |      |       |          |                 |
|  5 |       PX BLOCK ITERATOR  |          |    783K |   68 |         1 |     +0 |     4 |     783K |      |       |          |                 |
|  6 |        TABLE ACCESS FULL | SALES    |    783K |   68 |         1 |     +0 |    48 |     783K |   63 |  11MB |          |                 |
=================================================================================================================================================

PX_TRACE shows that resouce manager reduced dop to 4:

kxfrAllocSlaves                                                [      80/     0]
        DOP trace -- call kxfpgsg to get 8 slaves
2013-10-24 14:46:49.903900 :PX_Messaging:kxfp.c@9813:kxfpgsg(begin): 
    reqthreads=8 height=0 lsize=0 alloc_flg=0x234
2013-10-24 14:46:49.904013 :PX_Messaging:kxfp.c@9886:kxfpgsg(): 
    reqthreads=8 KXFPTHIS/KXFPLDBL/KXFPADPT/ load balancing=on adaptive=on
2013-10-24 14:46:49.904055 :PX_Messaging:kxfp.c@18418:kxfpiinfo(): 
    inst [cpus:mxslv:#pg]
    1    [4   :80   :1  ]
    (default: 0) inst target is 40
    number of active slaves on the instance: 0,
    number of active slaves but available to use: 0
2013-10-24 14:46:49.905752 :PX_Messaging:kxfp.c@18742:kxfpclinfo(): 
    inst(load   :user:pct:fact:servtarget:queued:started:granted:active:active(free)): aff
    1   (0.00:0   :100:400 :40    :0     :0      :0      :0     :0     ) 
    defDOP=8, tpc=2
2013-10-24 14:46:49.905849 :PX_Messaging:kxfp.c@17831:kxfpLoadAdDOP():  
     granted dop: 8
    load adapt num servers requested to = 8 (from kxfpAdaptDOP())
    Ressource Manager reduced num server to maxdop = 4
2013-10-24 14:46:49.905922 :PX_Messaging:kxfp.c@2149:kxfpqialo(): 
    Allocate new q for dp=(nil) 
    new q=0x951a5628 dp=(nil) pnum=65535 numa#=0 qser=0 done.
2013-10-24 14:46:49.906030 :PX_Messaging:kxfp.c@10255:kxfpgsg(): 
    getting 1 sets of 4 threads, client parallel query execution flg=0x234
    threads reduced from 8 to 4
    Height=4, Affinity List Size=0, inst_total=1, coord=1
    Insts:      1
    Threads:    4
    getting 4 slaves (8 required) for q=0x951a5628 qser=5633 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

甲方(北汽)渗透测试面试经验分享

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 所在城市&…

IDEA 2024.2.0.2 使用 Jrebel and XRebel 热部署

安装 激活 工具网站中url和邮箱复制进去 设置 允许项目自动构建 允许开发过程中自动部署

苍穹外卖项目DAY10

苍穹外卖项目DAY10 1、Spring Task 1.1、介绍 Spring Task是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑 定位&#xff1a;定时任务框架 作用&#xff1a;定时自动执行某段Java代码 只要是需要定时处理的场景都可以使用Spring Task…

大数据技术之Flume 拓扑结构(4)

目录 Flume 拓扑结构 简单串联 (Simple Serial) 复制和多路复用 (Replication and Multiplexing) 负载均衡和故障转移 (Load Balancing and Failover) 聚合 (Aggregation) 示例配置 Flume 拓扑结构 Flume 支持多种拓扑结构来满足不同的数据收集和传输需求。以下是 Flume 中常…

复现ssrf漏洞

目录 一、pikachu靶场 1、靶场环境&#xff1a; 使用docker拉取&#xff1a; docker run -d -p 8765:80 8023/pikachu-expect:latest 2、使用dict 3、使用file读取文件 二、redis未授权访问 1、源码 2、使用bp探测端口 3、继续使用bp探测172.18.0.2的端口 4、使用go…

鸿蒙(API 12 Beta3版)【使用AVPlayer开发音频播放功能(C/C++)】音视播放与录制

使用AVPlayer可以实现端到端播放原始媒体资源&#xff0c;本开发指导将以完整地播放一首音乐作为示例&#xff0c;向开发者讲解AVPlayer音频播放相关功能。 播放的全流程包含&#xff1a;创建AVPlayer&#xff0c;设置播放资源&#xff0c;设置播放参数&#xff08;音量/倍速/…

运用Archimate为 智慧文旅搭建 数字化架构体系【系统架构】

ArchiMate是一种用于企业架构建模的开放、独立且详细的语言&#xff0c;它提供了一套丰富的概念和关系来描述、分析和可视化企业架构的不同领域。以下是ArchiMate建模的一些关键功能&#xff1a; 多视图建模&#xff1a;ArchiMate定义了23个示例视图&#xff0c;分为四类&#…

python模块04-requests

1 requests模块发送请求 Requests是一个Python HTTP庫 相关参考资料&#xff1a; 文档&#xff1a;Requests: 让 HTTP 服务人类 — Requests 2.18.1 文档 requests PyPI&#xff1a;requests PyPI requests源码&#xff1a;GitH0ub - psf/requests: A simple, yet elegant, …

封装车牌号码输入组件

<!-- Title: 国内车辆号牌号码输入组件Description: 国内车辆号牌号码输入组件&#xff0c;具体使用方法如下&#xff1a;<its-hphmInput v-model"form.hphm" :glbm"京A" :parentmessage.sync"hphm" onChange"provinceAbbreviationC…

基于R语言进行AMMI分析3

参考资料&#xff1a;https://cran.r-project.org/web/packages/agricolae/agricolae.pdf 1、plot()函数 本次介绍的是Agricolae包中的plot.AMMI()函数。此函数可以绘制AMMI双标图&#xff0c;也可以绘制三标图&#xff08;三个坐标轴&#xff0c;IPCA1&#xff0c;IPCA2&…

「C++系列」类/对象

文章目录 一、类1. 基本类的定义2. 类的访问控制3. 类的实例化4. 构造函数和析构函数5. 继承6. 类的使用 二、对象1. 创建对象2. 对象的生命周期3. 对象的内存4. 对象的操作5. 对象的复制6. 总结 三、应用案例1. 定义BankAccount类2. 分析 四、相关链接 一、类 C 类&#xff0…

【初阶数据结构】顺序表和链表算法题(下)

链表 2.链表2.4合并两个有序链表2.5链表分割2.6链表的回⽂结构2.7相交链表2.8环形链表I2.9 环形链表II2.10随机链表的复制 2.链表 2.4合并两个有序链表 思路 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ …

一键转换语言,探索四大在线翻译工具的魅力!

各种翻译工具不仅为个人用户提供了极大的便利&#xff0c;也为跨国企业、学术研究和文化交流提供了强有力的支持&#xff0c;接下来为大家推荐几款好用的翻译在线工具&#xff01; 福昕在线翻译 直达链接&#xff1a; https://fanyi.pdf365.cn/ 福昕在线翻译是一款功能强大…

分布式锁 redis与zookeeper

redis实现分布式锁 原理 基于redis命令setnx key value来实现分布式锁的功能&#xff0c;只有当key不存在时&#xff0c;setnx才可以设置成功并返回1&#xff0c;否则设置失败返回0。 方案1&#xff1a; 方案1存在的问题 假如在加锁成功&#xff0c;释放锁之前&#xff0c;…

面向对象08:什么是多态

本节内容视频链接&#xff1a;面向对象12&#xff1a;什么是多态_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p71&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Java中的多态是面向对象编程的一个重要概念&#xff0c;‌它允许不同类型的对象对…

jenkins安装及介绍

Cl:持续集成 CD:持续部署 插件:丰富的插件&#xff0c;可以满足99%的需求&#xff0c;还可以二次开发插件来满足需求 Jenkins能干嘛 1.集成第三方工具的使用&#xff0c;jenkins是一个集大成者&#xff0c;它集成了1000多个插件&#xff0c;几乎把所有知名的工具都集成到ienkin…

职场达人必备:2024年PDF转PPT工具精选指南

PDF文件有卓越的兼容性和安全性&#xff0c;&#xff1b;而PPT则以其强大的演示能力。然而&#xff0c;在日常的工作与学习场景中&#xff0c;我们时常面临将PDF内容转化为PPT格式的需求&#xff0c;以便更好地进行展示与编辑。那么&#xff0c;究竟该如何高效地将PDF转换成PPT…

多维系统下单点登录之整理解决方案

从淘宝天猫的单点登录说起 1.1 SSO单点登录 概述 随着互联网大数据不断发展&#xff0c;应用服务的不断增多&#xff0c;单点登录越来越能够凸显其作用。单点 登录SSO(Single Sign On)&#xff0c;顾名思义就是单个节点登录&#xff0c;全局使用。是目前最为流行的统一登录 解…

36 使用LDT(2)

首先是 定义 两个任务的LDT表 这是再GDT表中的选择子 首先是宏定义&#xff1a;这里的 0x4 , 3 先不用管 这里 一个task 一个LDT表 然后是在GDT表中 增加关于LDT的描述。 这里需要加上一个图。 还是这个图 然后是在 TSS表中&#xff0c;设置LDT的表的地址。 然后是更改 TSS表中…

AI的未来已来:GPT-4商业应用带来的无限可能

随着人工智能技术的快速发展&#xff0c;OpenAI于2023年3月15日发布了多模态预训练大模型GPT-4&#xff0c;这一里程碑式的进步不仅提升了AI的语言处理能力&#xff0c;还拓展了其应用范围。本文将深入探讨GPT-4的技术进步、商业化进程、用户体验改善、伦理和社会影响&#xff…