高性能无锁可缩放目标的系统和方法技术方案

技术编号:16644422 阅读:48 留言:0更新日期:2017-11-26 16:46
用于访问存储于数据存储系统的目标中的数据的方法包含:在第一组CPU上运行多个传输线程,其中多个传输线程中的每个包括命令接收机通路和命令发送机通路;在第二组CPU上运行多个数据通路线程,其中多个数据通路线程中的每个包括命令发出通路和命令完成通路;利用传输线程的命令接收通路将I/O命令登记到I/O命令发出队列,并且利用数据通路线程的命令发出通路处理I/O命令;以及利用数据通路线程的命令完成通路,将I/O完成通知登记到I/O完成队列,并且利用传输线程的命令发送机通路,处理I/O完成通知。

System and method for high-performance lock free scalable targets

Contains the method used to access the data stored in the storage system in the target data: run multiple transmission thread in the first set of CPU, each of a plurality of transmission threads include command and command transmitter receiver path access; run multiple threads in the data path of CPU in the second groups, each of which a plurality of data path threads including ordered path and command receiving path will complete access; I/O command I/O command is issued to the registration queue using the transmission thread command, and use the data path thread ordered passage processing I/O command; and the use of data path in order to complete the thread path, I/O notify the registration to the completion of I/O queue, and using the command the transmitter path transmission thread, I/O completion notification.

【技术实现步骤摘要】
高性能无锁可缩放目标的系统和方法相关专利申请的交叉引用本申请要求2016年4月13日提交的美国临时专利申请No.62/322,035的优先权的权益,在此通过引用整体并入该专利申请的公开内容。
本公开一般地涉及数据存储系统,更具体地说,涉及提供高性能无锁可缩放(scalable)目标的系统和方法。
技术介绍
在典型的存储区域网络(SAN)中,通过光纤连接或者交换网络,目标使永久数据存储空间(例如,逻辑单元号(LUN)、命名空间)受一个或者多个启动程序(initiator)的作用。启动程序指启动会话接口(例如,小型计算机系统接口(SCSI)会话)并且发送命令(例如,SCSI命令)的端点。目标指等待启动程序的工作请求并且执行输入/输出(I/O)操作的端点。在通用计算机体系结构的语境下,可以将启动程序称为客户,并且可以将目标称为服务器。单个目标可以服务多个启动程序并且为启动程序提供一个或者多个LUN。目标可以通过双方同意的SAN协议与一个或者多个启动程序通信。SAN协议的例子包含并不局限于:光纤通道协议(FCP)、并行SCSI(pSCSI)、以太网小型计算机系统接口(iSCSI)、Hyper本文档来自技高网...
高性能无锁可缩放目标的系统和方法

【技术保护点】
一种提供高性能无锁可缩放目标方法,包括:接收命令,以访问存储于数据存储系统的目标中的数据,其中所述数据存储系统包含多个CPU;在所述多个CPU的第一组CPU上运行多个传输线程,其中所述多个传输线程中的每个包括命令接收机通路和命令发送机通路;在所述多个CPU的第二组CPU上运行多个数据通路线程,其中所述多个数据通路线程中的每个包括命令发出通路和命令完成通路;利用传输线程的所述命令接收通路将I/O命令登记到I/O命令发出队列,并且利用数据通路线程的所述命令发出通路处理所述I/O命令;以及利用所述数据通路线程的所述命令完成通路,将I/O完成通知登记到I/O完成队列,并且利用所述传输线程的所述命令发送...

【技术特征摘要】
2016.04.13 US 62/322,035;2016.07.13 US 15/209,5661.一种提供高性能无锁可缩放目标方法,包括:接收命令,以访问存储于数据存储系统的目标中的数据,其中所述数据存储系统包含多个CPU;在所述多个CPU的第一组CPU上运行多个传输线程,其中所述多个传输线程中的每个包括命令接收机通路和命令发送机通路;在所述多个CPU的第二组CPU上运行多个数据通路线程,其中所述多个数据通路线程中的每个包括命令发出通路和命令完成通路;利用传输线程的所述命令接收通路将I/O命令登记到I/O命令发出队列,并且利用数据通路线程的所述命令发出通路处理所述I/O命令;以及利用所述数据通路线程的所述命令完成通路,将I/O完成通知登记到I/O完成队列,并且利用所述传输线程的所述命令发送机通路,处理所述I/O完成通知,其中所述I/O命令发出队列包括第一阵列队列,并且所述第一阵列队列中的每个对应于第一组CPU中各自的CPU,以及其中所述I/O完成队列包括第二阵列队列,并且所述第二阵列队列中的每个对应于所述第二组CPU中各自的CPU。2.根据权利要求1所述的方法,其中所述传输线程包括接收机和发送机,并且其中所述接收机将所述I/O命令发送到所述数据通路。3.根据权利要求2所述的方法,其中所述数据通路线程将所述I/O命令发送到所述目标并且接收来自所述目标的状态和/或者数据,并且将所述状态和/或者数据发送到所述传输线程的所述发送机。4.根据权利要求1所述的方法,其中所述第一阵列队列包括对应于对所述数据通路线程分配的所述第二组CPU的数量的第一数量的节点。5.根据权利要求4所述的方法,其中所述第一数量的节点包括头节点、尾节点和指向所述第一阵列队列中的队列的当前节点,并且其中从所述当前节点到所述尾节点中的节点由消费者拥有,并且所述第一阵列队列的所述剩余节点由生产者拥有。6.根据权利要求5所述的方法,其中所述生产者是启动程序,并且所述消费者是目标。7.根据权利要求6所述的方法,其中利用对所述数据通路线程中的每个是唯一的线程标识符,所述消费者获得对所述队列的排他性访问。8.根据权利要求1所述的方法,其中所述第二阵列队列包括对应于对所述传输线程分配的所述第一组CPU的数量的第二数量的节点。9.根据权利要求8所述的方法,其中所述第二数量的节点包括头节点、尾节点和指向所述第二阵列队列中的队列的当前节点,并且从所述当前节点到所述尾节点中的节点由消费者拥有,并且所述第一阵列队列的所述剩余节点由生产者拥有。10.根据权利要求9所述的方法,其中所述生产者是所述目标,并且所述消费者是所述启动程序。11.根据权利要求10所述的方法,其中利用对所述传输线程中的每个是唯一的线程标识符,所述消费者获得对所述队列的排他性访问。12.根据权利要求1所述的方法,其中所述I/O命令发出队列和所述I/O完成队列中的每个是多生产者多消费者(MPMC)无锁队列,其中来自一个或者多个传输线程的工作请求能够到达特定数据通路线程,并且来自特定传输线程的工作请求能够到达一个或者多个数据通路线程,并且其中来自一个或者多个数据通路线程的工作请求能够到达特定传输线程,并且来自特定数据通路线程的工作请求能够到达一个或者多个传输线程。13.一种数据存储系统包括:多个CPU;多个目标...

【专利技术属性】
技术研发人员:VBP戈拉普迪V贾库拉
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1