CN117076547B - 基于虚拟分布式服务器的数据存储方法 - Google Patents
基于虚拟分布式服务器的数据存储方法 Download PDFInfo
- Publication number
- CN117076547B CN117076547B CN202311334668.5A CN202311334668A CN117076547B CN 117076547 B CN117076547 B CN 117076547B CN 202311334668 A CN202311334668 A CN 202311334668A CN 117076547 B CN117076547 B CN 117076547B
- Authority
- CN
- China
- Prior art keywords
- transaction
- foreign key
- data
- key constraint
- data storage
- 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.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 26
- 230000002085 persistent effect Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 9
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 6
- 238000007726 management method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于虚拟分布式服务器的数据存储方法,应用于数据交换设备,该方法包括:响应于接受服务端的事务,按照每一条数据依次拆分事务;事务至少包括第一事务与第二事务,第一事务用于在第一表中存储第一数据,第二事务用于在第二表中存储第二数据;其中,事务具有原子性,第二表存在外键约束;根据第二表的外键约束,以及第一映射表,获取第二表的外键约束关联的第三表;根据第三表,判断第二数据是否满足外键约束;若满足外键约束,依次执行事务。本发明通过管理模块中的第一映射表,在创建表的过程中,对外键约束的信息进行了预存储,从而在事务执行中,能够通过第一映射表对外键约束进行提前分析与预判。
Description
技术领域
本发明属于分布式数据管理领域,更具体的,涉及一种基于虚拟分布式服务器的数据存储方法。
背景技术
当分布式数据库处理事务时,若采取的是持久消息而非加锁。尽管很大程度上避免了线程的阻塞问题,但是其错误处理的能力却远不如加锁,特别是在事务中存在一些数据处于外键约束的情况下。
发明内容
为解决现有技术中存在的不足,本发明的目的在于解决上述缺陷,进而提出一种基于虚拟分布式服务器的数据存储方法。该方法起初只是为了确保数据库接口的封装性,从而实现服务端与数据库之间的解耦。然而在本发明的场景下,其极大的提高了处理外键约束情形下的数据库存储问题的工作效率。
本发明采用如下的技术方案。
本发明第一方面公开了一种基于虚拟分布式服务器的数据存储方法,应用于数据交换设备,该方法包括步骤S1~步骤S4;
步骤S1,响应于接受服务端的事务,按照每一条数据依次拆分事务;事务至少包括第一事务与第二事务,第一事务用于在第一表中存储第一数据,第二事务用于在第二表中存储第二数据;其中,事务具有原子性,第二表存在外键约束;
步骤S2,根据第二表的外键约束,以及第一映射表,获取第二表的外键约束关联的第三表;
步骤S3,根据第三表,判断第二数据是否满足外键约束;
步骤S4,若满足外键约束,依次执行事务;若不满足外键约束,发送事务执行失败信息给服务端。
本发明第二方面公开了一种基于虚拟分布式服务器的数据存储系统,用于执行第一方面所述的方法,系统包括:至少一个服务端、数据交换设备与多个数据存储设备;
服务端包括逻辑模块通信,用于生成事务,其中,事务至少包括第一事务与第二事务,第一事务用于在第一表中存储第一数据,第二事务用于在第二表中存储第二数据;
数据交换设备用于分担服务端的压力,至少包括第二接口与第三接口;其中,第二接口与数据存储设备的第一接口通信连接,第三接口与服务端的逻辑模块通信连接;
数据交换设备还用于响应于接受服务端的事务,按照每一条数据依次拆分事务;以及根据第二表的外键约束,以及第一映射表,获取第二表的外键约束关联的第三表;以及根据第三表,判断第二数据是否满足外键约束;以及若满足外键约束,依次执行事务;若不满足外键约束,发送事务执行失败信息给服务端;
数据交换设备作为虚拟数据库,作为服务端与数据存储设备之间的唯一接口;
数据存储设备用于存储数据,从而作为上述执行事务的主体。
本发明的有益效果在于,与现有技术相比,本发明具有以下优点:
(1)本发明通过管理模块中的第一映射表,在创建表的过程中,对外键约束的信息进行了预存储,从而在事务执行中,能够通过第一映射表对外键约束进行提前分析与预判,从而在虚拟数据库端(也就是数据交换设备),而不是实际的数据库端,提前完成了错误处理。从而避免了利用数据库端的持久消息进行错误处理。
(2)本发明巧妙的利用了虚拟数据库的封装性特点,将外键约束的载体由实际的分布式的数据库并转移至虚拟的数据库。也就是说,由于数据交换设备在现有技术中通常会承担虚拟数据库的责任,以方便对外(也就是服务端)统一接口。因此,本发明将原本实际数据库中的外键约束,转移给了虚拟数据库,从而避免了实际的分布式数据库中对外键约束的判断。也就是说,实际的数据库中,也就是数据存储设备中没有任何一个表存在外键约束关系。
附图说明
图1A是一种分布式服务器的数据存储系统的示意图。
图1B是本发明实施例的一种基于虚拟分布式服务器的数据存储系统的示意图。
图2A是考勤表与员工表的创建代码的示意图。
图2B是外键约束下,考勤表的创建代码的示意图。
图3是本发明实施例的一种基于虚拟分布式服务器的数据存储方法的流程图。
图4A是在分布式数据库下,利用持久消息对外键约束进行错误处理的流程图。
图4B是在分布式数据库下,外键约束的判断的流程图。
图4C是本发明实施例的在分布式数据库下,外键约束的判断的流程图。
具体实施方式
下面结合附图对本申请作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本申请的保护范围。
一种分布式服务器的数据存储系统,可以如图1A所示。该系统可以包括:至少一个服务端、数据交换设备与多个数据存储设备。
在图1A中,数据存储设备用于存储数据,其内部通常主要包括磁盘,海量的数据以数据库的表现形式存储在磁盘上。数据存储设备还应当包括第一接口,第一接口用于外部访问或存储数据库中海量的数据。
数据交换设备可以集成在服务端内部,但通常会单独抽离出服务端,从而分担服务端的压力。数据交换设备至少包括第二接口与第三接口。可理解的,第二接口与数据存储设备的第一接口通信连接,第三接口与服务端的逻辑模块通信连接。数据交换设备的交换端通常还承担数据安全传输的责任。
可以理解的是,第一接口、第二接口与第三接口本质上也是逻辑模块,其内部逻辑可以通过代码实现。由于第一接口、第二接口与第三接口所承担的功能只需要负责对外接口,因此从命名上加以区分。
出于封装的设计思想,例如,当服务端需要存储或访问数据时,不应当由服务端考虑该数据到底是存储在数据存储设备1上还是数据存储设备2上。
基于此,本发明公开了一种基于虚拟分布式服务器的数据存储系统,可以如图1B所示。
区别的是,数据交换设备被当做虚拟数据库使用。交换端还包括管理模块;其中,虚拟数据库作为所有服务端的数据库接口。也就是说,站在服务端的视角上看,服务端的开发人员只需要将数据存储在该虚拟数据库中即可。此外,由于虚拟数据库并不是真的数据库,因而管理模块用于维护协调虚拟数据库与多个数据存储设备之间的关系。
从系统的角度来看,图1B与图1A并没有什么区别,只是相当于让原本功能并不多的数据交换设备还承担起了虚拟数据库的责任。
分布式数据库的优点在于,分摊了数据存储设备的数据存储压力与访问压力,此外最为关键的是实现了数据备份。例如,服务端可以包括考勤服务,用于记录每一个员工的日常考勤状态。
每当有员工上下班打卡时,服务端生成一条考勤数据,例如,可以是(1078,1683800121, 2)。其中,1078为员工的编号;1683800121为考勤时间,其为标准时间戳;2表示每日打卡的次数。当服务端生成该条考勤数据时,需要将其通过数据交换设备发送至多个数据存储设备的数据库中的考勤表进行存储。存储后的考勤表可以如表1所示。
表1
nameID | attendance_time | frequency |
1045 | 1683765408 | 1 |
1045 | 1683799903 | 2 |
1045 | 1683800121 | 3 |
1078 | 1683765256 | 1 |
1078 | 1683800121 | 2 |
不难理解的是,表1中的nameID,attendance_time,frequency分别对应员工的编号、考勤时间与每日打卡的次数。表1中的最后一条数据即为上述新生成的考勤数据。
以上只是给出数据库中表的一种形式或一种场景,但本发明的实施例并非限定于该场景下。为了方便说明,接下来依然以考勤表作为场景进行说明。
数据库中通常还可以包括员工表与专家表,可以分别如表2与表3所示。通常情况下,这两张表可以合并为一个表,例如可以是公司人员表,但为了方便描述本发明实施例,此处拆开处理。
表2
nameID | name | info |
1045 | 赵大 | 员工 |
1078 | 钱二 | 组长 |
表3
nameID | name | info |
2008 | 张三 | 董事长 |
2017 | 李四 | 外聘专家 |
例如,当外聘专家李四进行打卡时,服务端也生成一条考勤数据,例如,可以是(2017, 1683800698, 2)。但由于李四并不是员工,公司并不需要统计其考勤信息。此时,服务端会对该考勤数据进行过滤,避免无效的数据浪费数据库空间。
然而,单纯站在服务端的视角上进行数据过滤,这种设计方式并不保险,例如,服务端可能忽略了对考勤数据的过滤;此外,该做法本身也不符合封装的设计思想。通常情况下,数据库本身也必然需要对考勤数据进行二次过滤。在一些实施例中,可以利用数据库本身自带的一种称为外键约束(foreign key references)的方法进行过滤。在没有外键约束的情况下,表1的考勤表(例如,图2A中的attendance_20230511)与表2员工表(例如,图2A中的staff)的创建方式可以如图2A所示。与之相对的是,当利用外键约束后,表1的考勤表的创建方式可以如图2B所示,此时,专家表中的考勤数据将无法插入到考勤表中,除非专家表中的某个nameID也存在于员工表中。
上文中提到,由于数据库中的各个表示分散存储在不同的数据存储设备中的数据库中的。因此,很难保证员工表与考勤表置于同一数据存储设备的数据库中了。并且由于同一张表通常会至少备份一次,也就更难保证外键约束的可靠性。
具体的,当数据交换设备接收来自服务端的一次事务时,其中,事务具有原子性,事务可以包含多条数据的存储任务,多条数据依次包括第一数据与第二数据,其中,每一条数据可以是,例如上文中的考勤数据。
事务的原子性指的是:若第二数据没有存储,则之前执行的操作,例如第一数据的存储也必须回滚,即:撤销第一数据的存储。
假设第二条数据所在的表存在外键约束,那么通常情况下,数据交换设备先将第一数据存储至相应的数据存储设备中,再对第二数据进行外键约束的判断,确定无误后再将第二数据存储至相应的数据存储设备中。此外,可以通过对上述过程加锁的方式以确保事务的原子性。由于在本发明的场景下,所有的服务端的数据库操作均交给数据交换设备,因此,加锁的方式会导致其他的线程阻塞,甚至有可能造成连环锁等bug。通常情况下,一般会采用持久消息(persistent message)的方式代替加锁的方式,以确保事务的原子性。
持久消息是这样的消息,即如果发送该消息的事务提交,则不管是否发生故障,它都保证传送给接受者恰好一次。然而,持久消息尽管解决了线程的阻塞问题,但是其错误处理能力却较为麻烦,即在分布式数据库下,利用持久消息实现数据回滚非常困难。
基于此,如图3所示,本发明公开了一种基于虚拟分布式服务器的数据存储方法,应用于数据交换设备,包括步骤S1~步骤S4。
步骤S1,响应于接受服务端的事务,按照每一条数据依次拆分事务;事务至少包括第一事务与第二事务,第一事务用于在第一表中存储第一数据,第二事务用于在第二表中存储第二数据;其中,事务具有原子性,第二表存在外键约束。
步骤S2,根据第二表的外键约束,以及第一映射表,获取第二表的外键约束关联的第三表。
可以理解的是,假设第二数据为上文中的考勤数据,则第二表与第三表可以分别是上文中的考勤表与员工表。
步骤S3,根据第三表,判断第二数据是否满足外键约束。
步骤S4,若满足外键约束,依次执行事务;若不满足外键约束,发送事务执行失败信息给服务端。
步骤S1~步骤S4将外键约束的判断流程,统一扔给了虚拟数据库,也就是数据交换设备,从而避免了分布式数据库下,外键约束错误带来的持久消息的数据回滚困难。
上文中提到,在分布式数据库中,为了避免线程阻塞,一般不采用加锁的方式。进一步的,步骤S3中依次执行事务,具体为通过持久消息的方式依次执行事务。
图4A示出了在分布式数据库下,利用持久消息对外键约束的错误处理的流程图。为了简单起见,图4A假设第一表、第二表与第三表分别在数据存储设备1、数据存储设备2与数据存储设备3下,并假设其中的步骤,即判断第二事务的外键约束为不满足外键约束,即需要进行错误处理。
需要注意的是,为了与下文中的图4C形成对比,图4A中将外键约束的判断(例如,图4A中判断第二事务的外键约束)这个步骤进行了简化,其详细的步骤如下文中的图4B所示。
不难看出,利用持久消息对数据进行回滚,即撤销第一事务,是非常麻烦的。关于撤销第一事务,这里应当考虑的是,假设第一事务的数量有不止一个,也就是说,第一事务有可能是第三事务、第四事务等等的统称;此外,第一事务也有可能存储在多个数据存储设备中。那么错误处理需要将这些所有的在先执行统统撤销掉。
需要说明的是,图4A中并没有考虑到数据存储设备中本身的管理器的状态变化,在本发明实施例中,数据存储设备中的管理器用于记录持久消息,从而能够执行错误处理(例如,图4A中的撤销第一事务)。
进一步的,一种基于虚拟分布式服务器的数据存储方法在执行步骤S1~步骤S4之前还包括步骤S101~步骤S104。
步骤S101,响应于新表的创建,判断所述新表是否存在外键约束。
步骤S102,若新表存在外键约束,获取新表外键约束关联的限定表。
可以理解的是,该限定表的创建时间必然早于新表。
步骤S103,以新表的名称作为键,以限定表的名称作为值,形成键值对存储至第一映射表中。
步骤S104,将新表存储至数据存储设备的数据库中。
步骤S101~步骤S103用于描述第一映射表是如何形成的。假设步骤S101中新表的创建如图2B所示,即新表为attendance_20230511,则步骤S103中的键值对可以是(key=“attendance_20230511”;value=“staff”)。
此处需要注意的是,尽管在数据交换设备处对新表外键约束进行了判断,但如果将该新表实际的插入至数据存储设备的数据库中,由上文可知,实际的数据库自身还需要进行二次的外键约束判断。尽管已经确定在数据库端绝不存在由外键约束引起的数据回滚,但是外键约束的二次判断依然消耗了大量时间。外键约束的二次判断可以如图4B所示。
因此,步骤S104具体包括步骤S201~步骤S202。
步骤S201,将新表的外键约束关系保存至预设的第二映射表中。
步骤S202,删掉新表的外键约束关系后,将新表存储至数据存储设备的数据库中。
从步骤S201~步骤S202中不难看出,其避免了实际的分布式数据库中对外键约束的判断。也就是说,数据交换设备彻底充当的角色是一个虚拟的数据库,任何数据库的信息的对外接口都必须经由该虚拟的数据库作为中介。此时,外键约束关系的判断方式主要集中在虚拟服务器端,也就是数据交换设备中完成,如图4C所示。可以理解的是,由于第二映射表的存在,使得外键约束的判断无需再向数据存储设备2中获取第三表的信息。
可以理解的是,当第二映射表存储了新表的外键约束关系后,并且当服务器某个时候需要获知所述新表的信息时,其可以通过数据交换设备向存储该新表的数据存储设备中获取该新表的信息。但是,数据存储设备中该新表的信息是没有外键约束关系的,这与当初服务端的创建信息是不符的。因此,可以通过查找第二映射表获取外键约束关系,从而“恢复”该新表的信息,这样就与当初服务端的创建信息是一致的了。假设步骤S101中新表的创建如图2B所示,即新表为attendance_20230511,则步骤S201中的第二映射表的键值对可以是(key=“attendance_20230511”;value=“FOREIGN KEY(nameID) REFERENCESstaff”)。
综上,更为通俗的,本发明实施例的一种基于虚拟分布式服务器的数据存储方法,应用于数据交换设备,还包括步骤A1~步骤A4。
步骤A1,响应于查表指令,向数据存储设备发送查表指令;其中,查找指令用于查找所述第二表的创建结构。
可以理解的是,该查表指令通常可以是客户端发出,也可以是其他的服务端发出。
步骤A2,接收数据存储设备反馈的第二表的创建结构。
步骤A3,判断第二表的名称是否在第二映射表中;若在第二映射表中,获取第二表对应的外键约束关系。
步骤A4,在所述反馈的第二表的创建结构上补充所述第二表对应的外键约束关系,形成第二表的完整结构发送给服务端。
综上,本发明公开了一种基于虚拟分布式服务器的数据存储系统,系统包括:至少一个服务端、数据交换设备与多个数据存储设备;
服务端包括逻辑模块通信,用于生成事务,其中,事务至少包括第一事务与第二事务,第一事务用于在第一表中存储第一数据,第二事务用于在第二表中存储第二数据;
数据交换设备用于分担服务端的压力,至少包括第二接口与第三接口;其中,第二接口与数据存储设备的第一接口通信连接,第三接口与服务端的逻辑模块通信连接;
数据交换设备还用于响应于接受服务端的事务,按照每一条数据依次拆分事务;以及根据第二表的外键约束,以及第一映射表,获取第二表的外键约束关联的第三表;以及根据第三表,判断第二数据是否满足外键约束;以及若满足外键约束,依次执行事务;若不满足外键约束,发送事务执行失败信息给服务端;
数据交换设备作为虚拟数据库,作为服务端与数据存储设备之间的唯一接口;
数据存储设备用于存储数据,从而作为上述执行事务的主体。
本发明申请人结合说明书附图对本发明的实施示例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施示例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
Claims (4)
1.一种基于虚拟分布式服务器的数据存储方法,应用于数据交换设备,其特征在于,所述方法包括步骤S1~步骤S4;
步骤S1,响应于接受服务端的事务,按照每一条数据依次拆分事务;事务至少包括第一事务与第二事务,第一事务用于在第一表中存储第一数据,第二事务用于在第二表中存储第二数据;其中,事务具有原子性,第二表存在外键约束;
步骤S2,根据第二表的外键约束,以及第一映射表,获取第二表的外键约束关联的第三表;
步骤S3,根据第三表,判断第二数据是否满足外键约束;
步骤S4,若满足外键约束,依次执行事务;若不满足外键约束,发送事务执行失败信息给服务端;
所述方法在执行步骤S1~步骤S4之前还包括步骤S101~步骤S104;
步骤S101,响应于新表的创建,判断所述新表是否存在外键约束;
步骤S102,若新表存在外键约束,获取新表的外键约束关联的限定表;
步骤S103,以新表的名称作为键,以限定表的名称作为值,形成键值对存储至第一映射表中;
步骤S104,将新表存储至数据存储设备的数据库中;
步骤S104具体包括步骤S201~步骤S202;
步骤S201,将新表的外键约束关系保存至预设的第二映射表中;
步骤S202,删掉新表的外键约束关系后,将新表存储至数据存储设备的数据库中。
2.根据权利要求1所述的一种基于虚拟分布式服务器的数据存储方法,其特征在于,步骤S3中依次执行事务,具体为通过持久消息的方式依次执行事务。
3.根据权利要求1所述的一种基于虚拟分布式服务器的数据存储方法,其特征在于,所述方法还包括步骤A1~步骤A4;
步骤A1,响应于查表指令,向数据存储设备发送查表指令;其中,查找指令用于查找所述第二表的创建结构;
步骤A2,接收数据存储设备反馈的第二表的创建结构;
步骤A3,判断第二表的名称是否在第二映射表中;若在第二映射表中,获取第二表对应的外键约束关系;
步骤A4,在所述反馈的第二表的创建结构上补充所述第二表对应的外键约束关系,形成第二表的完整结构发送给服务端。
4.一种基于虚拟分布式服务器的数据存储系统,用于执行权利要求1-3任一所述的方法,其特征在于,系统包括:至少一个服务端、数据交换设备与多个数据存储设备;
数据存储系统预先执行步骤S101~步骤S104;
步骤S101,响应于新表的创建,判断所述新表是否存在外键约束;
步骤S102,若新表存在外键约束,获取新表的外键约束关联的限定表;
步骤S103,以新表的名称作为键,以限定表的名称作为值,形成键值对存储至第一映射表中;
步骤S104,将新表存储至数据存储设备的数据库中;
步骤S104具体包括步骤S201~步骤S202;
步骤S201,将新表的外键约束关系保存至预设的第二映射表中;
步骤S202,删掉新表的外键约束关系后,将新表存储至数据存储设备的数据库中;
服务端包括逻辑模块通信,用于生成事务,其中,事务至少包括第一事务与第二事务,第一事务用于在第一表中存储第一数据,第二事务用于在第二表中存储第二数据;
数据交换设备用于分担服务端的压力,至少包括第二接口与第三接口;其中,第二接口与数据存储设备的第一接口通信连接,第三接口与服务端的逻辑模块通信连接;
数据交换设备还用于响应于接受服务端的事务,按照每一条数据依次拆分事务;以及根据第二表的外键约束,以及第一映射表,获取第二表的外键约束关联的第三表;以及根据第三表,判断第二数据是否满足外键约束;以及若满足外键约束,依次执行事务;若不满足外键约束,发送事务执行失败信息给服务端;
数据交换设备作为虚拟数据库,作为服务端与数据存储设备之间的唯一接口;
数据存储设备用于存储数据,从而作为上述执行事务的主体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311334668.5A CN117076547B (zh) | 2023-10-16 | 2023-10-16 | 基于虚拟分布式服务器的数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311334668.5A CN117076547B (zh) | 2023-10-16 | 2023-10-16 | 基于虚拟分布式服务器的数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117076547A CN117076547A (zh) | 2023-11-17 |
CN117076547B true CN117076547B (zh) | 2024-01-02 |
Family
ID=88706467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311334668.5A Active CN117076547B (zh) | 2023-10-16 | 2023-10-16 | 基于虚拟分布式服务器的数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076547B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560766A (zh) * | 2004-02-17 | 2005-01-05 | 北京大学 | 面向可扩展标记语言模式的键约束自动生成方法 |
WO2011082242A1 (en) * | 2009-12-29 | 2011-07-07 | Hardy Dow K | System and method for controlling online awards activity |
CN102567396A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种基于云计算的数据挖掘方法、系统及装置 |
CN103631911A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民大学 | 基于数组存储和向量处理的olap查询处理方法 |
CN105653579A (zh) * | 2015-12-18 | 2016-06-08 | 北京百度网讯科技有限公司 | 一种对分布式事务进行测试的方法和装置 |
CN109635037A (zh) * | 2018-11-19 | 2019-04-16 | 中山大学 | 一种关系型分布式数据库的分片存储方法及装置 |
CN115422156A (zh) * | 2022-04-02 | 2022-12-02 | 北京奥星贝斯科技有限公司 | 数据库的约束关系检查方法及装置 |
CN115509694A (zh) * | 2022-10-08 | 2022-12-23 | 北京火山引擎科技有限公司 | 一种事务处理方法、装置、电子设备及存储介质 |
CN115729951A (zh) * | 2022-11-28 | 2023-03-03 | 易保网络技术(上海)有限公司 | 数据查询方法、系统、设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703811B2 (en) * | 2014-06-14 | 2017-07-11 | Accenture Global Services Limited | Assessing database migrations to cloud computing systems |
-
2023
- 2023-10-16 CN CN202311334668.5A patent/CN117076547B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560766A (zh) * | 2004-02-17 | 2005-01-05 | 北京大学 | 面向可扩展标记语言模式的键约束自动生成方法 |
WO2011082242A1 (en) * | 2009-12-29 | 2011-07-07 | Hardy Dow K | System and method for controlling online awards activity |
CN102567396A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种基于云计算的数据挖掘方法、系统及装置 |
CN103631911A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民大学 | 基于数组存储和向量处理的olap查询处理方法 |
CN105653579A (zh) * | 2015-12-18 | 2016-06-08 | 北京百度网讯科技有限公司 | 一种对分布式事务进行测试的方法和装置 |
CN109635037A (zh) * | 2018-11-19 | 2019-04-16 | 中山大学 | 一种关系型分布式数据库的分片存储方法及装置 |
CN115422156A (zh) * | 2022-04-02 | 2022-12-02 | 北京奥星贝斯科技有限公司 | 数据库的约束关系检查方法及装置 |
CN115509694A (zh) * | 2022-10-08 | 2022-12-23 | 北京火山引擎科技有限公司 | 一种事务处理方法、装置、电子设备及存储介质 |
CN115729951A (zh) * | 2022-11-28 | 2023-03-03 | 易保网络技术(上海)有限公司 | 数据查询方法、系统、设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
An Evolutionary Genetic Algorithm for Optimization of Distributed Database Queries;Ender Sevinc et al;《THE COMPUTER JOURNAL》;717-725 * |
基于数据库集群的数据报送系统设计;王智铎;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-786 * |
Also Published As
Publication number | Publication date |
---|---|
CN117076547A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7149761B2 (en) | System and method for managing the synchronization of replicated version-managed databases | |
EP2474919B1 (en) | System and method for data replication between heterogeneous databases | |
US7290015B1 (en) | High availability via data services | |
CN111753013B (zh) | 分布式事务处理方法及装置 | |
CN106844014B (zh) | 分布式事务防悬挂的实现方法和装置 | |
US8572056B2 (en) | System with multiple conditional commit databases | |
CN111930529B (zh) | 基于消息队列及微服务的数据同步方法、装置及系统 | |
CN108076098A (zh) | 一种业务处理方法及系统 | |
US6381617B1 (en) | Multiple database client transparency system and method therefor | |
US20020161840A1 (en) | Adapter for interfacing with a workflow engine | |
EP0978034A1 (en) | Method and structure for balanced queue communication between nodes in a distributed computing application | |
CN111522631A (zh) | 分布式事务处理方法、装置、服务器及介质 | |
CN104065636A (zh) | 数据处理方法和系统 | |
CN112148436B (zh) | 去中心化的tcc事务管理方法、装置、设备及系统 | |
CN110297822B (zh) | 面向区块链的密钥管理方法、装置、设备及存储介质 | |
CN117076547B (zh) | 基于虚拟分布式服务器的数据存储方法 | |
CN117319419A (zh) | 一种基于微服务架构的分布式数据同步方法 | |
CN111143040A (zh) | 事务处理方法、装置、系统及存储介质 | |
CN116319241A (zh) | 处理事务的方法、处理事务的装置和电子设备 | |
CN113077241B (zh) | 审批处理方法、装置、设备及存储介质 | |
US20060200516A1 (en) | Data processing system and method for message handling | |
CN112053150A (zh) | 一种数据处理方法、装置及存储介质 | |
CN114900531B (zh) | 数据同步方法、装置和系统 | |
CN112860780B (zh) | 数据导出方法、装置和终端设备 | |
CN112506938A (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 |