CN116501767A - 基于总线实时采集的高通量实体历史信息流式治理方法 - Google Patents
基于总线实时采集的高通量实体历史信息流式治理方法 Download PDFInfo
- Publication number
- CN116501767A CN116501767A CN202310478372.4A CN202310478372A CN116501767A CN 116501767 A CN116501767 A CN 116501767A CN 202310478372 A CN202310478372 A CN 202310478372A CN 116501767 A CN116501767 A CN 116501767A
- Authority
- CN
- China
- Prior art keywords
- entity
- situation
- information
- data
- linked list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004458 analytical method Methods 0.000 claims abstract description 34
- 230000009467 reduction Effects 0.000 claims abstract description 11
- 238000004088 simulation Methods 0.000 claims description 57
- 238000004891 communication Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 26
- 238000007726 management method Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 16
- 230000003068 static effect Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 claims description 3
- 230000010365 information processing Effects 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 2
- 238000005056 compaction Methods 0.000 claims description 2
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000007689 inspection Methods 0.000 claims description 2
- 238000003860 storage Methods 0.000 abstract description 4
- 238000011161 development Methods 0.000 abstract description 3
- 238000013459 approach Methods 0.000 abstract description 2
- 238000012423 maintenance Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- IQVNEKKDSLOHHK-FNCQTZNRSA-N (E,E)-hydramethylnon Chemical group N1CC(C)(C)CNC1=NN=C(/C=C/C=1C=CC(=CC=1)C(F)(F)F)\C=C\C1=CC=C(C(F)(F)F)C=C1 IQVNEKKDSLOHHK-FNCQTZNRSA-N 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010219 correlation analysis Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- -1 carrier Substances 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于总线实时采集的高通量实体历史信息流式治理方法,可以实现对实体历史信息的大幅度压减。同时,由于直接写入数据库的就是治理好的数据,后续分析可以直接使用,可以节省掉基于SQL语句进行二次治理的大量开销。基于该方式,所有不是关键节点的实体历史信息都被剔除了。与原有方法相比,基于总线实时采集的流式治理方法时效性更好,可以做到治理结果实时入库。而原有方式必须等待一段时间(通常为数分钟)才能使用治理结果。数据和分析方法的简约化,既减轻了分析人员的分析工作量,也减轻了系统研发人员的代码开发工作量,解决了原有方式下因数据量大带来的难以分析、难以呈现等问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于总线实时采集的高通量实体历史信息流式治理方法。
背景技术
大型计算机仿真平台使用过程中需要对多项指标进行统计分析,实体历史信息是其中重要的一种。由于实体基数巨大,信息采样频繁,导致关于实体的历史信息体量庞大,通常都在数亿条规模。巨大的数据量导致分析检索时速度变慢,并致使后续对实体历史信息的相关分析难于开展。因此,急需一种有效可行的方法,能够迅速提高对实体历史信息查询检索的速度,以便进行后续相关分析。
现有方法主要针对关系型数据库中已经采集好的数据进行治理,采用的是基于SQL(结构化查询语言)调用的途径。由于每个实体的任意属性变化都会被记录进基础数据,因此,导致基础数据量庞大,查询缓慢。同时基于SQL的治理又导致对大体量数据的不断查询,从而使本就不充裕的数据服务资源进一步吃紧。这最终导致整体数据服务性能下降,影响相关业务开展。巨大的数据量还对分析人员的分析逻辑造成影响:因为分析人员关注的往往是重要的转折节点信息,但是这些重要的转折节点信息被大量不关心的数据淹没,因此分析人员必须先剔除无关信息,这将消耗掉分析人员大量资源。
发明内容
本发明的目的是提供一种基于总线实时采集的高通量实体历史信息流式治理方法,可以降低数据总量、节省服务器资源、提高查询检索效率,同时便于分析人员进行分析。
本发明的目的是通过以下技术方案实现的:
一种基于总线实时采集的高通量实体历史信息流式治理方法,包括:
步骤S1、读取配置文件,获取配置项参数;
步骤S2、创建工作线程池并进行监控,结合相关的配置项参数创建态势数据库连接对象以及创建通信库对象并连接态势服务器;
步骤S3、根据配置项参数挂接网盘服务,并更新仿真时间与词汇表,仿真时间用于在态势数据解码时赋值给相关实体信息数据项,词汇表用于解码结果的解析过程;
步骤S4、从态势服务器中下载初始化态势数据并解码;
步骤S5、从态势服务器中下载增量态势数据并解码;
步骤S6、结合词汇表对初始态势数据与增量态势数据的解码结果进行解析,根据解析获得的实体信息,实时更新态势数据缓存,获得更新后的实体历史信息链表与实体信息全局链表;
步骤S7、构建并维护分支树,更新各实体信息的数据段编号;
步骤S8、通过对实体信息进行态势分析,对实体历史信息治理链表进行压减;
步骤S9、结合配置项参数,将压减后的实体历史信息链表以及更新的各实体信息的数据段编号写入态势数据库,同时,将实体信息全局链表写入态势数据库。
由上述本发明提供的技术方案可以看出,可以应用于大型计算机仿真平台的数据分析过程,实现对实体历史信息数据量的大幅度压减,同时保留全部关键节点信息,实现对高通量实体历史信息的在线流式治理,大幅度提升数据查询分析的效率。在此基础上,后续相关分析可以直接提取关键节点信息,无需再进行冗余信息的剔除,实现了分析方法的简化。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种基于总线实时采集的高通量实体历史信息流式治理方法的流程图;
图2为本发明实施例提供的实现本发明相关方法的系统框架图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
首先对本文中可能使用的术语进行如下说明:
术语“和/或”是表示两者任一或两者同时均可实现,例如,X和/或Y表示既包括“X”或“Y”的情况也包括“X和Y”的三种情况。
术语“包括”、“包含”、“含有”、“具有”或其它类似语义的描述,应被解释为非排它性的包括。例如:包括某技术特征要素(如原料、组分、成分、载体、剂型、材料、尺寸、零件、部件、机构、装置、步骤、工序、方法、反应条件、加工条件、参数、算法、信号、数据、产品或制品等),应被解释为不仅包括明确列出的某技术特征要素,还可以包括未明确列出的本领域公知的其它技术特征要素。
本发明实施例一种基于总线实时采集的高通量实体历史信息流式治理方法,可以应用于大型仿真系统的数据分析过程,实现对实体历史信息数据量的大幅度压减,同时保留全部关键节点信息,实现对高通量实体历史信息的在线流式治理,大幅度提升数据查询分析的效率。在此基础上,后续相关分析可以直接提取关键节点信息,无需再进行冗余信息的剔除,实现了分析方法的简化。如:使用原有方式进行舰船历史信息分析时,如果不进行冗余信息的剔除,则分析结果经常30秒以上才能出来,后续进行可视化渲染时,更是慢的难以接受。如果首先进行冗余信息的剔除,则相关的算法和SQL复杂,不仅容易出错,而且会消耗大量的服务器资源,并拖慢数据库整体性能。使用本发明提供的方案,所有需要的关键节点信息都已经提取好并存入一张数据表,后续统计分析仅需要对单表数据进行简单分类统计。新方案下,分析算法得到了简化,并且由于数据量的降低,查询分析效率也得到了巨大的提升。
下面对本发明所提供的一种基于总线实时采集的高通量实体历史信息流式治理方法进行详细描述。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本发明实施例中未注明具体条件者,按照本领域常规条件或制造商建议的条件进行。
如图1所示,本发明实施例提供的一种基于总线实时采集的高通量实体历史信息流式治理方法,主要包括如下步骤:
步骤S1、读取配置文件,获取配置项参数。
本发明实施例中,程序启动后,首先寻找用户指定的配置文件,获取对应的配置项参数。其中,配置项参数主要包括:模型服务器地址、端口、想定名称、词汇表路径、网盘远端路径和本地挂载路径;接收态势控制标记、建库标记、清库标记、建表标记、输出态势标记与输出治理结果集标记;态势服务器数量、每台态势服务器的地址和端口;态势数据库服务器地址、端口、实例名、用户名与密码。其中:
本发明实施例中,模型服务器地址、端口、想定名称在后续步骤S3(挂接网盘)中使用。词汇表路径、网盘远端路径和本地挂载路径在后续步骤S3中更新仿真时间与词汇表部分使用。
本发明实施例中,态势服务器数量标明系统中配置的可用的态势服务器的数目。每台态势服务器的地址和端口标明了每台态势服务器的连接信息。态势数据库服务器地址、端口、实例名、用户名与密码标明了态势数据库服务器的连接信息。
本发明实施例中,接收态势控制标记、建库标记、清库标记、建表标记、输出态势标记与输出治理结果集标记,这几个标记在后续S2步骤中程序初始化以及后续相关步骤中使用,具体的:
(1)接收态势控制标记控制程序是否接收处理态势数据。在后续步骤S4与步骤S5中涉及到接收态势数据。只有态势控制标记设置为处理,才会接收处理对应的态势数据。
(2)建库标记控制是否创建态势数据库。清库标记控制是否truncate(截断)态势数据库表。建表标记控制是否创建态势数据表。具体的,在后续步骤S22中使用以上三个标记,根据标记执行创建态势数据库、创建数据表、truncate数据表。
(3)输出态势标记控制是否输出态势数据。在后续步骤S9输出数据库的时候,会首先查看输出态势标记,如果对应的态势数据表标记为不输出,则不输出对应实体类型的态势数据。
(4)输出治理结果集标记控制是否输出治理后结果数据集。输出治理结果集标记在后续步骤S9中使用,如果检测到不输出的结果集数据表,则跳过,然后输出下一个结果集数据表。
步骤S2、创建工作线程池并进行监控,结合相关的配置项参数创建态势数据库连接对象以及创建通信库对象并连接态势服务器。
本步骤中需要使用步骤S1相关配置项参数来创建通信库对象并连接态势服务器,连接态势服务器后可以进行后续的态势数据下载和处理。本步骤的优选实施方式如下:
步骤S21、创建工作线程池,注册监控信息并分配连接监控线程。
本发明实施例中,工作线程池会检测当前服务器的CPU核数,如果核数少于设定值,则线程池内线程数为固定值(例如,6),否则指定为核数的指定比例(例如,2/3)。后续说明的其他监控信息也都是自动完成,不参考配置信息情况。
本发明涉及的程序为多线程异步程序,需要利用线程池技术,创建工作线程池,后续不再创建新的线程,所有需要进行多线程并行处理的地方,都从工作线程池里分配线程(工作者线程)。
注册监控信息可以用来监测各线程的运行情况,同时还包括程序自身运行情况,如传输数据量,内存占用情况。
所述注册监控信息可以包括:注册SIGHUP、SIGCHLD、SIGTERM、SIGINT、SIGPIPE信号处理函数等。
步骤S22、结合配置项参数创建态势数据库连接对象,初始化态势数据库环境。
此处需要使用步骤S1中获取的数据库配置信息,包括态势数据库服务器地址、端口、实例名、用户名、密码等。
本发明实施例中,态势数据库连接对象用于后续对态势数据库进行增、删、改、查等操作,是一个连接描述符。
本发明实施例中,初始化态势数据库环境主要是检测态势数据表状态,刷新或态势重建数据表。初始化工作完成后,后续在步骤S9中才能正常对态势数据库进行操作。
具体的,创建数据库连接对象并初始化数据库环境后,设置自动提交标记。检测数据表状态,调用CreateTables脚本建表,或者调用TruncateTables脚本清表,或者加载表内历史数据,然后继续数据采集过程,调用ReCompileInvalidSchema脚本重建失效的触发器、存储过程、视图等数据库内建机制。
步骤S23、结合配置项参数,创建客户端通信对象与服务端通信对象,注册各自对应的地址与端口。此处需要使用步骤S1中获取的态势服务器地址、端口信息。
由于态势服务器执行的是被动等待模式,需要创建客户端通信对象主动连接态势服务器,后续用于接收态势数据。创建服务端通信对象主动推送数据。
具体的,可创建通信对象,设置为客户端模式(即客户端通信对象)。创建另一个/>通信对象,设置为服务器模式(即服务端通信对象)。
步骤S24、从工作线程池中选择一个工作者线程,利用所选择的工作者线程将客户端通信对象与服务端通信对象的回调函数注册给操作系统。
为了使上一步创建的客户端通信对象与服务端通信对象要能够正常工作,客户端通信对象与服务端通信对象都需要将自身的回调函数信息提供给操作系统,以便操作系统在收到对应的信号后,能够调用正确的处理函数。由于采用异步工作模式,因此,此处从工作线程池里分配一个工作者线程来负责这个过程。
具体的,可注册onAccept()、onConnectServer()、onClose()、onReceive()回调函数。分配工作者线程,单开上行和下行态势服务。
步骤S25、根据配置项中的态势服务器的地址和端口,启动客户端通信对象与态势服务器的连接过程,连接后转入连接状态监控回环。
本发明实施例中,根据配置项中的态势服务器数量判断,是否存在多个态势服务器,存在多个态势服务器的情况下,优先连接第一台态势服务器。如果后续过程中,正在连接的态势服务器发生故障,则自动切换到其他备用的态势服务器(也就是其他序号的态势服务器)上。
连接上态势服务器时,可以根据配置项确定相应的态势服务器的地址和端口,正常连接后,会自动按照态势传输协议,转入连接状态监控回环,下载并处理实体态势数据。
具体的,在线程内首先检测服务活跃状态,然后尝试连接态势服务。如果尝试失败,则转而尝试连接下一个态势服务器。连接成功以后,进入套接字循环检测状态。设置SO_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、TCP_KEEPCNT套接字保活标记。同时定期转发心跳包,进行应用层二次保活检测。
此处的步骤S2主要是针对操作系统进行初始化,以便于后续步骤S3~步骤S9的执行。
步骤S3、根据配置项参数挂接网盘服务,并更新仿真时间与词汇表。
本步骤的优选实施方式如下:
步骤S31、结合配置项参数(网盘远端路径和本地挂载路径),执行挂接网盘服务。
具体的,可调用system()执行MOUNT指令挂接网盘。
步骤S32、从工作线程池中分配一个工作者线程用于执行仿真时间更新操作,构造仿真起始时间全局配置路径,或者构建仿真起始时间检查点配置路径,从挂接的网盘中获取时间信息,解析并更新仿真时间。通过以上路径都可以获取仿真起始时间,区别在于前者是全局的,后者是局部的。
具体的,分配的工作者线程称为时间更新工作者线程,构造仿真起始时间全局配置路径,或者构建仿真起始时间检查点配置路径。解析GLO配置文件,将game_start属性赋值给tm对象。调用mktime()转换tm对象为time_t对象。将time_t对象赋值给_tModelStart全局初始时间。随后工作者线程进入循环监测初始时间更改loop。
步骤S33、清空词汇表缓存,结合配置项参数(词汇表路径)从挂接的网盘中读取与解析词汇表;词汇表包括:静态词汇表与动态词汇表。
具体的,清空动态词汇表,清空静态词汇表。构造std::map对象,读取动态词汇表键值对,并存入动态词汇表数组。同样方法解析静态词汇表。上述的std::map对象是一个C语言的内存结构,用来存储键值对类型的数据对象,此处用来存储词汇表,它具有占用资源少,检索效率高的优点。
步骤S3是程序基础数据获取步骤,后续态势数据处理中,每一项态势数据都要根据获取的仿真时间进行时间计算,并参考词汇表进行词汇编码解析。
总体而言,前述步骤S1~步骤S3三个部分都属于准确工作,工作完毕后可以开始下载态势数据,并进行后续处理。
步骤S4、从态势服务器中下载初始化态势数据并解码。
此处是指在前述步骤S25连接态势服务器后下载初始化态势数据。解码相对于编码,即按照计算机网络领域的定义,对待传输的数据按照指定规则进行无损变换,包括底层的傅里叶载波频率变换、载波相位和振幅变换,以及高层的压缩、加密、混淆、报文格式替换等,都属于编码工作。接收到对应的网络报文后,要进行一个反向的操作,得到还原后的原始报文,称为解码。此处的解码下载的初始化态势数据主要是进行报文格式替换等对应的解码操作。
本发明实施例中,连接态势服务器后,首先下载的是初始化态势数据,初始化态势数据是大批量数据;之后,才会转入增量态势数据(新的态势数据)的常规下载与更新过程,也就是后文介绍的步骤S5的过程。
本步骤的优选实施方式如下:
步骤S41、初始化态势数据缓存,设置态势缓存更新指针(即对应的内存地址)。
本发明实施例中,态势数据包括实体态势数据。本领域技术人员可以理解,实体态势数据是仿真领域的专有名词,指代仿真实体当前的各项数据状态,如坐标、速度等。实体态势数据一般用来抽象形容大量实体的态势信息,态势数据包括普通实体态势和仿真状态实体态势两类。
步骤S42、启动初始化下载环境检测过程,输出并清理实体历史信息治理链表。
具体的,设置初始下载标记,检测初始化下载环境,输出实体历史信息治理链表后清空实体历史信息治理链表,同步实体历史状态数组。
步骤S43、启动初始态势数据接收过程,从连接的态势服务器中接收初始态势数据存入客户端通信对象的接收缓冲区(操作系统内分配给网络协议栈的一块特殊内存),并解码出实体信息,再创建实体数据项,并添加到相关数组和列表。
本发明实施例中,通过切割客户端通信对象的接收缓冲区,检测分片头部信息,解码消息类型码,确认消息类型码为初始下载后解码并进行实体信息创建,添加实体信息到相关数组和列表。数组和列表是指各类实体实时信息内存数组,保存全部实体的当前信息,列表指实体信息汇总列表,一个总表供检索使用。
本发明实施例中,切割客户端通信对象的接收缓冲区是指,将客户端通信对象的缓冲区自动切分为报文,解析报文头部后,按照头部中的长度字段,取出对应长度的数据,赋值给当前报文。之后,客户端通信对象会删除掉已经取出的这部分数据。剩下的接收缓冲区数据,又是从一个新报文的报文头部开始的。
具体的,接收BEGINDOWNLOAD标志报文,启动初始数据批量接收过程。通过decode_head解析报文头部信息,并据此将缓冲区切分为不同报文。解码报文类型码,确认为PACKET_DOWNLOAD类型。解码实体信息,创建实体数据项,并添加到相关数组和列表。
步骤S44、接收初始态势数据的同时会接收仿真状态实体,接收初始态势数据完毕后,完成初始化下载标记设置,通过工作者线程(前述步骤S32中分配的线程)处理仿真状态实体,从仿真状态实体中提取最新仿真时间,逐个循环设置数组和列表中各实体数据项的当前仿真时间。
本发明实施例中,每一实体数据项都代表一个实体,更新仿真时间就是更正数据记录中的时间。
本发明实施例中,仿真状态实体是一类特殊的仿真实体,具体描述了仿真当前进行的状态信息,包括当前仿真时间等。这个信息会随着其他实体信息一起,从态势服务器下载给客户端通信对象。这是仿真类软件中常见的一类实体。
具体的,接收ENDDOWNLOAD标志报文,设置_bDownloading完成标志。从SimuState实体信息(仿真实体信息)中提取最新SIMTIME(仿真实体中存储当前仿真时间的具体字段),将最新的仿真时间循环赋值给所有缓存中的实体数据项。
步骤S5、从态势服务器中下载增量态势数据并解码。
此步骤与S4步骤类似,在完成初始态势数据下载后,进入到增量态势数据下载处理过程。所以也需要依赖S1~S3中提前准备好的各类信息。
本步骤的优选实施方式如下:
步骤S51、下载增量态势数据,创建态势处理工厂对象与态势待解析对象。
本发明实施例中,增量态势数据也是实体态势数据,对于每一个接收到的增量态势数据,都要通过工厂对象为它创建一个态势数据项。
工厂对象是程序开发的一种设计模式,凡是按照这种规范编写的代码都称为工厂类、工厂对象。工厂类是一个静态类,在程序载入后创建完毕。态势处理工厂对象就是进行态势数据处理的工厂对象,可以对大批量不同类型的实体态势进行快速统一的处理,代码简洁,逻辑清晰,避免了代码臭味,大大减少了总代码量。此态势处理工厂对象后续主要负责对大批量态势数据进行初步统一处理。
态势待解析对象是一个临时数据结构,后续会将切分后报文中的实体信息提取出来,赋值给这个临时数据结构,等待后续进行解析处理。具体的,可调用createNewDataObject()创建态势待解析对象。
步骤S52、结合态势处理工厂对象与态势待解析对象对增量态势数据进行解码。
本发明实施例中,通过解码增量态势数据的报文,确定实体类型码,根据实体类型码标记相应属性并进行处理,再更新实体信息计数器。其中,通过态势处理工厂对象初步处理增量态势数据,然后通过解析将增量态势数据的报文切分后,报文中的实体信息提取出来,赋值给态势待解析对象,再进行解码并更新实体信息计数器,即解码出具体的实体类型(增、删、改信息),修改对应的实体信息计数器。
本发明实施例中,解析主要指对数据报文进行初步切分,切分成独立的报文。解码指具体解码每一个报文的实体类型,如创建、删除、更新。实体信息计数器用来记录实体数目。
具体的,解码报文类型码,将PACKET_CREATE、PACKET_DELETE、PACKET_UPDATE类型的报文分别标记增、删、改属性,然后分别提交给增、删、改信息处理过程。更新实体信息计数器。
步骤S6、结合词汇表对初始态势数据与增量态势数据的解码结果进行解析,实时更新态势数据缓存,获得更新后的实体历史信息链表与实体信息全局链表。
本发明实施例中,态势数据缓存通过各类实体态势链表组织起来,后续更新各类链表实际是更新态势数据缓存中的数据值。
本步骤紧密依赖于步骤S4与步骤S5,每当一条态势数据下载并解码完毕后,需要把更新态势数据缓存中的内容,也就是以步骤S4与步骤S5输出的解码结果作为输入,更新程序内存中维护的实体列表中的实体信息。
本步骤的优选实施方式如下:根据解码结果,确定实体类型码,若为仿真状态信息(SIMULATION_STATE类型),则转入仿真状态信息更新流程;若为实体信息,则转入实体信息更新流程。
实体信息不足100类。因为仿真状态实体比较特殊,为便于区分,按照仿真状态实体和普通实体两大类进行区分。下面主要针对实体信息更新流程进行介绍。
本发明实施例中,实体包括舰船实体等,实体信息更新流程包括:
步骤S61、创建实体信息结构用于存储实体信息,分配态势缓冲区内存并初始化,将所有实体信息结构加入实体信息链表。
实体信息链表中存储了所有实体的当前信息(即实体信息),各种更新计算,数据库输出等都以实体信息链表为参考基准。在之后的步骤S9执行完毕后,数据均记录在态势数据库中,后续分析人员可以使用各种工具对数据进行分析,此时需要从态势数据库中的实体信息中读取对应数据。
具体的,创建CNaval数据项,分配内存并初始化,随即加入_lsNaval链表。
步骤S62、对于实体信息链表存储的每一实体信息结构,分别解析其中实体信息的头部码,确定ID、类型、视角,分别进行信息更新。
本发明实施例中,实体信息的头部码是记录实体身份信息的头部编码数据结构,解析出ID、类型与视角等信息。
具体的,解析index、type、sideview字段,解析NAVAL_TABLE表结构剩余共计110字段。其中damage_fire_type等字段需要结合步骤S3中的动态词汇表和静态词汇表进行字符串映射。
步骤S63、根据信息更新结果,确定将实体信息拷贝入增加内存链表、删除内存链表,或者修改内存链表中,以及将信息更新结果加入实体历史信息链表。
由于对实体的处理分为生成、消灭、损毁等类,所以对应的实体信息项也分为增加、删除、修改。为加快程序运行速度,并提高数据库执行效率,按照增加、删除、修改将实体信息分为三类,分别记录到不同的内存链表。
具体的,计算sideview内存映射索引,提取索引指针,将insert、update、delete数据项变动信息分别添加到对应的内存数组或链表。
步骤S64、基于拷贝入增加内存链表、删除内存链表,或者修改内存链表,更新实体信息全局链表。
为便于查询分析,所有有具体映射对象的实体信息会汇总到一个实体信息全局链表中,随后输出到数据库。以后凡是查询实体,都可以在实体信息全局链表中查询。同样的,该实体信息全局链表中的数据可分析人员使用。具体的,提取OBJECT_CLASS_NAVAL、实体ID、实体name,更新到全局实体链表。
步骤S7、构建并维护分支树,更新各实体信息的数据段编号。
本步骤的优选实施方式如下:
步骤S71、读取分支树历史记录,构造分支树结构,初始化对应的数据段链表。
分支树历史记录只记录分支树本身的信息,不记录仿真状态,也不记录各种实体信息。而是把他们背后隐含的树形关系提取出来并进行记录。把采集到的数据根据时间的变化,间隔一定时间内的数据划分到一个数据段内。再把每段数据抽象成一个节点,然后这些节点会依据父子关系形成前后相连的树状结构,即为分支树。所以分支树本身的信息就是各个数据段的起止时间、相互间父子关系、当时的仿真时间等历史状态信息。
步骤S72、解析新检查点编号,解析上一检查点编号,解析最新仿真时间与启动类型。
检查点机制是仿真类程序常用的运行控制机制,是一个通用概念。为便于恢复仿真状态,进行分析比较,程序每隔一定时间会生成一个检查点,将程序当前的各种参数和运行状态信息记录进文件。后续读取这个检查点的数据并恢复给仿真程序,就可以重现当时的仿真状态。检查点有很多个,按照顺序从前往后依次编号。
具体的,对于新出现的检查点,解析StartType(启动类型)、nextCheckpoint、lastCheckpoint、simutime,转交后续的分支维护过程。
步骤S73、区分启动类型,若不是直接重新启动,则作分支标记,设置分支点检查点号。
具体的,判断StartType。如果是0号检查点启动,设置分支点为根节点;如果是非直接重新启动,设置分支点为启动检查点。
步骤S74、按照分支点检查点号,检索对应的数据段号,并设为分支起点。
步骤S75、更新数据段编号,检索新数据段对应的父数据段编号,如果检索不到父数据段号,则设置父数据段号为0。
具体的,更新数据段编号,并补充检查点、仿真时间、天文时间属性。通过SearchDataSegmentItemByCheckpointNum()和SearchDataSegmentItemByDataSegmentNum()检索对应的父数据段号。如果检索不到父数据段号,则设置父数据段号为0。
步骤S76、将新数据段添加到分支树,更新并输出各类记录文件(数据段列表、当前分支数据段集合等)。
步骤S77、通告服务端数据段变动情况,包括分支起点和父数据段编号在内的新数据段相关信息。
步骤S78、使用新数据段编号对本数据段内的各实体信息赋值,设为新数据段编号。
因为每个实体信息会带有一个数据段号,在赋值之前就有,称为旧数据段编号。赋值以后变为了新数据段编号。
本发明实施例中,构建并维护构建分支树与前述步骤为并列关系,属于两条处理线路并行推进,步骤S7主要从整体上介绍分枝数的构建与维护方式,更具体的实现方式可参见常规技术。总体来说,前述步骤S71从历史保存的分支树记录文件入手,读取配置信息后,后续结合检查点信息维护更新分支树。当分支树维护完毕后(即步骤S78执行完毕),此时会取出步骤S6中处理完的实体信息,并查询它们归属于分枝数中的具体分支中的具体数据段,然后取出对应的数据段编号,赋值给相应实体信息中的数据段编号字段,完成了实体信息的最终装配和纠错。步骤S9时,更新了数据段编号信息的实体信息会被写入态势数据库,后续按照不同的数据段编号,可以为高层应用提供数据服务。
步骤S8、通过对实体信息进行态势分析,对实体历史信息治理链表进行压减。
本步骤的优选实施方式如下:
步骤S81、依次检索各类实体历史信息治理链表,确定当前ID号的实体的上一状态对应的实体信息,判断当前状态的实体信息是否标记为可压减。
本发明实施例中,ID号是每个实体的编号,是S6出输出结果中的一部分。实体ID在仿真准备阶段,由其他系统工具自动生成,仿真准备阶段为一个特殊阶段,由其他工具完成,本发明直接使用其结果,不参与其准备过程。
当前状态是指最新的状态,与上一状态为相邻的状态,两个状态之间的时间间隔可根据情况确定。两个状态的时间,分别来源于接收到各自数据时的时间,即各自当时的仿真时间。
具体的,根据实体ID,到实体历史信息治理链表_lsDGObject中检索对应的上一状态数据项。设置新数据项压减标记ReduceFlag为可压减。
步骤S82、分析实体是否失能,若属于失能状态,且与上一状态也属于失能状态一致,则标记为可压减;若属于失能状态,且与上一状态不属于失能状态,则标记为不可压减;若不属于失能状态,且与上一状态属于失能状态,则标记为不可压减;若不属于失能状态,且与上一状态也不属于失能状态,则转入下一步。
具体的,分析实体Incapable状态。如果(1)posture为WIPE_OUT或者(2)posture为OUT_OF_GAME同时mission不为OUT_OF_GAME(3)posture为INCAPABLE(4)posture不为WIPE_OUT且不为INCAPABLE同时posture不为OUT_OF_GAME且实体实力为0,则判定实体已处于失能状态。
WIPE_OUT、OUT_OF_GAME、INCAPABLE都是预设的实体状态标志,分别对应于实体的不同数据字段。可以按照字面含义进行理解。实力为0就代表实体没有任何实力了,可以认为已经从仿真中被消除了。
如果当前失能状态与上一状态不一致,则设置ReduceFlag为不可压减。如果当前状态与上一状态均为已失能,则设置ReduceFlag为可压减,并略过后续判断,直接跳转到执行压减步骤。
步骤S83、比较实体姿态:如果当前状态中的姿态与上一状态中的姿态不一致,则标记为不可压减;否则,转入下一步。
步骤S84、计算实体当前状态中的位置与上一状态中的位置的地理距离,如果距离超过设定阈值,则标记为不可压减;否则,转入下一步。
步骤S85、比较实体实力值,如果当前状态中的实力值与上一状态中的实力值不一致,则标记为不可压减;否则,标记为可压减。
其中,上述步骤中所涉及的失能状态、未失能状态、姿态、位置与实力值均属于实体信息。
步骤S86、将标记为可压减的数据项从实体历史信息链表中删除,并同步更新实体历史信息治理链表。
此处的实体历史信息链表是指前述步骤S63更新后的实体历史信息链表,并同步更新前述步骤S42输出的实体历史信息治理链表,且更新后的实体历史信息治理链表在下一个循环中继续使用。
具体的,将可压减数据项从实体历史信息链表_lsHistoryObject中删除;同步更新实体历史信息治理链表_lsDGObject中的状态信息。
步骤S9、结合配置项参数,将压减后的实体历史信息链表以及更新的各实体信息的数据段编号写入态势数据库,同时,将实体信息全局链表写入态势数据库。
本发明实施例中,实体信息全局链表无需进行压减,实体信息全局链表与压减后的实体历史信息链表都独立的输出到态势数据库,后续会在不同的场合分别使用。下面以压减后的实体历史信息链表为例,介绍其写入态势数据库的方式。
步骤S91、首先判断输出态势标记,如果标记为不输出态势,则直接返回。否则,从压减后的实体历史信息链表中逐个取出数据项。判断该实体类型的输出治理结果集标记,如果标记为不输出,则直接转入下一个实体的信息处理。否则,依次取出数据项各属性(包括步骤S7更新的实体信息的数据段编号)。
具体的,从_lsHistoryObject链表中循环取出各数据项,然后取出数据项中prototypeName等子属性,依次对缓冲区中对应的变量赋值。
此处取出的是全部属性数据,使用字符串整型互相转换函数、字符串对象和字符串数组转换函数、直接数值赋值的方式进行赋值。主要涉及到实体链表变量类型到静态数组变量类型的转换。
步骤S92、构造数据库SQL语句,利用取出的数据项各属性通过数组方式对写入缓冲区对应项批量赋值,随后执行批量插入操作。
此处是将上面已经处理好的静态数组中的数据,通过数组的方式批量赋值给数据库对象缓冲区,包含静态数组中已经处理好的全部信息。是从程序内空间向系统lib组件的数据传输。
具体的,可以构造“insert into DG_OBJECT values……”SQL语句,通过调用setDataBuffer()对属性数组批量赋值,然后执行ArrayUpdate()批量插入数据库。
步骤S93、当压减后的实体历史信息链表中的信息全部写入态势数据库后,清空压减后的实体历史信息链表,更新对应ID实体的实体历史信息治理链表中的状态信息。
把已经成功写入数据库的实体记录从链表中删除。把写数据库失败的信息进行标记,按照不同的失败类型,分别进行再次写入,或者重组数据格式后写入,……,或者放弃写入数据库。
具体的,释放_lsHistoryObject链表中各数据项所占内存,设置链表长度为0,更新_lsDGObject链表中相应信息。
图2展示了实现上述方法的系统框架,包括:XML解析模块(执行前述步骤S1)、网络通信库模块(执行前述步骤S2)、态势信息解析分发模块(执行前述步骤S4、S5)、实时信息更新模块(执行前述步骤S6)、分支树维护模块(执行前述步骤S7)、缓存队列管理模块(执行前述步骤S4~S6)、实体态势分析判断模块(执行前述步骤S82~步骤S85)、数据库接口模块和监控调度模块(执行前述步骤S3、S9)。
本发明实施例提供的以上方案,可以实现对实体历史信息的大幅度压减。同时,由于直接写入数据库的就是治理好的数据,后续分析可以直接使用,可以节省掉基于SQL语句进行二次治理的大量开销。基于该方式,所有不是关键节点的实体历史信息都被剔除了。以舰船实体为例,被压减的信息可以为:实体原地不动的间隔采样信息;实体遭受多次打击时,实力发生明显变化的两个节点之间的大量信息;实体由后方区域开赴前方区域,并转变战斗状态,状态转换之间的开进路径上少量关键点以外的大量节点。与原有方法相比,基于总线实时采集的流式治理方法时效性更好,可以做到治理结果实时入库。而原有方式必须等待一段时间(通常为数分钟)才能使用治理结果。数据和分析方法的简约化,既减轻了分析人员的分析工作量,也减轻了系统研发人员的代码开发工作量,解决了原有方式下因数据量大带来的难以分析、难以呈现等问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,包括:
步骤S1、读取配置文件,获取配置项参数;
步骤S2、创建工作线程池并进行监控,结合相关的配置项参数创建态势数据库连接对象以及创建通信库对象并连接态势服务器;
步骤S3、根据配置项参数挂接网盘服务,并更新仿真时间与词汇表,仿真时间用于在态势数据解码时赋值给相关实体信息数据项,词汇表用于解码结果的解析过程;
步骤S4、从态势服务器中下载初始化态势数据并解码;
步骤S5、从态势服务器中下载增量态势数据并解码;
步骤S6、结合词汇表对初始态势数据与增量态势数据的解码结果进行解析,根据解析获得的实体信息,实时更新态势数据缓存,获得更新后的实体历史信息链表与实体信息全局链表;
步骤S7、构建并维护分支树,更新各实体信息的数据段编号;
步骤S8、通过对实体信息进行态势分析,对实体历史信息治理链表进行压减;
步骤S9、结合配置项参数,将压减后的实体历史信息链表以及更新的各实体信息的数据段编号写入态势数据库,同时,将实体信息全局链表写入态势数据库。
2.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述配置项包括:模型服务器地址、端口、想定名称、词汇表路径、网盘远端路径和本地挂载路径;接收态势控制标记、建库标记、清库标记、建表标记、输出态势标记与输出治理结果集标记;态势服务器数量、每台态势服务器的地址和端口;态势数据库服务器地址、端口、实例名、用户名与密码;其中:
模型服务器地址、端口、想定名称、词汇表路径、网盘远端路径和本地挂载路径应用于步骤S3;
态势服务器数量标明系统中配置了的可用的态势服务器的数目;每台态势服务器的地址和端口标明了每台态势服务器的连接信息;态势数据库服务器地址、端口、实例名、用户名与密码标明了态势数据库服务器的连接信息;
接收态势控制标记控制程序是否接收处理态势数据,在后续步骤S4与步骤S5中涉及到接收态势数据,当态势控制标记设置为接收处理时,接收处理对应的态势数据;
建库标记控制是否创建态势数据库,清库标记控制是否截断态势数据库表,建表标记控制是否创建态势数据表,三者应用于步骤S2中;
输出态势标记控制是否输出态势数据,输出治理结果集标记控制是否输出治理后结果数据集,二者应用于步骤S9中。
3.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述创建工作线程池并进行监控,结合相关的配置项参数创建态势数据库连接对象以及创建通信库对象并连接态势服务器包括:
步骤S21、创建工作线程池,注册监控信息并分配连接监控线程;
步骤S22、结合配置项参数,创建态势数据库连接对象,初始化态势数据库环境;
步骤S23、结合配置项参数,创建客户端通信对象与服务端通信对象,注册各自对应的地址与端口。此处需要使用步骤S1中获取的态势服务器地址、端口信息;
步骤S24、从工作线程池中选择一个工作者线程,利用所选择的工作者线程将客户端通信对象与服务端通信对象的回调函数注册给操作系统;
步骤S25、结合配置项参数,启动客户端通信对象与态势服务器的连接过程,连接后转入连接状态监控回环。
4.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述根据配置项参数挂接网盘服务,并更新仿真时间与词汇表包括:
步骤S31、结合配置项参数,执行挂接网盘服务;
步骤S32、从工作线程池中分配一个工作者线程用于执行仿真时间更新操作,构造仿真起始时间全局配置路径,或者构建仿真起始时间检查点配置路径,从挂接的网盘中获取时间信息,解析并更新仿真时间;
步骤S33、清空词汇表缓存,结合配置项参数从挂接的网盘中读取与解析词汇表;词汇表包括:静态词汇表与动态词汇表。
5.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述从态势服务器中下载初始化态势数据并解码包括:
步骤S41、初始化态势数据缓存,设置态势缓存更新指针;
步骤S42、启动初始化下载环境检测过程,输出并清理实体历史信息治理链表
步骤S43、启动初始态势数据接收过程,从连接的态势服务器中接收初始态势数据存入客户端通信对象的接收缓冲区,并解码出实体信息,再创建实体数据项,并添加到相关数组和列表;
步骤S44、接收初始态势数据的同时会接收仿真状态实体,接收初始态势数据完毕后,完成初始化下载标记设置,从仿真状态实体中提取最新仿真时间,逐个循环设置数组和列表中各实体数据项的当前仿真时间。
6.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述从态势服务器中下载增量态势数据并解码包括:
步骤S51、下载增量态势数据,创建态势处理工厂对象与态势待解析对象;
步骤S52、结合态势处理工厂对象与态势待解析对象对增量态势数据进行解码。
7.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述结合词汇表对初始态势数据与增量态势数据的解码结果进行解析,实时更新态势数据缓存,获得更新后的实体历史信息链表与实体信息全局链表:
步骤S61、创建实体信息结构用于存储实体信息,分配态势缓冲区内存并初始化,将所有实体信息结构加入实体信息链表;
步骤S62、对于实体信息链表存储的每一实体信息结构,分别解析其中实体信息的头部码,确定ID、类型、视角,分别进行信息更新;
步骤S63、根据信息更新结果,确定将实体信息拷贝入增加内存链表、删除内存链表,或者修改内存链表中,以及将信息更新结果加入实体历史信息链表;
步骤S64、基于拷贝入增加内存链表、删除内存链表,或者修改内存链表,更新实体信息全局链表。
8.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述构建并维护分支树,更新各实体信息的数据段编号包括:
步骤S71、读取分支树历史记录,构造分支树结构,初始化对应的数据段链表;
步骤S72、对于新检查点编号,解析出启动类型;
步骤S73、区分启动类型,若不是直接重新启动,则作分支标记,设置分支点检查点号;
步骤S74、按照分支点检查点号,检索对应的数据段号,并设为分支起点;
步骤S75、更新数据段编号,检索新数据段对应的父数据段编号,如果检索不到父数据段号,则设置父数据段号为0;
步骤S76、将新数据段添加到分支树,更新并输出各类记录文件;
步骤S77、通告服务端数据段变动情况,包括分支起点和父数据段编号在内的新数据段相关信息;
步骤S78、使用新数据段编号对本数据段内的各实体信息赋值,设为新数据段编号。
9.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述通过对实体信息进行态势分析,对实体历史信息治理链表进行压减包括:
步骤S81、依次检索各类实体历史信息治理链表,确定当前ID号的实体的上一状态对应的实体信息,判断当前状态的实体信息是否标记为可压减;
步骤S82、分析实体是否失能,若属于失能状态,且与上一状态也属于失能状态一致,则标记为可压减;若属于失能状态,且与上一状态不属于失能状态,则标记为不可压减;若不属于失能状态,且与上一状态属于失能状态,则标记为不可压减;若不属于失能状态,且与上一状态也不属于失能状态,则转入下一步;
步骤S83、比较实体姿态:如果当前状态中的姿态与上一状态中的姿态不一致,则标记为不可压减;否则,转入下一步;
步骤S84、计算实体当前状态中的位置与上一状态中的位置的地理距离,如果距离超过设定阈值,则标记为不可压减;否则,转入下一步;
步骤S85、比较实体实力值,如果当前状态中的实力值与上一状态中的实力值不一致,则标记为不可压减;否则,标记为可压减;其中,失能状态、未失能状态、姿态、位置与实力值均属于实体信息;
步骤S86、将标记为可压减的数据项从实体历史信息链表中删除,并同步更新实体历史信息治理链表。
10.根据权利要求1所述的一种基于总线实时采集的高通量实体历史信息流式治理方法,其特征在于,所述结合配置项参数,将压减后的实体历史信息链表以及更新的各实体信息的数据段编号写入态势数据库包括:
步骤S91、判断输出态势标记,如果标记为不输出态势,则直接返回;否则,从压减后的实体历史信息链表中逐个取出数据项;判断相应实体类型的输出治理结果集标记,如果标记为不输出,则直接转入下一个实体的信息处理,否则,依次取出数据项各属性,包括步骤S7更新的实体信息的数据段编号;
步骤S92、构造数据库SQL语句,利用取出的数据项各属性通过数组方式对写入缓冲区对应项批量赋值,随后执行批量插入操作;
步骤S93、当压减后的实体历史信息链表中的信息全部写入态势数据库后,清空压减后的实体历史信息链表,更新对应ID实体的实体历史信息治理链表中的状态信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310478372.4A CN116501767A (zh) | 2023-04-28 | 2023-04-28 | 基于总线实时采集的高通量实体历史信息流式治理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310478372.4A CN116501767A (zh) | 2023-04-28 | 2023-04-28 | 基于总线实时采集的高通量实体历史信息流式治理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116501767A true CN116501767A (zh) | 2023-07-28 |
Family
ID=87317835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310478372.4A Pending CN116501767A (zh) | 2023-04-28 | 2023-04-28 | 基于总线实时采集的高通量实体历史信息流式治理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501767A (zh) |
-
2023
- 2023-04-28 CN CN202310478372.4A patent/CN116501767A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3120261B1 (en) | Dependency-aware transaction batching for data replication | |
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
US7512954B2 (en) | Method and mechanism for debugging a series of related events within a computer system | |
CN107038222B (zh) | 数据库缓存实现方法及其系统 | |
CN110300963A (zh) | 大规模数据储存库中的数据管理系统 | |
CN111949633B (zh) | 一种基于并行流处理的ict系统运行日志分析方法 | |
CN110569214B (zh) | 用于日志文件的索引构建方法、装置及电子设备 | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
US7020659B2 (en) | System and method for managing bi-directional relationships between objects | |
CN111737227A (zh) | 数据修改方法及系统 | |
CN112671878B (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN112559525A (zh) | 数据检查系统、方法、装置和服务器 | |
CN101968747B (zh) | 一种机群应用管理系统及其应用管理方法 | |
CN116501767A (zh) | 基于总线实时采集的高通量实体历史信息流式治理方法 | |
CN113687920B (zh) | 一种分布式系统的对象策略操作方法、装置及设备 | |
CN114519071A (zh) | 规则匹配模型的生成方法、匹配方法、系统、设备和介质 | |
CN109144489B (zh) | 基于Yang语言模型的状态数据处理方法 | |
CN108376104B (zh) | 节点调度方法及装置、计算机可读存储介质 | |
CN110968467A (zh) | 一种gpu和算法的远程自动测试方法 | |
CN117389908B (zh) | 接口自动化测试用例的依赖关系分析方法、系统及介质 | |
CN113553320B (zh) | 数据质量监控方法及装置 | |
CN115242688B (zh) | 一种网络故障检测方法、装置以及介质 | |
CN117729176B (zh) | 基于网络地址和响应体的应用程序接口聚合方法及装置 | |
CN114185937B (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 |