CN117077447A - 多席位协同想定编辑方法及装置 - Google Patents
多席位协同想定编辑方法及装置 Download PDFInfo
- Publication number
- CN117077447A CN117077447A CN202311336614.2A CN202311336614A CN117077447A CN 117077447 A CN117077447 A CN 117077447A CN 202311336614 A CN202311336614 A CN 202311336614A CN 117077447 A CN117077447 A CN 117077447A
- Authority
- CN
- China
- Prior art keywords
- data
- data item
- current
- lock
- acquisition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 8
- 238000004088 simulation Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种多席位协同想定编辑方法及装置,该方法包括:创建用于存储数据项的信息库,并为数据项分配版本号与数据锁;若当前时刻需调用当前数据项,则执行获取步骤;若获取结果为获取失败,则迭代执行第一步骤直至获得当前数据项对应的数据锁;若获取结果为获取成功,进入数据锁的观察期,并检查数据锁在观察期内是否被获取;若被获取,则释放数据锁,并重新执行获取步骤直至加锁成功;若未被获取,则加锁成功,获得当前数据项的编辑权限。解决了现有多席位协同想定编辑过程中,多个用户同时访问数据库或进行操作时会出现数据冲突或系统卡顿等问题,进而实现了防止数据丢失或损坏,避免出现数据冲突或系统卡顿,能够提高系统的可用性。
Description
技术领域
本申请涉及仿真技术领域,尤其涉及一种多席位协同想定编辑方法及装置。
背景技术
想定可以分为军事想定和仿真想定。军事想定由军事人员使用,为作战、军事演习或军事训练而拟制。仿真想定则是根据具体任务需求,为各仿真成员提供能够驱动仿真运行的初始化数据,通常以格式化的脚本形式提供,仿真想定的使用者主要是仿真开发技术人员。
在现有技术中,仿真想定主要基于分布式系统。分布式系统由多个相互协作的机器或者组件共同构建成一个逻辑整体。与单一机器相比,分布式系统具有更高的可扩展性和更高的性能,可以更好地处理复杂的任务。
但在分布式多席位协同想定编辑过程中,若多个用户同时访问数据库或进行操作时,会面临以下问题。首先,在浏览器资源有限的情况下,当多个用户同时访问数据库时,会出现资源不够而导致系统中的某些用户无法及时获取到所需要的数据。其次,由于多个用户同时访问数据库,系统处理多个用户的请求时会出现数据冲突。最后,由于多个用户同时访问数据库或进行操作,系统需要在短时间内处理大量的数据请求或操作,会导致系统卡顿。
发明内容
本申请实施例通过提供一种多席位协同想定编辑方法,解决了现有分布式多席位协同想定编辑过程中,多个用户同时访问数据库或进行操作时会出现资源不够用、数据冲突或系统卡顿等问题,实现了一种多席位协同想定编辑方法能够解决上述问题。
第一方面,本申请实施例提供了一种多席位协同想定编辑方法,包括:创建用于存储数据项的信息库,并为所述数据项分配版本号与数据锁;若当前时刻需调用当前数据项,则执行获取步骤;所述获取步骤,包括:在所述当前时刻尝试获取所述当前数据项对应的所述数据锁,得到获取结果;若所述获取结果为获取失败,则迭代执行第一步骤直至获得所述当前数据项对应的所述数据锁;所述第一步骤,包括:将所述当前时刻的下一时刻作为所述当前时刻,并在所述当前时刻尝试获取所述当前数据项对应的所述数据锁;若所述获取结果为获取成功,则进入所述数据锁的观察期,并检查所述数据锁在所述观察期内是否被其他用户获取;若所述数据锁在所述观察期内被获取,则释放所述数据锁,并重新执行所述获取步骤直至加锁成功;若所述数据锁在所述观察期内未被获取,则加锁成功,获得所述当前数据项的编辑权限。
结合第一方面,在第一种可能的实现方式中,所述创建用于存储数据项的信息库前,还包括:创建用户标识符,并确定所述信息库中所述数据项的存储形式;其中,所述存储形式包括将所述数据项与所述用户标识符对应存储。
结合第一方面,在第二种可能的实现方式中,所述版本号包括所述数据项的操作时间戳与序列号。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述为所述数据项分配版本号,包括:为所述数据项分配序列号,且所述数据项与所述数据项在同一系统中互为唯一;记录所述数据项被操作的操作时间戳;拼合所述数据项对应的所述序列号与所述操作时间戳构成对应所述版本号。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述获得所述当前数据项的编辑权限后,还包括:当所述当前数据项被编辑后,更新所述信息库并判断所述信息库能否更新成功;若所述信息库能更新成功,则用新版本号覆盖所述数据项当前的所述版本号;若所述信息库未更新成功,则保留所述数据项当前的所述版本号。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述用新版本号覆盖所述数据项当前的所述版本号前,还包括:获取所述当前数据项被编辑的当前操作时间戳;将所述序列号增一后与所述当前操作时间戳构成所述新版本号。
结合第一方面第一种可能的实现方式,在第六种可能的实现方式中,所述数据锁设置有过期时间。
第二方面,本申请实施例提供了一种多席位协同想定编辑装置,包括:创建模块,用于创建用于存储数据项的信息库,并为所述数据项分配版本号与数据锁;获取模块,用于若当前时刻需调用当前数据项,则执行获取步骤;所述获取步骤,包括:在所述当前时刻尝试获取所述当前数据项对应的所述数据锁,得到获取结果;第一步骤模块,用于若所述获取结果为获取失败,则迭代执行第一步骤直至获得所述当前数据项对应的所述数据锁;所述第一步骤,包括:将所述当前时刻的下一时刻作为所述当前时刻,并在所述当前时刻尝试获取所述当前数据项对应的所述数据锁;加锁模块,用于若所述获取结果为获取成功,则进入所述数据锁的观察期,并检查所述数据锁在所述观察期内是否被其他用户获取;若所述数据锁在所述观察期内被获取,则释放所述数据锁,并重新执行所述获取步骤直至加锁成功;若所述数据锁在所述观察期内未被获取,则加锁成功,获得所述当前数据项的编辑权限。
结合第二方面,在第一种可能的实现方式中,所述创建用于存储数据项的信息库前,还包括:创建用户标识符,并确定所述信息库中所述数据项的存储形式;其中,所述存储形式包括将所述数据项与所述用户标识符对应存储。
结合第二方面,在第二种可能的实现方式中,所述版本号包括所述数据项的操作时间戳与序列号。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述为所述数据项分配版本号,包括:为所述数据项分配序列号,且所述数据项与所述数据项在同一系统中互为唯一;记录所述数据项被操作的操作时间戳;拼合所述数据项对应的所述序列号与所述操作时间戳构成对应所述版本号。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述获得所述当前数据项的编辑权限后,还包括:当所述当前数据项被编辑后,更新所述信息库并判断所述信息库能否更新成功;若所述信息库能更新成功,则用新版本号覆盖所述数据项当前的所述版本号;若所述信息库未更新成功,则保留所述数据项当前的所述版本号。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述用新版本号覆盖所述数据项当前的所述版本号前,还包括:获取所述当前数据项被编辑的当前操作时间戳;将所述序列号增一后与所述当前操作时间戳构成所述新版本号。
结合第二方面第一种可能的实现方式,在第六种可能的实现方式中,所述数据锁设置有过期时间。
第三方面,本申请实施例提供了一种设备,所述设备包括:处理器;用于存储处理器可执行指令的存储器;所述处理器执行所述可执行指令时,实现如第一方面或第一方面任一种可能实现的方式所述的方法。
第四方面,本申请实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质包括用于存储计算机程序或指令,当该计算机程序或指令被执行时,使如第一方面或第一方面任一种可能实现的方式所述的方法被实现。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例通过为数据项分配版本号,能够通过检查版本号判断数据是否被更新;通过为数据项分配数据锁与为数据项加锁,能够避免数据重复使用与数据冲突的问题。有效解决了现有分布式多席位协同想定编辑过程中,多个用户同时访问数据库或进行操作时会出现资源不够用、数据冲突或系统卡顿问题,进而实现了一种多席位协同想定编辑方法,能够解决系统资源不够用,防止数据丢失或损坏,避免出现数据冲突或系统卡顿,能够提高系统的可用性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的多席位协同想定编辑方法的流程图;
图2为本申请实施例提供的多席位协同想定编辑装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下对本申请实施例涉及的部分技术做出说明,以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了部分对公知功能和结构的描述。
图1是本申请实施例提供的多席位协同想定编辑方法的流程图,包括步骤101至步骤109。其中,图1仅为本申请实施例示出的一种执行顺序,并不代表多席位协同想定编辑方法的唯一执行顺序,在可实现最终结果的情况下,图1所示出的步骤可以被并列或颠倒执行。
步骤101:创建用于存储数据项的信息库,并为数据项分配版本号与数据锁。具体地,在多席位协同想定编辑的系统中,需要经常跟踪和管理不同用户的数据。故在服务器中创建一个信息库,用于存储系统中不同用户产生的数据项。
在本申请实施例中,创建信息库前,还可以创建用户标识符,并确定信息库中数据项的存储形式。其中,存储形式包括将数据项与用户标识符对应存储。
示例性地,用户标识符可以是用户名、用户邮件地址、用户ID等。在本申请实施例中,采用用户ID作为用户标识符,能够确保每个用户都有一个唯一的标识符,便于识别与追踪用户。如果用户修改登录密码或用户名,这意味着即使用户的登录凭据发生了变化,系统仍然需要准确地识别对应用户,确保用户在发生安全问题时能够得到及时的关注和支持非常重要。其中,用户ID是根据用户注册时提供的信息,系统采用哈希函数会生成一个唯一的用户ID。在本申请的一种实施例中,可以使用哈希函数将用户注册时提供的信息(如姓名、邮箱地址等)转换为一个固定长度的字符串,从而生成一个唯一的用户ID。
在本申请实施例中,信息库采用键值对的形式进行存储,将数据项的版本号作为键,将数据项本身作为值,以此形成关于数据项的键值对。在对数据项进行查询、删除或更新操作时,可以通过比较版本号来判断该数据项是否发生了变化,或者确定数据的最新状态。有对应权限的用户可以将键作为索引,访问、修改或删除信息库中的数据项。
此外,将键值对与产生数据项的用户标识符进行关联。在本申请实施例中,采用数字签名的方式将键值对与用户标识符进行关联,并将数字签名与键值对一起存储,能够保证数据项的来源可靠,防止数据项被篡改或伪造。
数据项的版本号包括数据项的操作时间戳与序列号。在本申请实施例中,为数据项分配序列号,且数据项与数据项在同一系统中互为唯一。示例性地,为每个数据项分配一个唯一的序列号。序列号可以默认从1开始,每次插入新的数据项时,序列号自动增1。这样,即使数据项被删除或者更新,其序列号仍然保持唯一。需要注意的是,上述序列号的形式与增加方式仅为本申请的一个实施例,不作为对本申请保护范围的限制,本领域技术人员可根据实际情况,采用其他字符形式与增加形式,只要能实现序列号与对应数据项互为唯一即可。
记录数据项被操作的操作时间戳。具体地,当数据被插入或更新时,记录当前的操作时间戳。需要注意的是,此处的操作时间戳可以是相应操作的发起时间,或者是相应操作的结束时间,或者是相应操作的发起时间到结束时间。
拼合数据项对应的序列号与操作时间戳构成对应版本号。在本申请实施例中,将操作时间戳和序列号拼接起来,形成一个整数类型的版本号。例如,将操作时间戳和序列号拼接成一个长字符串,如"20220101000000_1"去,其表示2022年1月1日0点0分0秒插入的数据项,其序列号为1。
步骤102:若当前时刻需调用当前数据项。具体地,如果有用户想要调用当前数据项,需要先获得当前数据项对应的数据锁才能得到编辑权限。拥有编辑权限的用户可以编辑当前数据项并能够更新成功,没有编辑权限的用户即使编辑了当前数据项也无法更新成功。
步骤103:在当前时刻尝试获取当前数据项对应的数据锁,得到获取结果。具体地,在分布式系统中,采用加锁机制实现对共享资源的互斥访问。加锁机制可以确保在同一时刻,只有一个用户能够真正访问共享资源,避免了资源的重复使用和数据不一致的问题。
并且,数据锁设置有过期时间。在本申请实施例中,给数据锁设置一个较短的过期时间,防止在加锁期间发生故障或出现死锁。示例性地,将数据锁的过期时间设置为10毫秒。如果出现宕机或者网络中断,对应用户可以在短时间内释放数据锁,避免长时间等待导致死锁。用户在当前时刻的时间片内尝试获取当前数据项的数据锁,得到获取结果。通常情况下,如果对应数据项的数据锁被其他用户持有,则会获取失败,如果该数据项的数据锁没有被其他用户持有,则可以获取成功。
步骤104:判断获取结果是否为获取成功。具体地,若获取结果为获取失败,则迭代执行步骤105、步骤103与步骤104直至获取成功。
步骤105:将当前时刻的下一时刻作为当前时刻,并在当前时刻尝试获取当前数据项对应的数据锁。具体地,若用户没有在当前时刻获取到当前数据项的数据锁,将当前时刻的下一时刻作为当前时刻,继续执行步骤103即获取当前数据项的数据锁,并通过步骤104再次判断,直至获取结果为获取成功。
若获取结果为获取成功,则执行步骤106至步骤109,具体如下。
步骤106:进入数据锁的观察期。具体地,获取当前数据项的数据锁后并不能立刻拥有当前数据项的编辑权限,需要先进入观察期。示例性地,将观察期设置为10微秒。通过观察期,系统可以识别真正需要访问当前数据项的用户,从而避免不必要的等待和冲突。
步骤107:检查数据锁在观察期内是否被其他用户获取。具体地,观察其他用户是否也需要调用当前数据项。如果在一个观察期内,有用户尝试获取当前数据项的数据锁,则执行步骤108与步骤103至步骤107,直至在一个观察期内没有其他用户尝试获取当前数据项的数据锁。
步骤108:释放数据锁。具体地,在观察期内有用户尝试获取当前数据项的数据锁,说明有其他用户需要调用当前数据项,则释放数据锁,让真正需要调用当前数据项的用户获取该数据锁。在该用户释放已获得的数据锁后,仍然可以继续尝试获取该数据锁。
步骤109:则加锁成功,获得当前数据项的编辑权限。具体地,如果在观察期没有其他用户尝试获取当前数据项的数据锁,观察期结束用户即可获得当前数据项的编辑权限。直到当前数据项的数据锁被释放,其他用户才能获得该数据锁。
获得当前数据项的编辑权限后,用户首先获取当前数据项当前的版本号。在当前数据项被编辑后,更新信息库并判断信息库能否更新成功。若信息库能更新成功,则用新版本号覆盖数据项当前的版本号。若信息库未更新成功,则保留数据项当前的版本号。简言之,版本号随数据项的更新而更新,只有数据项更新成功,版本号才会更新,若数据项仅仅是被编辑,最终没有更新成功,版本号并不会变化。
其中,新版本号由序列号增一后与当前操作时间戳构成。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。本实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照本实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
如图2所示,本申请实施例还提供一种多席位协同想定编辑装置200。该装置包括:创建模块201、获取模块202、第一步骤模块203与加锁模块204,具体如下。
创建模块201用于创建用于存储数据项的信息库,并为数据项分配版本号与数据锁。创建模块201具体用于,在本申请实施例中,创建信息库前,还可以创建用户标识符,并确定信息库中数据项的存储形式。其中,存储形式包括将数据项与用户标识符对应存储。
示例性地,用户标识符可以是用户名、用户邮件地址、用户ID等。在本申请实施例中,采用用户ID作为用户标识符,能够确保每个用户都有一个唯一的标识符,便于识别与追踪用户。
在本申请实施例中,信息库采用键值对的形式进行存储,将数据项的版本号作为键,将数据项本身作为值,以此形成关于数据项的键值对。在对数据项进行查询、删除或更新操作时,可以通过比较版本号来判断该数据项是否发生了变化,或者确定数据的最新状态。有对应权限的用户可以将键作为索引,访问、修改或删除信息库中的数据项。
此外,将键值对与产生数据项的用户标识符进行关联。在本申请实施例中,采用数字签名的方式将键值对与用户标识符进行关联,并将数字签名与键值对一起存储,能够保证数据项的来源可靠,防止数据项被篡改或伪造。
数据项的版本号包括数据项的操作时间戳与序列号。在本申请实施例中,为数据项分配序列号,且数据项与数据项在同一系统中互为唯一。
记录数据项被操作的操作时间戳。具体地,当数据被插入或更新时,记录当前的操作时间戳。需要注意的是,此处的操作时间戳可以是相应操作的发起时间,或者是相应操作的结束时间,或者是相应操作的发起时间到结束时间。
拼合数据项对应的序列号与操作时间戳构成对应版本号。在本申请实施例中,将操作时间戳和序列号拼接起来,形成一个整数类型的版本号。
获取模块202用于若当前时刻需调用当前数据项,则执行获取步骤。获取步骤,包括:在当前时刻尝试获取当前数据项对应的数据锁,得到获取结果。获取模块202具体用于,如果有用户想要调用当前数据项,需要先获取当前数据项对应的数据锁才能得到编辑权限。拥有编辑权限的用户可以编辑当前数据项并能够更新成功,没有编辑权限的用户即使编辑了当前数据项也无法更新成功。
在分布式系统中,采用加锁机制实现对共享资源的互斥访问。加锁机制可以确保在同一时刻,只有一个用户能够真正访问共享资源,避免了资源的重复使用和数据不一致的问题。
并且,数据锁设置有过期时间。在本申请实施例中,给数据锁设置一个较短的过期时间,防止在加锁期间发生故障或出现死锁。示例性地,将数据锁的过期时间设置为10毫秒。如果出现宕机或者网络中断,对应用户可以在短时间内释放数据锁,避免长时间等待导致死锁。用户在当前时刻的时间片内尝试获取当前数据项的数据锁,得到获取结果。判断获取结果是否为获取成功,若获取结果为获取失败转至第一步骤模块203,若获取结果为获取成功转至第加锁模块204。
第一步骤模块203用于若获取结果为获取失败,则迭代执行第一步骤直至获得当前数据项对应的数据锁。第一步骤,包括:将当前时刻的下一时刻作为当前时刻,并在当前时刻尝试获取当前数据项对应的数据锁。第一步骤模块203具体用于,若用户没有在当前时刻获取到当前数据项的数据锁,将当前时刻的下一时刻作为当前时刻,继续获取当前数据项的数据锁。
加锁模块204用于若获取结果为获取成功,则进入数据锁的观察期,并检查数据锁在观察期内是否被其他用户获取。若数据锁在观察期内被获取,则释放数据锁,并重新执行获取步骤直至加锁成功。若数据锁在观察期内未被获取,则加锁成功,获得当前数据项的编辑权限。加锁模块204具体用于,进入数据锁的观察期。获取当前数据项的数据锁后并不能立刻拥有当前数据项的编辑权限,需要先进入观察期。示例性地,将观察期设置为10微秒。通过观察期,系统可以识别真正需要访问当前数据项的用户,从而避免不必要的等待和冲突。
观察其他用户是否也需要调用当前数据项。如果在一个观察期内,有用户尝试获取当前数据项的数据锁,则释放数据锁。直至在一个观察期内没有其他用户尝试获取当前数据项的数据锁,观察期结束用户即可获得当前数据项的编辑权限。
获得当前数据项的编辑权限后,用户首先获取当前数据项当前的版本号。在当前数据项被编辑后,更新信息库并判断信息库能否更新成功。若信息库能更新成功,则用新版本号覆盖数据项当前的版本号。若信息库未更新成功,则保留数据项当前的版本号。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
上述申请实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(英文:Application Specific Integrated Circuit;简称:ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、MicrochipPIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请实施例还提供了一种设备,所述设备包括:处理器;用于存储处理器可执行指令的存储器;所述处理器执行所述可执行指令时,实现如本申请实施例所述的方法。
本申请实施例还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,使如本申请实施例中所述的方法被实现。
此外,在本发明的各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独存在,也可以两个或两个以上模块集成在一个模块中。
上述存储介质包括但不限于随机存取存储器(英文:Random Access Memory;简称:RAM)、只读存储器(英文:Read-Only Memory;简称:ROM)、缓存(英文:Cache)、硬盘(英文:Hard Disk Drive;简称:HDD)或者存储卡(英文:Memory Card)。所述存储器可以用于存储计算机程序指令。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施方式采用递进的方式描述,各个实施方式之间相同或相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上实施例仅用以说明本申请的技术方案,而非对本申请限制;尽管参照前述实施例对本申请进行了详细的说明,本领域普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请技术方案的范围。
Claims (10)
1.一种多席位协同想定编辑方法,其特征在于,包括:
创建用于存储数据项的信息库,并为所述数据项分配版本号与数据锁;
若当前时刻需调用当前数据项,则执行获取步骤;
所述获取步骤,包括:在所述当前时刻尝试获取所述当前数据项对应的所述数据锁,得到获取结果;
若所述获取结果为获取失败,则迭代执行第一步骤直至获得所述当前数据项对应的所述数据锁;
所述第一步骤,包括:将所述当前时刻的下一时刻作为所述当前时刻,并在所述当前时刻尝试获取所述当前数据项对应的所述数据锁;
若所述获取结果为获取成功,则进入所述数据锁的观察期,并检查所述数据锁在所述观察期内是否被其他用户获取;
若所述数据锁在所述观察期内被获取,则释放所述数据锁,并重新执行所述获取步骤直至加锁成功;
若所述数据锁在所述观察期内未被获取,则加锁成功,获得所述当前数据项的编辑权限。
2.根据权利要求1所述的方法,其特征在于,所述创建用于存储数据项的信息库前,还包括:
创建用户标识符,并确定所述信息库中所述数据项的存储形式;其中,所述存储形式包括将所述数据项与所述用户标识符对应存储。
3.根据权利要求1所述的方法,其特征在于,所述版本号包括所述数据项的操作时间戳与序列号。
4.根据权利要求3所述的方法,其特征在于,所述为所述数据项分配版本号,包括:
为所述数据项分配序列号,且所述数据项与所述数据项在同一系统中互为唯一;
记录所述数据项被操作的操作时间戳;
拼合所述数据项对应的所述序列号与所述操作时间戳构成对应所述版本号。
5.根据权利要求4所述的方法,其特征在于,所述获得所述当前数据项的编辑权限后,还包括:
当所述当前数据项被编辑后,更新所述信息库并判断所述信息库能否更新成功;
若所述信息库能更新成功,则用新版本号覆盖所述数据项当前的所述版本号;
若所述信息库未更新成功,则保留所述数据项当前的所述版本号。
6.根据权利要求5所述的方法,其特征在于,所述用新版本号覆盖所述数据项当前的所述版本号前,还包括:
获取所述当前数据项被编辑的当前操作时间戳;
将所述序列号增一后与所述当前操作时间戳构成所述新版本号。
7.根据权利要求1所述的方法,其特征在于,所述数据锁设置有过期时间。
8.一种多席位协同想定编辑装置,其特征在于,包括:
创建模块,用于创建用于存储数据项的信息库,并为所述数据项分配版本号与数据锁;
获取模块,用于若当前时刻需调用当前数据项,则执行获取步骤;
所述获取步骤,包括:在所述当前时刻尝试获取所述当前数据项对应的所述数据锁,得到获取结果;
第一步骤模块,用于若所述获取结果为获取失败,则迭代执行第一步骤直至获得所述当前数据项对应的所述数据锁;
所述第一步骤,包括:将所述当前时刻的下一时刻作为所述当前时刻,并在所述当前时刻尝试获取所述当前数据项对应的所述数据锁;
加锁模块,用于若所述获取结果为获取成功,则进入所述数据锁的观察期,并检查所述数据锁在所述观察期内是否被其他用户获取;
若所述数据锁在所述观察期内被获取,则释放所述数据锁,并重新执行所述获取步骤直至加锁成功;
若所述数据锁在所述观察期内未被获取,则加锁成功,获得所述当前数据项的编辑权限。
9.一种用于执行多席位协同想定编辑方法的设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器执行所述可执行指令时,实现如权利要求1至7中任意一项所述的方法。
10.一种非易失性计算机可读存储介质,其特征在于,包括用于存储计算机程序或指令,当该计算机程序或指令被执行时,使如权利要求1至7中任一项所述的方法被实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311336614.2A CN117077447B (zh) | 2023-10-17 | 2023-10-17 | 多席位协同想定编辑方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311336614.2A CN117077447B (zh) | 2023-10-17 | 2023-10-17 | 多席位协同想定编辑方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117077447A true CN117077447A (zh) | 2023-11-17 |
CN117077447B CN117077447B (zh) | 2024-02-23 |
Family
ID=88713781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311336614.2A Active CN117077447B (zh) | 2023-10-17 | 2023-10-17 | 多席位协同想定编辑方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117077447B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100275209A1 (en) * | 2009-04-28 | 2010-10-28 | Microsoft Corporation | Reader/writer lock with reduced cache contention |
CN102301343A (zh) * | 2011-06-14 | 2011-12-28 | 华为技术有限公司 | 软件监测方法、装置以及系统 |
CN106354732A (zh) * | 2015-07-17 | 2017-01-25 | 中国石油化工股份有限公司 | 一种支持并发协同的离线数据版本冲突解决方法 |
CN109034716A (zh) * | 2017-06-12 | 2018-12-18 | 南京航空航天大学 | 一种基于分组的协同编辑并发加锁方法 |
CN109471735A (zh) * | 2018-11-14 | 2019-03-15 | 常熟理工学院 | 分布式集中控制系统的现场数据信息安全控制方法及系统 |
US20220138175A1 (en) * | 2020-11-04 | 2022-05-05 | Salesforce.Com, Inc. | Lock wait tracing |
CN114648302A (zh) * | 2022-03-21 | 2022-06-21 | 北京华如科技股份有限公司 | 一种用于协同想定编辑的数据处理方法及装置 |
CN115049356A (zh) * | 2022-05-23 | 2022-09-13 | 中国人民解放军火箭军工程大学 | 一种基于对象所有权动态分配与时效限制的协同操作并发冲突控制方法 |
CN115687365A (zh) * | 2022-11-29 | 2023-02-03 | 优酷网络技术(北京)有限公司 | 表单处理方法、设备、存储介质及程序产品 |
CN116306521A (zh) * | 2023-03-15 | 2023-06-23 | 北京中宏立达科技发展有限公司 | 一种协同编辑中的编辑权限分配方法、系统、设备及介质 |
CN116796552A (zh) * | 2023-06-29 | 2023-09-22 | 北京华如科技股份有限公司 | 一种仿真想定异步协同处理方法及装置 |
-
2023
- 2023-10-17 CN CN202311336614.2A patent/CN117077447B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100275209A1 (en) * | 2009-04-28 | 2010-10-28 | Microsoft Corporation | Reader/writer lock with reduced cache contention |
CN102301343A (zh) * | 2011-06-14 | 2011-12-28 | 华为技术有限公司 | 软件监测方法、装置以及系统 |
CN106354732A (zh) * | 2015-07-17 | 2017-01-25 | 中国石油化工股份有限公司 | 一种支持并发协同的离线数据版本冲突解决方法 |
CN109034716A (zh) * | 2017-06-12 | 2018-12-18 | 南京航空航天大学 | 一种基于分组的协同编辑并发加锁方法 |
CN109471735A (zh) * | 2018-11-14 | 2019-03-15 | 常熟理工学院 | 分布式集中控制系统的现场数据信息安全控制方法及系统 |
US20220138175A1 (en) * | 2020-11-04 | 2022-05-05 | Salesforce.Com, Inc. | Lock wait tracing |
CN114648302A (zh) * | 2022-03-21 | 2022-06-21 | 北京华如科技股份有限公司 | 一种用于协同想定编辑的数据处理方法及装置 |
CN115049356A (zh) * | 2022-05-23 | 2022-09-13 | 中国人民解放军火箭军工程大学 | 一种基于对象所有权动态分配与时效限制的协同操作并发冲突控制方法 |
CN115687365A (zh) * | 2022-11-29 | 2023-02-03 | 优酷网络技术(北京)有限公司 | 表单处理方法、设备、存储介质及程序产品 |
CN116306521A (zh) * | 2023-03-15 | 2023-06-23 | 北京中宏立达科技发展有限公司 | 一种协同编辑中的编辑权限分配方法、系统、设备及介质 |
CN116796552A (zh) * | 2023-06-29 | 2023-09-22 | 北京华如科技股份有限公司 | 一种仿真想定异步协同处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
毛启容, 王进峰, 詹永照: "相对位置乐观锁机制及在协同编辑中的应用", 计算机辅助设计与图形学学报, no. 09 * |
胡秋翔,: "基于锁定机制的电网GIS 多用户协同编辑研究", 《计算机系统应用》, pages 237 - 241 * |
Also Published As
Publication number | Publication date |
---|---|
CN117077447B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106415538B (zh) | 使用共享文件访问-rest接口的文件服务 | |
US8245192B1 (en) | Independent software development zones | |
US11237817B2 (en) | Operating system update management for enrolled devices | |
US9146735B2 (en) | Associating workflows with code sections in a document control system | |
KR20200093597A (ko) | 콘텐츠 아이템의 동기화를 위한 고유 식별자의 할당 및 재할당 | |
US8484638B2 (en) | Infrastructure for the automation of the assembly of schema maintenance scripts | |
CN108964982B (zh) | 用于实现区块链的多节点的部署的方法、装置及存储介质 | |
CN101772764B (zh) | 多线程业务编程库 | |
US11436131B2 (en) | Systems and methods for software testing using a disposable code | |
US8903889B2 (en) | Method, system and article for mobile metadata software agent in a data-centric computing environment | |
WO2022242372A1 (zh) | 对象处理方法、装置、计算机设备和存储介质 | |
Al-Fedaghi | System-based approach to software vulnerability | |
US20150121333A1 (en) | Regression alerts | |
CN112015563B (zh) | 消息队列切换方法、装置、电子设备及存储介质 | |
Kumari et al. | Validation of redfish: the scalable platform management standard | |
CN117077447B (zh) | 多席位协同想定编辑方法及装置 | |
US8161520B1 (en) | Methods and systems for securing a system in an adaptive computer environment | |
CN111835513B (zh) | 一种更新凭证数据的方法、装置及设备 | |
CN115396140A (zh) | 应用访问控制方法、装置、存储介质及计算机设备 | |
US9178867B1 (en) | Interacting with restricted environments | |
CN113467941A (zh) | 用于分享信息的方法和装置 | |
CN110941591A (zh) | 一种文件删除方法、装置、设备及可读存储介质 | |
US9378225B2 (en) | Core service build / deployment for hierarchical database | |
CN114143187B (zh) | 智能平台接口网络地址管理方法、系统、终端及存储介质 | |
CN116257278B (zh) | 一种应用软件的补丁执行方法和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |