一种隐私计算中间数据流零拷贝装置及方法与流程

文档序号:34841903发布日期:2023-07-21 18:11阅读:41来源:国知局
一种隐私计算中间数据流零拷贝装置及方法与流程

本发明属于隐私计算,具体涉及一种隐私计算中间数据流零拷贝装置及方法。


背景技术:

1、目前已知的各种隐私计算技术,每一种技术都有其具体的应用场景,从而产生独特的安全保护作用。

2、但往往在网络数据传输、节点数据执行时等过程中产生很多效率性问题,同时因为节点内应用层系统与底层系统之间或底层系统与底层系统之间使用了不同的技术或不同的编程语言,造成在节点内系统之间的数据共享过程中损耗了大量的时间和资源,比如把cpu宝贵资源完全浪费在对数据的序列化和反序列化过程。

3、目前已存在得隐私计算技术再大多致力于解决隐私安全问题,没有重点解决数据传输、共享、序列化反序列化上出现得时效性和资源浪费等问题。


技术实现思路

1、针对现有技术的不足,本发明的目的在于提供一种隐私计算中间数据流零拷贝装置及方法,致力于在原有隐私计算技术体系下,进一步提升网络数据传输、节点数据执行、数据序列化反序列化等影响时效性和硬件资源的性能,采用一种在软件层面+内核+硬件+网络传输层面四种层面上进行数据零拷贝的装置,以达到节点内系统之间数据内存共享、网络传输无需序列化反序列化、提升数据执行的执行效率,使得整体系统在整个数据传输、数据共享、数据执行过程中达到数据零拷贝。

2、本发明的目的可以通过以下技术方案实现:

3、一种隐私计算中间数据流零拷贝装置,零拷贝装置包括隐私计算联盟网络模块,所述隐私计算联盟网络模块包括多个节点,节点与节点之间进行隐私计算,节点与节点之间互相传输加密过程数据和中间因子以优化和计算各自节点本地模型与算法。

4、所述节点具有两种服务状态,两种服务状态分别为用户态和内核态,用户态为节点的上层应用程序和底层计算引擎,内核态为节点在硬件上的数据共享流通。

5、进一步的,所述上层应用程序使用java语言实现,底层计算引擎则使用python或rust语言实现。

6、所述上层应用程序部署有用于将本地隐私数据进行数据预处理和转换成内存数据格式的平台应用,转换成内存数据格式使用的转换技术为apachearrow。

7、所述底层计算引擎部署有多种隐私计算底层技术。

8、进一步的,所述上层应用程序和底层计算引擎均通过arrow和相关mmap、sendfile和dma技术充分实现内存共享。

9、所述内核态在硬件层面上使用dma,内核态在指令方面使用mmap和sendfi le+dma方式,内核态在网卡传输数据至外部时,用户态中采用apachearrowf light技术进行网络传输。

10、上述的零拷贝装置的零拷贝方法,其特征在于,所述零拷贝方法包括如下步骤:

11、s1:用户态上层服务转换隐私数据。

12、s2:用户态切换内核态内存映射并落盘。

13、s3:用户态上层调用底层并内存共享数据机制。

14、s4:用户态底层对数据执行计算。

15、s5:用户态切换内核态计算结果内存映射并外部传输。

16、s6:用户态接收传输数据并参与底层运算。

17、进一步的,所述s1的具体操作如下:用户态上层应用程序接入用户的隐私数据,首先需要对隐私数据进行预处理,隐私数据进行预处理的具体方法如下:

18、s11:null值填充,null值使用其他的已知标识符进行代替。

19、s12:同类数据类型筛选组合,对数据集中相同类型的数据进行筛选组合,使相同类型的数据归为一列或邻近的列。

20、int8和int16两类数据类型归为一列,int32、int64规模比较大的列则分别归为一列,突出数据范围计算设计成临近列,float、double列分别归为一列,突出数据范围计算设计成临近列。

21、s13:通过s11和s12进行隐私数据预处理完成之后,使用arrow技术对其进行连续转换在内存上形成列式数据表,记为:arrow_private_data。

22、进一步的,所述s2的具体操作如下:

23、用户态和内核态进行一次的服务状态切换,同时用户态上层应用程序调用mmap指令,将用户态内存缓冲区与内核态的内核缓冲区进行地址映射,内核态内核缓冲区直接共享得到用户态内存缓存区中的arrow_private_data数据。

24、用户态程序将arrow_private_data进行落盘,服务状态切换到内核态,内核态cpu通知dma设备将用户态已写入至用户态内存缓冲区共享到内核缓冲区中的arrow_private_data进行写入落盘至本地磁盘,记为arrow_private_dat a_file。

25、进一步的,所述s3的具体操作如下:

26、用户态中的底层计算引擎对本地隐私数据进行数据计算或模型训练,由用户态上层应用调用发起。

27、用户态与内核态进行一次的服务状态切换,并调用mmap指令,将内核态内核缓冲区与用户态内存缓冲区再次进行地址映射,实现用户态内存缓冲区直接共享得到内核态的内核缓冲区的数据,服务状态切换到内核态后,cpu通过arr ow技术的特性指向到了磁盘中的arrow_private_data_file。

28、内核态读arrow文件时以零拷贝的方式直接写到内核态内存缓冲区,服务状态从内核态切换回用户态,用户态底层计算引擎读用户态内存缓冲区中已经由内核态内核缓冲区共享的arrow_private_data_file数据。

29、用户态底层计算引擎使用python、rust语言编写,使用arrow的python、rust库来进行接收arrow_private_data_file数据。

30、进一步的,所述s4的具体操作如下:

31、用户态底层计算引擎对arrow_private_data_file进行计算,计算过程包括:机器学习、深度学习、数据治理清洗、数据加解密、同态计算。

32、计算过程中会在用户态的内存中输出一份以当前节点计算出来的过程数据、密文数据,过程数据使用同态加密方式进行同态加密。

33、用户态底层计算引擎使用arrow技术对过程数据进行数据连续转换和数据预处理,方式与s1步骤一致,最终得到列式过程数据、列式密文数据,记为arrow_process_encrypt_data、arrow_encrypt_data。

34、进一步的,所述s5的具体操作如下:

35、用户态底层计算引擎将arrow_process_encrypt_data、arrow_encrypt_da ta进行临时性落盘。

36、落盘操作与s2步骤一致,得到arrow_process_encrypt_data_file、arro w_encrypt_data_file,服务状态为内核态,内核态下使用sendfile指令,告知dma并直接通过dma技术将落盘操作中的内核缓冲区的arrow_process_encr ypt_data、arrow_encrypt_data数据收集拷贝至网卡。

37、内核态网卡与用户态flight网络传输协议技术结合将arrow_process_enc rypt_data、arrow_encrypt_data传输至其他节点。

38、进一步的,所述s6的具体操作如下:

39、其他节点内核态的网卡接收到来自外部传输过来的arrow_process_encryp t_data和arrow_encrypt_data的数据,内核态使用sendfile指令,告知dma并直接通过dma技术将网卡中的arrow_process_encrypt_data、arrow_encryp t_data的数据收集拷贝至内核态中的内核缓冲区。

40、内核态通过mmap指令与用户态建立内存地址映射共享关系,将内核态中的内核缓冲区中的arrow_process_encrypt_data、arrow_encrypt_data数据共享至用户态内存缓冲区,状态切换至用户态,用户态的底层计算引擎读取用户态内存缓冲区的arrow_process_encrypt_data、arrow_encrypt_data数据。

41、节点的过程数据和密文数据与其他节点传输过来的arrow_process_encryp t_data、arrow_encrypt_data数据进行融合计算。

42、若节点在内存中的数据有丢失,按照s3步骤的方式进行零拷贝无需反序列化方式读取arrow_process_encrypt_data_file、arrow_encrypt_data_file数据。

43、通过不断的迭代轮询s3-s6步骤对隐私数据进行多节点多方的隐私计算,得到最终的计算结果。

44、本发明的有益效果:

45、1、本发明拷贝方法及装置采用一种在软件层面+内核+硬件+网络传输层面四种层面上进行数据零拷贝的装置,以达到节点内系统之间数据内存共享、网络传输无需序列化反序列化、提升数据执行的执行效率,使得整体系统在整个数据传输、数据共享、数据执行过程中达到数据零拷贝;

46、2、本发明拷贝方法整个过程在基于原有隐私计算技术体系下,提升在网络数据传输、节点数据执行、数据序列化反序列化等影响时效性的过程上进一步提升数据流通效率,在硬件资源上,充分的解放cpu资源,让cpu更多的参与到用户态底层计算引擎中的隐私计算过程,同时在软件方面上数据格式是arro w的列式存储格式,充分的cpu资源和arrow数据格式,让整个隐私计算过程执行效率极大的得到提升。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1