CN104995895B - 兼容扩展卸载令牌大小 - Google Patents

兼容扩展卸载令牌大小 Download PDF

Info

Publication number
CN104995895B
CN104995895B CN201380065507.9A CN201380065507A CN104995895B CN 104995895 B CN104995895 B CN 104995895B CN 201380065507 A CN201380065507 A CN 201380065507A CN 104995895 B CN104995895 B CN 104995895B
Authority
CN
China
Prior art keywords
token
data
unloading
sub
bigger
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
Application number
CN201380065507.9A
Other languages
English (en)
Other versions
CN104995895A (zh
Inventor
D.L.格林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104995895A publication Critical patent/CN104995895A/zh
Application granted granted Critical
Publication of CN104995895B publication Critical patent/CN104995895B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

这里所描述的主题的各方面涉及卸载技术。在各方面中,描述了一种允许卸载提供器使用更大令牌的机制。该更大令牌可以是物理的或虚拟的。响应于卸载读取命令,可以创建更大令牌并且来自该更大令牌的数据可以被分割或注入到多个更小大小的令牌中。响应于卸载写入命令,来自多个令牌的数据可以被组合到更大令牌中和/或被提取并用来获得块数据。

Description

兼容扩展卸载令牌大小
背景技术
一种用于传输数据的机制是将数据从源位置的文件读取到主存储器并且将该数据从主存储器写入到目的地位置。而在一些环境中,这对于相对少量的数据尚且能够令人接受地进行工作,但是随着数据的增加,用来读取数据并且将数据传输至另一个位置所需的时间也有所增加。此外,如果通过网络访问数据,则网络可能会对从源位置向目的地位置传输数据施加额外的延迟。此外,与存储部署形式的复杂度相伴的安全性问题可能使数据传输复杂化。
这里所请求保护的主题并不局限于解决任意缺陷或者仅在诸如以上所描述的那些的环境中进行操作的实施例。相反,提供该背景技术仅是为了对可以在其中实践这里所描述的一些实施例的一个示例性技术领域进行说明。
发明内容
简言之,这里所描述的主题的各方面涉及卸载技术。在各方面中,描述了一种允许卸载提供器使用更大令牌的机制。该更大令牌可以是物理的或虚拟的。响应于卸载读取命令,可以创建更大令牌并且来自该更大令牌的数据可以被划分或注入到多个更小大小的令牌中。响应于卸载写入命令,来自多个令牌的数据可以被组合到更大令牌中和/或被提取并用来获得块数据。
提供该发明内容以简要介绍在下文的具体实施方式中进一步描述的主题的一些方面。该发明内容并非意在标示出所请求保护的主题的关键要素或必要特征,其也并非意在被用来限制所请求保护的主题的范围。
除非在上下文中明确以其它方式有所指出,否则短语“这里所描述的主题”是指在具体实施方式中所描述的主题。术语“方面”应当被理解为“至少一个方面”。标示出在具体实施方式中所描述的主题的各方面并非意在标示出所请求保护的主题的关键要素或必要特征。
以上所描述的各方面以及这里所描述的主题的其它方面通过示例进行说明而且并不在附图中有所限制,其中同样的附图标记指示相似的要素,并且其中。
附图说明
图1是表示这里所描述的主题的各方面可以整合于其中的示例性通用计算环境的框图;
图2-4是表示这里所描述的主题的各方面可以在其中进行操作的系统的组件的示例性部署形式的框图;
图5是图示出用于表示依据这里所描述的主题的各方面的具有一个或多个更小子令牌的一个更大令牌的一种示例性方案的示图;
图6是表示这里所描述的主题的各方面可以在其中进行操作的系统的组件的示例性部署形式的框图;以及
图7-9是总体上表示可以依据这里所描述的主题的各方面而发生的示例性动作的流程图。
具体实施方式
除非在上下文中明确以其它方式有所指出,否则短语“这里所描述的主题”是指在具体实施方式中所描述的主题。术语“方面”应当被理解为“至少一个方面”。标示出在具体实施方式中所描述的主题的各方面并非意在标示出所请求保护的主题的关键要素或必要特征。
如这里所使用的,术语“包括”及其变化形式要被理解为表示“包括但并不局限于”的开放式术语。除非在上下文中明确以其它方式有所指出,否则术语“或”要被理解为“和/或”。术语“基于”要被理解为“至少部分基于”。术语“一个实施例”和“实施例”要被理解为“至少一个实施例”。术语“另一个实施例”要被理解为“至少一个其它实施例”。
如这里所使用的,诸如“一”、“一个”和“那个”之类的术语包含了一个或多个所指出的事项或动作。特别地,在权利要求中,对于事项的引用通常意味着存在至少一个这样的事项并且对于动作的引用意味着执行该动作的至少一个实例。
有时在这里可以使用术语“第一”、“第二”、“第三”等。在没有另外的上下文的情况下,这些术语在权利要求中的使用并非意在暗示排序,而是被用于标示的目的。例如,短语“第一版本”和“第二版本”并非必然意味着第一版本就是第一个版本或者在第二版本之前创建或者甚至第一版本在第二版本之前被请求或操作。相反,这些短语被用来标示出不同的版本。
标题仅是为了便利;在其标题指示该主题的部分之外可以找到有关给定主题的信息。
以下可以包括明确及隐含的其它定义。
示例性操作环境
图1图示了可以在其上实施这里所描述的主题的各方面的适当计算系统环境100的示例。计算系统环境100仅是适当计算环境的一个示例而并非意在对这里所描述的主题的各方面的使用或功能性的范围建议任何限制。计算环境100也不应当被解释为具有与示例性操作环境100中所图示的任意一个组件或组件组合相关的任何依赖性或要求。
这里所描述的主题的各方面可利用多种其它通用或专用计算系统环境或配置进行操作。可适于与这里所描述的主题的各方面一起使用的公知计算系统、环境或配置的示例包括个人计算机、服务器计算机——无论是在裸金属上还是作为虚拟机——手持或膝上设备、多处理器系统、基于微控制器的系统、机顶盒、可编程和不可编程的消费者电器、网络PC、小型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒的电器、媒体中心或其它电器、车载或与之相连的计算设备、其它移动设备,包括蜂窝电话、无线电话和有线电话的电话设备、包括任意以上系统或设备的分布式计算环境,等等。
这里所描述的主题的各方面可以在诸如由计算机所执行的程序模块之类的计算机可执行指令的一般语境中进行描述。通常,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这里所描述的主题的各方面还可以在分布式计算环境中进行实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储媒体中。
可替换地或除此之外,这里所描述的功能性可以至少部分由一个或多个硬件逻辑组件所执行。例如而并非作为限制,能够使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序特定集成电路(ASIC)、程序特定标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。
参考图1,用于实施这里所描述的主题的各方面的示例性系统包括以计算机110形式的通用计算设备。计算机可以包括能够执行指令的任意电子设备。计算机110的组件可以包括处理单元120、系统存储器130以及将包括系统存储器的各种系统组件耦合到处理单元120的一个或多个系统总线(由系统总线121表示)。系统总线121可以是使用任意各种总线架构的任意若干类型的总线结构,包括存储器总线或存储器控制器、外围总线以及局部总线。作为示例而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、也被称作Mezzanine总线的外围组件互连(PCI)总线、外围组件互连扩展(PCI-X)总线、先进图形端口(AGP)和PCI express(PCIe)。
处理单元120可以连接至硬件安全设备122。安全设备122可以存储并且能够生成加密密钥,后者可以被用来保护计算机110的各个方面。在一个实施例中,安全设备122可以包括信任平台模块(TPM)芯片、TPM安全设备等。
计算机110通常包括各种计算机可读媒体。计算机可读媒体可以是计算机110能够访问的任意可用媒体并且包括易失性和非易失性媒体以及可移动和非可移动媒体。作为示例而非限制,计算机可读媒体可以包括计算机存储媒体和通信媒体。
计算机存储媒体包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任意方法或技术所实施的易失性和非易失性、可移动和非可移动媒体。计算机存储媒体包括RAM、ROM、EEPROM、固态存储、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁性盒带、磁带、磁盘存储或其它磁性存储设备、或者能够被用来存储所期望的信息并且能够由计算机110所访问的任意其它介质。计算机存储媒体并不包括通信媒体。
通信媒体通常以诸如载波或其它传输机制的调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任意信息传递媒体。术语“调制数据信号”意味着其一个或多个特征以在信号中编码信息的这样的方式进行设置或改变的信号。作为示例而非限制,通信媒体包括诸如有线网络或直接有线连接的有线媒体,以及诸如声音、RF、红外和其它无线媒体的无线媒体。以上的任意组合也应当包括在计算机可读媒体的范围之内。
系统存储器130包括以易失性和/或非易失性存储器的形式的计算机存储媒体,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。包含有助于诸如在启动期间在计算机110内的元件之间传输信息的基本例程的基本输入/输出系统133(BIOS)通常被存储在ROM131中。RAM 132通常包含可由处理单元120立即访问和/或当前在其上进行操作的数据和/或程序模块。作为示例而非限制,图1图示了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可以包括其它可移动/非可移动、易失性/非易失性计算机存储媒体。仅作为示例,图1图示了从非可移动、非易失性磁性媒体进行读取或对其写入的硬盘驱动器141,从可移动、非易失性磁盘152进行读取或对其写入的磁盘驱动器151,以及从诸如CDROM、DVD或其它光学媒体的可移动、非易失性光盘156进行读取或对其写入的光盘驱动器155。能够在示例性操作环境中使用的其它可移动/非可移动、易失性/非易失性计算机存储媒体包括磁性带盒、闪存卡和其它固态存储设备、数字多功能盘、其它光盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器141可以通过接口140连接到系统总线121,并且磁盘驱动器151和光盘驱动器155可以通过诸如接口150的可移动非易失性存储器的接口连接至系统总线121。
以上所讨论并且在图1中图示的驱动器及其相关联的计算机存储媒体为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,硬盘驱动器141被图示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被给予不同数字而以最低限度图示它们为不同副本。
用户可以通过诸如键盘162和定点设备161的输入设备向计算机110中录入命令和信息,所述定点设备161一般被称为鼠标、轨迹球或触摸板。其它输入设备(未示出)可以包括麦克风(例如用于输入语音或其它音频)、操控杆、游戏垫、卫星碟形天线、扫描仪、触摸敏感屏幕、书写板、相机(例如用于输入手势或其它视觉输入)等。这些和其它输入设备经常通过耦合至系统总线的用户输入接口160而连接至处理单元120,但是可以通过其它接口和总线结构进行连接,诸如并行端口、游戏端口或通用串行总线(USB)。
通过使用一个或多个以上所标示的输入设备,可以建立自然用户界面(NUI)。NUI可以依赖于话音识别、触摸和输入笔识别、屏幕上和接近屏幕的手势识别、空中手势、头部和眼部追踪、语音和话音、视觉、触摸、手势、机器智能等。可以被用来与用户进行交互的一些示例性NUI技术包括触摸敏感显示器、语音和话音识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统、RGB相机系统以及它们的组合)的运动手势检测、使用加速计/陀螺仪的运动手势检测、面部识别、3D显示器、头部、眼部和注视追踪、沉浸式增强现实和虚拟现实系统、以及用于使用电场感测电极感测脑部活动的技术(EEG和相关方法)。
监视器191或其它类型的显示设备也经由诸如视频接口190的接口连接至系统总线121。除了监视器之外,计算机还可以包括诸如扬声器197和打印机196的其它外围输出设备,它们可以通过输出外围接口195进行连接。
计算机110可以使用到诸如远程计算机180的一个或多个远程计算机的逻辑连接而在联网环境中进行操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它普通网络节点,并且通常包括以上关于计算机110所描述的许多或全部元件,虽然在图1中已经仅图示了存储器存储设备181。图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是还可以包括电话网络、近场网络和其它网络。这样的联网环境在办公室、企业范围内的计算机网络、企业内部网和互联网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接到LAN171。当在WAN联网环境中使用时,计算机110可以包括调制解调器172或其它器件以便通过诸如互联网的WAN 173建立通信。可以处于内部或外部的调制解调器172可以经由用户输入接口160或其它适当机制连接到系统总线121。在联网环境中,关于计算机110所描绘的程序模块或者其一部分可以存储在远程存储器存储设备中。作为示例而非限制,图1将远程应用程序185图示为处于存储器设备181上。将要意识到的是,所示出的网络连接是示例性的并且可以使用在计算机之间建立通信链路的其它手段。
卸载读取和写入
如之前所提到的,一些传统的数据传输操作可能并非是高效的或者甚至无法在如今的存储环境中进行工作。
图2-4和6是表示这里所描述的主题的各方面可以在其中进行操作的系统的组件的示例性部署形式的框图。图2-4和6中所图示的组件是示例性的而并非意味着全部包含了可能需要或包括的组件。在其它实施例中,结合图2-4和6所描述的组件和/或功能可以包括在(示出或未示出的)其它组件中或者被置于子组件之中而并不背离这里所描述的主题的各方面的精神或范围。在一些实施方式中,结合图2-4和6所描述的组件和/或功能可以跨多个设备进行分布。
转向图2,系统205可以包括启动器210、数据访问组件215、(多个)令牌提供器225、存储装置220以及其它组件(未示出)。系统205可以经由一个或多个计算设备来实施。这样的设备例如可以包括个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费者电器、网络PC、小型计算机、大型计算机、电话、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒的电器、媒体中心或其它电器、车载或与之相连的计算设备、其它移动设备、包括任意以上系统或设备的分布式计算环境,等等。
在系统205包括单个设备的情况下,可以被配置为用作系统205的示例性设备包括图1的计算机110。在系统205包括多个设备的情况下,该多个设备中的一个或多个可以包括图1的计算机110,其中该多个设备可以以类似或不同的方式进行配置。
数据访问组件215可以被用来向存储装置220以及从存储装置220传送数据。数据访问组件215例如可以包括以下中的一个或多个:I/O管理器、过滤器、驱动器、文件服务器组件、存储域网络(SAN)或其它存储设备上的组件、以及其它组件(未示出)。如这里所使用的,SAN例如可以被实施为表现出逻辑存储目标的设备、包括这样的设备的通信网络,等等。
在一个实施例中,数据访问组件可以包括给出检验启动器210和存储装置220之间的I/O的机会并且能够改变、完成I/O或使其无效或者基于此执行其它动作或不执行动作的任意组件。例如,在系统205处于单个设备上的情况下,数据访问组件215可以包括启动器210和存储装置220之间的I/O栈中的任意对象。在系统205由多个设备所实施的情况下,数据访问组件215可以包括托管启动器210的设备上的组件、针对存储装置220提供访问的设备上的组件和/或其它设备上的组件,等等。在另一个实施例中,数据访问组件215可以包括由通过其进行I/O的组件所使用的任意组件(例如,诸如服务、数据库等),即使数据并未流过所使用的组件。
如这里所使用的, 术语组件要被理解为包括诸如设备的部分或全部的硬件,一个或多个软件模块的集合或者其部分,一个或多个软件模块或者其部分以及一个或多个设备或者其部分的某种组合,等等。组件可以包括代码或者由代码所表示。
如这里所使用的,术语计算机代码要被理解为包括指示计算机所要采取的动作的指令。这些指令可以包括在易失性或非易失性的任意计算机可读媒体中。
在一个实施例中,存储装置220是能够存储数据的任意存储媒体。存储装置220可以包括易失性存储器(例如,高速缓存)和非易失性存储器(例如,持久性存储)。术语数据要被宽泛地理解为包括可由一个或多个计算机存储元件所表示的任意内容。在逻辑上,数据可以被表示为易失性或非易失性存储器中的一系列1和0。在具有非二进制存储介质的计算机中,数据可以根据存储介质的容量进行表示。数据可以被组织为不同类型的数据结构,包括诸如数字、字母等的简单数据类型,分层、链接或其它相关数据类型,包括多种其它数据结构或简单数据类型的数据结构,等等。数据的一些示例包括信息、程序代码、程序状态、程序数据、命令、其它数据等。
存储装置220可以包括硬盘存储装置、固态、或其它非易失性存储装置、诸如RAM的易失性存储装置、其它存储装置,以上的一些组合等,并且可以跨多个设备(例如,多个SAN、多个文件服务器、异类设备的组合等)进行分布。用来实施存储装置220的设备可以在物理上位于一起(例如,处于单个设备上,在数据中心,等等)或者在地理上进行分布。存储装置220可以以分层存储部署形式或非分层存储部署形式进行部署。存储装置220可以是外部的、内部的,或者包括处于实施系统205的一个或多个设备的内部和外部的组件。存储装置220可以是格式化的(例如,利用文件系统)或者是未格式化的(例如,原始的)。
在另一个实施例中,存储装置220可以被实施为存储容器而不是直接物理存储装置。存储容器例如可以包括文件、卷、盘、虚拟盘、逻辑单元、逻辑盘、可写入复制、卷快照、逻辑盘快照、物理盘、固态存储(SSD)、硬盘、数据流、交替数据流、元数据流等。例如,存储装置220可以由具有多个物理存储设备的服务器来实施。在该示例中,服务器可以呈现接口,该接口允许数据访问组件访问使用服务器的一个或多个物理存储设备或者其一部分所实施的存储的数据。
可以针对任何任意深度重复抽象的层级。例如,向数据访问组件215提供存储容器的服务器也可以依赖于存储容器来访问数据。
在另一个实施例中,存储装置220可以包括向可能在非易失性存储装置中持久保存或者在非易失性存储装置中并非持久保存的数据之中提供视图的组件。
一个或多个数据访问组件215可以处于托管启动器210的装置上,而一个或多个其它数据访问组件215可以处于托管存储装置220或针对其提供访问的装置上。例如,如果启动器210是在个人计算机上执行的应用,则一个或多个数据访问组件215可以处于该个人计算机上所托管的操作系统中。其示例在图3中图示。
作为另一个示例,如果存储装置220由存储域网络(SAN)所实施,则一个或多个数据访问组件215可以实施管理存储装置220和/或对其提供访问的存储操作系统。当启动器210和存储装置220托管于单个装置之中时,所有或许多数据访问组件215也可以处于该装置上。
卸载读取允许启动器获得表示存储的数据的令牌。使用该令牌,该启动器或另一个启动器可以请求卸载写入。卸载写入允许启动器使卸载提供器写入该令牌所表示的一些或全部数据。
在一个实施例中,令牌包括经由成功的卸载读取所获取的加密安全数。此时,加密安全数的一个示例是以适当方式所生成的256位数(例如,经由通过对一些随机物理现象进行采样而创建随机数)。用于生成加密安全数的一些示例性过程在请求注解(Request forComments, RFC)1750中描述。随着技术发展,安全数的长度以及用来生成加密安全数的过程可能发生变化而并不背离这里所描述的主题的各方面的精神或范围。
令牌表示只要该令牌有效就不会改变的数据。令牌所表示的数据有时被称作块数据。
卸载提供器是对与令牌相关联的数据提供间接访问的实体(可能包括跨多个设备扩展的多个组件)。在逻辑上,卸载提供器能够执行卸载读取和/或卸载写入。在物理上,卸载提供器可以由一个或多个数据访问组件215和令牌提供器来实施。
在提供卸载读取或卸载写入服务时,卸载提供器可以在逻辑上对存储的数据和/或与令牌提供器相关联的令牌执行操作。例如,对于卸载读取而言,卸载提供器可以在逻辑上将数据从由存储的数据所支持的逻辑存储容器复制到令牌(其也可以由存储的数据所支持)之中,而对于卸载写入而言,卸载提供器可以在逻辑上将数据从令牌复制到由存储的数据所支持的逻辑存储容器。
卸载提供器可以从源存储装置传输数据,将数据写入到目的地存储装置,并且维护要在接收与数据相关联的令牌时提供的数据。在一些实施方式中,卸载提供器可以在数据已经在逻辑上被写入到目的地存储装置之后指示卸载写入命令完成。此外,卸载提供器可以指示卸载写入命令完成,但是推迟在物理上写入与卸载写入相关联的数据直至便利之时。
在一些实施方式中,卸载提供器可以在第一逻辑存储容器和第二逻辑存储容器之间共享数据,并且可以在令牌和存储容器之间共享数据。卸载提供器可以作为针对存储的物理存储位置执行写入的一部分而停止共享数据,否则这将会导致多于一个的存储容器被修改,或者将会导致令牌所表示的数据发生改变。
在一些实施方式中,卸载提供器可以通过发起令牌和存储容器之间的数据共享而执行从存储容器到令牌的逻辑复制或者从令牌到存储容器的逻辑复制。例如,卸载提供器可以通过发起源存储容器和令牌之间的数据共享而通过将数据从源存储容器逻辑复制到令牌来执行卸载读取。在另一个示例中,卸载提供器可以通过发起令牌和目的地存储容器之间的数据共享而通过将数据从令牌逻辑复制到目的地存储容器来执行卸载写入。
在一些实施方式中,卸载提供器可以使令牌无效以便例如避免共享数据和/或避免在物理上复制数据。例如,卸载提供器可以通过更新目的地存储容器的数据结构以指向令牌所引用的存储的物理存储位置而通过将数据从令牌逻辑复制到目的地存储容器来执行卸载写入,并且与之相结合地,在逻辑上使该令牌的至少一部分无效。注意到,这可能仍然会导致源和目的地存储容器共享数据。
在一些实施方式中,卸载提供器可以在已经共享数据的所有令牌和存储容器以及除此之外的另一个存储容器和令牌之中发起数据存储位置的共享。例如,为了提供卸载读取服务,卸载提供器可以在源存储容器和令牌之间发起共享。随后,为了使用该令牌提供卸载写入服务,卸载提供器可以在源存储容器、令牌和目的地存储容器之中发起共享。如果令牌在随后被无效,则与该令牌的共享被停止,但是源和目的地存储容器之间的共享可以继续(例如,直至接收到指向该数据的写入)。
如这里所使用的,在一种实施方式中,令牌提供器是卸载提供器的一部分。在该实施方式中,在令牌提供器被描述为执行动作的情况下,所要理解的是,包括令牌提供器的卸载提供器在执行那些动作。在另一种实施方式中,令牌提供器可以与卸载提供器分离。
为了发起存储装置220的数据的卸载读取,启动器210可以使用预定义命令(例如,经由API)发送请求以获得表示该数据的令牌。作为响应,一个或多个数据访问组件215可以通过提供表示数据或其子集的一个或多个令牌而对启动器210进行响应。令牌可以由被用来表示不可变数据的字节序列来表示。该不可变数据的大小可以与令牌为相同大小、更大或更小。
利用令牌,启动器210可以请求该令牌所表示的数据的全部或一部分被逻辑写入。有时在这里,该操作被称作卸载写入。启动器210可以通过将令牌连同一个或多个偏移量和长度一起发送至数据访问组件215来进行该操作。
数据访问组件215可以被实施为存储栈,其中该栈的每一层可以执行不同功能。例如,数据访问组件可以划分数据、对卸载读取或写入请求进行分割、高速缓存数据、验证数据、对数据进行快照等。
该栈的一层或多层可以与令牌提供器相关联。令牌提供器可以包括一个或多个组件,其可以生成或获取表示存储装置220的数据的一部分的令牌并且将这些令牌提供至启动器。
对于卸载写入的一部分而言,针对所涉及的令牌,可以指示令牌相对偏移量以及目的地相对偏移量。任一个或两个偏移量可以是隐含或明确的。令牌相对偏移量例如可以表示从令牌所表示的数据的开头的字节(或其它单位)的数量。目的地相对偏移量可以表示从目的地上的数据的开头的字节(或其它单位)的数量。
如果数据访问组件215使得卸载读取或写入无效,则可以返回允许另一个数据访问组件或启动器尝试用于读取或写入数据的另一种机制的错误代码。
图3是总体上表示其中令牌提供器由托管存储装置的设备所托管的系统的组件的示例性部署形式的框图。如所图示的,系统305包括图2的启动器210和存储装置220。图3的数据访问组件215在处于托管启动器210的设备330上的数据访问组件310与处于托管存储装置220的设备335上的数据访问组件315之间进行划分。在另一个实施例中,其中存储装置220处于设备335的外部,可能存在向存储装置220提供访问的另外的数据访问组件。
设备335可以被认为是卸载提供器的一个示例,因为该设备包括用于执行卸载读取和写入以及管理令牌的组件。
令牌提供器320可以生成令牌、使令牌生效并且使其无效。例如,当启动器210请求针对存储装置220上的数据的令牌时,令牌提供器320可以生成表示该数据的令牌。该令牌随后可以经由数据访问组件310和315被发送回到启动器210。
与生成该令牌相结合地,令牌提供器320可以在令牌存储装置325中创建条目。该条目可以将该令牌与指示能够在存储装置220上的何处找到该令牌所表示的数据的数据相关联。该条目还可以包括在管理令牌时所使用的其它数据,诸如何时使令牌无效、令牌存活的时间、其它数据等。
当启动器210或任意其它实体向令牌提供器320提供令牌时,令牌提供器320可以在令牌存储装置325中执行查找以确定该令牌是否存在。如果令牌存在并有效,则令牌提供器320可以向数据访问组件315提供位置信息以使得这些组件可以在逻辑上被读取或写入或者利用所请求的数据在逻辑上执行其它操作。
在类似于图3的另一种示例性部署形式中,令牌提供器320和令牌存储装置325可以包括在设备330中,并且数据访问组件310连接至令牌提供器320。例如,设备330的操作系统(OS)可以包括令牌提供器320和令牌存储装置325。在该示例中,启动器210可以假设存在令牌提供器和令牌存储装置以用于启动器210所执行的所有复制。利用该假设,启动器210可以被实施为省略退回至正常读取和写入的代码。
在以上示例中,该OS可以通过在逻辑上从数据访问组件315读取所请求的数据并且将该数据存储在设备330的存储装置(易失性或非易失性)中,创建新的令牌值,并且将新创建的令牌值与所读取的数据相关联而实施卸载读取。该OS可以通过将与令牌相关联的数据复制(例如,逻辑写入)到启动器210所指定的目的地来实施卸载写入。在该示例中,启动器210可能需要在一些情形中重新尝试卸载读取步骤处的复制,但是该重新尝试与退回正常读取和写入相比对于启动器而言可能并不太麻烦。
图4是总体上表示可以在其中实施这里所描述的主题的各方面的另一种示例性环境的框图。如所图示的,该环境包括源启动器405、目的地启动器406、源存储容器410、目的地存储容器411、源物理存储装置415、目的地物理存储装置416、卸载提供器420,并且可以包括其它组件(未示出)。
源启动器405和目的地启动器可以以类似于图2的启动器210的方式来实施。源启动器405和目的地启动器406可以是两个单独实体或者是单个实体。
如果源存储容器410和目的地存储容器411由单个系统所实施,则卸载提供器420可以被实施为实施存储容器的系统的一个或多个组件。如果源存储容器410和目的地存储容器411由不同系统所实施,则卸载提供器420可以被实施为跨实施存储容器的系统进行分布的一个或多个组件。
此外,可能存在存储容器和物理存储装置的多于两个的实例。例如,对于从源所获得的给定令牌,可能有多于一个的指定目的地。例如,可以发出指向单个令牌的多个卸载写入,并且每个卸载写入可以成功地以卸载提供器420已知的任意目的地为目标。
源物理存储装置415和目的地物理存储装置416可以是相同存储装置或不同存储装置。这些物理存储装置对返回源和目的地存储容器的物理数据进行存储,并且还可以返回令牌所表示的数据。
虽然被图示为仅具有启动器和物理存储装置之间的一个存储容器,但是如之前所提到的,在其它实施例中,在启动器和物理存储装置之前可能存在存储容器的多个层。
源启动器405可以通过发出卸载读取而获得令牌。作为响应,卸载提供器420可以生成令牌并且将其提供至源启动器405。
如果源启动器405和目的地启动器406是单独实体,则源启动器405可以向目的地启动器406提供令牌。目的地启动器406随后可以使用该令牌向目的地存储容器411发出卸载写入。
在接收卸载写入请求时,卸载提供器420可以使得该令牌无效,并且如卸载写入请求所指示的,在逻辑上将数据写入到目的地存储容器411。
扩展令牌大小
利用卸载技术,标准或行业可以指定令牌的某个固定大小。出于各种原因,一些实施方式可能期望比标准的固定大小更大的大小。
为了适应更大大小的令牌,可以对标准进行修改以允许多个令牌。比固定大小更大的令牌随后可以由多个固定大小的更小子令牌所表示。例如,一种标准要求令牌为512字节。在针对该标准的一种实施方式中,子令牌均可以精确地为512字节,而更大令牌可以大于512字节(例如,955、2000、4096或者其它一些字节数)。
图5是图示出用于表示依据这里所描述的主题的各方面的具有一个或多个更小子令牌的一个更大令牌的一种示例性方案的示图。如所图示的,示例性的大令牌505可以具有标准所要求的字段H、提供器ID P、随机数据R、供应商数据V和其它数据X。
标准所要求的字段H可以包括标准所要求或者以其它方式所指定的任意字段。例如,标准所要求的字段H可以包括以下中的一个或多个:指示何时生成令牌的数据,指示何时认为令牌过期的数据,指示令牌来自于何处的数据,或者标准所指定的其它数据。
提供器ID P可以指示生成该令牌的卸载提供器的实例。提供器ID P可以在阈值测试中被用来确定该令牌是否要被忽略。如果提供器ID P并非是原本会由卸载提供器所提供的提供器ID,则卸载提供器可以一起拒绝令牌。否则,卸载提供器可以采取另外的动作来使该令牌生效。
供应商数据V可以包括实施卸载提供商的供应商可能期望的任意数据。作为一个示例,供应商可以包括指示提供令牌505的卸载提供器的地址的寻址信息。作为其它示例,供应商数据V可以包括散列关键字、摘录、查找关键字、元数据、有关块数据的数据、有助于识别或定位块数据的部分的数据、其它数据等。
其它数据X可以包括令牌505中所包括的任意其它数据。
子令牌可以经由几乎任意的协议进行传送。例如,在一个示例中,子令牌可以经由小型计算机系统接口(SCSI)协议进行传送。在另一个示例中,子令牌可以经由文件共享协议进行传送,该协议经由服务器消息块传输文件数据。其它示例性文件共享协议包括服务器消息块(SMB)协议。在另一个示例中,子令牌可以经由基于远程过程调用来访问文件的分布式文件系统协议进行传送。一种基于远程过程调用的示例协议包括网络文件系统(NFS)协议。
以上示例并非意在包含了可以使用的所有协议或者作为其穷举。相反,基于这里的教导,本领域技术人员可以认识到,可以使用许多其它协议而并不背离这里所描述的主题的各方面的精神或范围。
子令牌510-515可以是表示令牌505的固定大小(例如,由标准所指定)的令牌。子令牌510-515可以包括各种字段。例如,子令牌可以包括标准所要求的字段(H0、HN1、H...)、提供器ID字段(P)、令牌ID(T)、序列数据(S0、SN1、S...)、指示有多少子令牌表示令牌505的数字、以及与令牌505的数据相对应的数据。该其它数据由H、R0至RN1、V0至VN2以及X0至XN3所表示,其中H对应于令牌505中的标准所要求的字段H,R0至RN1对应于令牌505中的随机数据R、V0至VN2对应于令牌505中的供应商数据V,并且X0至XN3对应于令牌505中的其它数据X。
字段(H0、HN1、H...)可以包括标准所要求或者以其它方式所指定的任意数据。这例如可以包括SCSI协议的任意版本所指定的报头或其它字段。字段(H0、HN1、H...)可以出现在图5中所指示的任意其它字段之前和/或之后。
当使用SCSI协议时,字段(H0、HN1、H...)例如可以包括SCSI协议的任意版本所指定的报头或其它字段。一些示例性字段包括:令牌创建的时间戳、令牌类型(例如,时间点复制)、源地址、识别数据令牌类型的表示的数据、将每个子令牌识别为用于传输块数据的令牌而并不要求块数据通过请求该传输的命令的启动器的数据、SCSI协议所指定的其它字段,等等。
在使用其它协议的情况下,字段(H0、HN1、H...)例如可以包括那些协议所要求或允许的字段。在一种实施方式中,字段(H0、HN1、H...)可以一起被省略。
在一些实施方式中,字段(H0、HN1、H...)例如还可以包括以上关于令牌505的标准所要求的字段H所指示的数据类型。
提供器ID P可以指示生成该令牌的卸载提供器的实例并且可以以与以上所指示的相同方式来使用。
令牌ID T可以是将子令牌识别为属于表示更大令牌的子令牌群组的数据。例如,子令牌510-515的每个T字段中的令牌ID“ABCD”可以将子令牌510-515识别为属于表示令牌505的子令牌群组。如果子令牌具有不同令牌ID,则卸载提供器可以确定该子令牌并不是表示令牌505的子令牌群组的一部分。
序列数据(S0、SN1、S...)可以包括指示子令牌的排序的数据。例如,序列数据可以包括指示子令牌的顺序的递增数字(例如,1、2、3、4等)。该顺序可以被用来组合子令牌510-515以重构令牌505或者其部分。
在一种实施方式中,来自子令牌510-515的字段的数据可以被组合以构建令牌505中所包括的所有数据。例如,在这种实施方式中,子令牌510-515的组合数据可以至少包括令牌505中所包括的数据。
在另一种实施方式中,子令牌510-515并不包括令牌505中所包括的所有数据。例如,子令牌510-515可以包括用于识别(例如,通过查找表或其它数据结构)令牌505中的数据的足够数据。例如,子令牌510-515可以被组合以获得R和地址信息。R和地址信息可以随后被卸载提供器使用以查找令牌505中所包括的其它信息。
在另一个示例中,子令牌510-515中的一个或多个可以包括可以被用来映射至随机数据R的数据。在该示例中,随机数据R不能从单独在子令牌510-515中所找到的数据进行重构,但是随机数据R可以从子令牌510-515中的一个或多个中所包括的随机数据找到(例如,在查找表中)。在该示例中,其它数据(例如令牌505的地址数据)可以包括在子令牌510-515中的一个或多个中。地址数据随后可以被用来定位映射表,后者例如可以被用来定位令牌505中所包括的其它数据。
还可以使用类似机制来找到并未在子令牌510-515中物理找到但是可能使用映射至省略数据的数据而被找到的其它省略数据。
在一个示例中,子令牌之一(有时在这里被称作主子令牌)可以包括所有随机数据R,而其它子令牌可以不包括对应于随机数据R的任何数据。在另一个示例中,子令牌510-515均可以包括对应于随机数据R的数据。
可以使用各种机制来使令牌505生效。在一个示例中,在从子令牌510-515重构令牌505之后,执行按位比较以确定令牌505是否精确地是由卸载提供器所生成的令牌。如果令牌中的位等于在令牌存储装置中针对具有R的令牌所找到的位,则令牌505可以被确定为是有效的。
在另一个示例中,可以计算令牌505的摘录并且可以将该摘录与卸载提供器所生成的令牌的摘录进行比较。在该示例中,可以选择具有与其它摘录发生冲突的低可能性或不可能发生冲突的摘录。在该示例中,如果摘录等于卸载提供器所生成的令牌的摘录,则令牌505可以被确定为是有效的。
在另一个示例中,如果R等于卸载提供器所存储的令牌的R,则令牌505可以被确定为是有效的。
在一种实施方式中,更大令牌505是所提供并且实际存在的令牌而且被实施为一种或多种数据结构。更大令牌505可以在物理上被划分为多个子令牌510,后者也可以被重新组合以形成更大令牌505。
在另一种实施方式中,更大令牌505包括虚拟卸载令牌,后者在逻辑上包括针对令牌505所说明的字段,但是其中所有字段可能并非实际上处于相同的数据结构之中。在该实施方式中,令牌505并不经过其中单个大块数据包括令牌505的所有字段的时段。相反,子令牌510-515包括对应于令牌505的数据(或者可用于找到令牌505的数据的数据),但是子令牌510-515并未被实际组合以形成包括令牌505的字段的单个大块数据。同样,在该实施方式中,令牌505并未被首先创建并随后划分为子令牌510-515。更大令牌505被称作虚拟卸载令牌,原因在于其在物理上并不存在,并且与子令牌510-515独立但实质上存在于子令牌510-515的数据之中。所要理解的是,当令牌505在这里被描述时,这两种实施方式都是预见到的。
图6是表示这里所描述的主题的各方面可以在其中进行操作的系统的组件的示例性部署形式的框图。如所图示的,该系统包括启动器605、源存储栈610、目的地存储栈611、分割器/注入器615、组合器/提取器616和卸载提供器630。
如所图示的卸载提供器630被分为源卸载提供器635和目的地卸载提供器636以指示卸载提供器630的组件可以处于互相通信以执行卸载提供器630的功能的不同机器上。然而,在另一个示例中,源卸载提供器635和目的地卸载提供器636可以被融合并置于单个计算机上。在一种实施方式中,源卸载提供器635和目的地卸载提供器636是不同的卸载提供器,它们可以一起响应于卸载写入命令而对卸载数据的传输进行协商。
启动器605发起卸载读取或写入。在一个示例中,启动器605可以被分为源启动器和目的地启动器(如图4所示),其中源启动器发起卸载读取并且响应于此获得多个子令牌,并且随后将该子令牌提供至目的地启动器,后者随后发起卸载写入。在另一个示例中,启动器605可以直接发起卸载读取和卸载写入。
所要理解的是,卸载写入是不考虑形式的卸载写入。例如,将令牌转发至进而发出卸载写入的不同机器正是用于使卸载读取启动器发起卸载写入的不同方式。
源存储栈610和目的地存储栈611均可以由部署在层中的一个或多个组件来实施,其中每个层可以执行不同功能。
分割器/注入器615可以包括一个或多个组件。分割器/注入器615可以从源存储栈610接收卸载读取命令。作为响应,分割器/注入器615可以向源卸载提供器635发送卸载读取命令。响应于该卸载读取命令,源卸载提供器635可以提供大令牌。在接收到该大令牌之后,分割器/注入器615可以将该令牌分割为多个较小令牌并且将这些较小令牌提供至源存储栈610。例如,子令牌可以是如之前所提到的固定标准大小。
在一种实施方式中,卸载读取命令可以包括指示可以响应于卸载读取提供多少子令牌的数字。该数字可以来自于启动器605或者源存储栈610的组件。
如果分割器/注入器615确定该数字足够大,则分割器/注入器615可以提供如源存储栈610所请求的子令牌。否则,在一个示例中,分割器/注入器615可以返回指示需要多少子令牌以对卸载读取请求做出响应的消息。在另一个示例中,分割器/注入器615可以返回指示该数字并不足够大的错误并且可以允许启动器605在启动器605确定尝试(多个)更大数字的情况下进行上述尝试。
在另一种实施方式中,卸载读取命令可以省略指示可以响应于卸载读取提供多少子令牌的数字。在该实施方式中,发送卸载读取命令的组件可以请求子令牌直至分割器/注入器615指示卸载读取命令的所有子令牌都已经被提供。
在另一种实施方式中,分割器/注入器615可以指示响应于卸载读取命令所生成的数个子令牌。发送卸载读取命令的组件随后可以负责从分割器/注入器615获得子令牌。
在具有多个子令牌的卸载写入命令中,启动器605可以向目的地存储栈611发送子令牌,目的地存储栈611可以将该子令牌发送至组合器/提取器616。组合器/提取器616随后可以将该子令牌组合为单个大令牌并且将该单个大令牌提供至目的地卸载提供器636。
子令牌可以根据实施方式在单个消息或多个消息中提供。
在一种实施方式中,分割器/注入器615可以与源卸载提供器635进行组合并且组合器/提取器616可以与目的地卸载提供器636进行组合。至少在该实施方式中,分割器/注入器615可以将虚拟卸载令牌的数据注入到子令牌中,同时组合器/提取器616可以从该子令牌提取该数据而更大令牌从未作为物理数据结构而存在。
图7-9是总体上表示可以依据这里所描述的主题的各方面而发生的示例性动作的流程图。为了便于解释,结合图7-9所描述的方法被描绘和描述为一系列动作。所要理解并意识到的是,这里所描述的主题的各方面并不由所图示的动作和/或动作的顺序所限制。在一个实施例中,动作以如下所描述的顺序发生。然而,在其它实施例中,动作可以并行发生、以另一个顺序发生,和/或具有在这里没有给出并描述的其它动作。此外,并非需要所图示的所有动作以实施依据这里所描述的主题的各方面的方法。此外,本领域技术人员将会理解并意识到,该方法能够可替换地经由状态图被表示为一系列相互关联的状态或者被表示为事件。
图7是总体上表示依据这里所描述的主题的各方面的可能在目的地卸载提供器发生的示例性动作的流程图。在框705,该动作开始。
在框710,接收指示两个或更多子令牌表示更大令牌的消息。该子令牌均为固定大小(例如,由标准所指定的大小)。该更大令牌具有大于该固定大小的大小。这意味着该更大令牌中所包括的数据比能够装入一个字令牌中的数据更多。对应于该更大令牌的数据由卸载提供器维护。该数据可以在对应于该更大令牌的单个数据结构中或者在多个数据结构(例如其并未组合)中维护。该更大令牌表示只要该更大令牌中的数据有效就不会变化的数据。
例如,参考图6,组合器/提取器616可以从目的地存储栈611接收子令牌。该子令牌可以由启动器605结合指向目的地存储栈611的卸载写入来提供。
在框715,从该子令牌提取数据。提取数据例如可以包括在获得数据之前将子令牌组合为更大令牌或者在不将子令牌组合为更大令牌的情况下从子令牌获取数据。例如,参考图6,组合器/提取器616可以从子令牌组合/提取数据。例如,所提取的一些数据可以包括将该令牌与该令牌所表示的数据相关联的数字。该数字有时被称作关键字。
在框720,从一个或多个子令牌获取该关键字。例如,参考图6,在组合器/提取器616将子令牌进行组合以形成更大令牌之后,目的地卸载提供器636可以从该更大令牌获得该关键字。作为另一个示例,在不对子令牌的数据进行物理组合的情况下,组合器/提取器616可以从虚拟令牌(例如,一个或多个子令牌)提取该关键字而并不将子令牌的所有数据进行物理组合。
在框725,该关键字的证据被提供至卸载提供器的组件。使用该证据,可以作为框725的动作的一部分或者作为单独的动作集合而式该关键字生效。提供该关键字的证据例如可以包括:
1. 提供该关键字自身;
2. 提供该关键字和该更大令牌的其它数据(一个或多个字段);
3. 提供该关键字的摘录(例如,散列函数);
4. 提供从该关键字以及该更大令牌的其它数据(一个或多个字段)所得出的摘录;
5. 提供该关键字和/或更大令牌的其它证据。
图8是总体上表示依据这里所描述的主题的各方面的可能在源卸载提供器发生的示例性动作的流程图。在框805,该动作开始。
在框810,接收卸载读取请求。例如,参考图6,源卸载提供器635接收由启动器605所发起的卸载读取请求。
在框815,响应于卸载读取消息,生成关键字以响应于该卸载读取消息而返回。该关键字被置于令牌(物理或虚拟的)之中,其数据将被置入子令牌中以响应于该卸载读取消息而返回。例如,参考图6,源卸载提供器635可以生成包括该关键字的令牌。
在框820,该令牌的数据被划分/注入到子令牌中。例如,参考图6,分割器/注入器615从框815处所生成的令牌取得数据并且将该数据分割/注入到子令牌中,该子令牌被提供至源存储栈610以便传递至启动器605。
在框825,接收该关键字的证据。例如,参考图6,源卸载提供器635的组件接收该关键字的证据。在一个示例中,该证据可以在卸载提供器630从接收自组合器/提取器616的子令牌获取关键字时被接收。在另一个示例中,处于卸载写入的目的地处的卸载提供器的组件(例如,目的地卸载提供器636)可以获得子令牌中所包括的关键字,读取其中所包含的地址,使用该地址联系生成该关键字的卸载提供器的组件(例如,源卸载提供器635),并且将该关键字提供至该组件。在另一个示例中,作为不同于源卸载提供器的卸载提供器的目的地卸载提供器可以接收该关键字和寻址信息,联系源卸载提供器,并且提供该关键字。使用该证据,可以作为框825的动作的一部分或者作为单独的动作集合而使该关键字生效。
在框830,提供对应于该令牌的块数据。例如,参考图6,源卸载提供器635可以将对应于该令牌的块数据的一部分或全部提供至目的地卸载提供器636。
在框835,可以在存在其它动作的情况下执行这些动作。
图9是总体上表示依据这里所描述的主题的各方面的可以在卸载启动器发生的示例性动作的流程图。在框905,该动作开始。
在框910,通过与源存储栈的组件进行通信而发起卸载读取请求。例如,参考图6,启动器605可以向源存储栈610发送卸载读取请求。结合该卸载读取请求,可以发送指示允许响应于该卸载读取请求而被返回的最大子令牌数量的数字。
在框915,响应于该消息而接收子令牌。该子令牌表示大于任意个体子令牌的令牌(物理或虚拟的)。该更大令牌表示只要该更大令牌有效就不会变化的数据。例如,参考图6,响应于卸载读取请求,启动器接收多个子令牌。结合接收该子令牌,可以接收指示响应于该卸载读取请求生成多少子令牌的数字。
在框920,启动器将子令牌提供至目的地存储栈的组件。例如,参考图6,启动器605将子令牌提供至目的地存储栈611的组件。
在框925,可以在存在其它动作的情况下执行这些动作。
如能够从之前的详细描述所看到的,已经描述了涉及卸载技术的各方面。虽然这里所描述的主题的各方面易于进行各种修改和替换性构造,但是其某些所说明的实施例在附图中被示出并且已经在上文中进行了详细描述。然而,应当理解的是,并非意在将所请求保护的主题的各方面限制为所公开的具体形式,而是与之相反,意在覆盖落入这里所描述的主题的各个方面的精神和范围之内的所有修改、替换性构造和等同形式。

Claims (10)

1.一种在包括至少一个处理器和存储器的计算设备上实施的方法,该方法包括:
由该计算设备接收两个或更多均为固定大小的子令牌,该子令牌一起表示大小大于该固定大小的更大令牌,该更大令牌表示只要该更大令牌有效就不会发生变化的数据;
由该计算设备从一个或多个子令牌获取加密安全关键字以及识别源的信息,其中更大令牌表示的数据能够从该源获得;并且
由该计算设备将该关键字的证据提供至卸载提供器以至少获取该更大令牌所表示的数据的一部分,而该数据部分并不通过提供该子令牌的启动器,该卸载提供器包括独立于该计算设备的至少一个其它计算设备。
2.根据权利要求1所述的方法,进一步包括从一个或多个子令牌获取寻址信息以外的信息。
3.根据权利要求1所述的方法,进一步包括对来自两个或更多子令牌的数据进行组合以创建该更大令牌,该两个或更多子令牌至少包括该更大令牌中所包括的所有数据。
4.根据权利要求1所述的方法,其中该更大令牌包括由该子令牌的数据所表示的虚拟令牌。
5.根据权利要求1所述的方法,其中该子令牌均精确地为512字节,或其中一个或多个子令牌包括标准所要求的字段,该字段识别数据令牌类型的表示。
6.根据权利要求1所述的方法,其中该子令牌经由文件共享协议进行传送,该文件共享协议经由服务器消息块传输文件数据。
7.根据权利要求1所述的方法,其中该子令牌经由分布式文件系统协议进行传送,该分布式文件系统协议经由远程过程调用来访问文件。
8.一种系统,包括:
包括至少一个处理器和存储器的计算设备;以及至少一个程序模块,其基于由至少一个处理器的执行,配置该计算设备执行以下步骤:
接收启动器所发起的卸载读取消息;
响应于该接收的卸载读取消息,生成加密安全关键字并且向独立的计算设备提供子令牌,每个子令牌为固定大小,该子令牌表示大小大于该固定大小的更大令牌,对应于该更大令牌的数据由卸载提供器维护,该子令牌包括识别源的信息,其中更大令牌表示的数据能够从该源获得,该更大令牌表示只要该更大令牌有效就不会发生变化的数据,该更大令牌包括该加密安全关键字。
9.至少一个具有计算机可执行指令的硬件计算机存储介质,该计算机可执行指令基于由包括至少一个存储器的至少一个计算设备的至少一个处理器的执行,配置该计算设备实施动作,该动作包括:
由该至少一个计算设备通过与源存储栈的组件进行通信而发起卸载读取请求;
响应于该卸载读取请求由该至少一个计算设备从至少一个独立的计算设备接收子令牌,该子令牌表示大于任意单独子令牌的更大令牌,该更大令牌表示只要该更大令牌有效就不会发生变化的数据,其中接收的子令牌包括识别源的信息,其中更大令牌表示的数据能够从该源获得;并且
由该至少一个计算设备通过将该子令牌提供至目的地存储栈而发起卸载写入请求。
10.根据权利要求9所述的至少一个计算机存储介质,所述动作进一步包括:结合该卸载读取请求,发送指示允许响应于该卸载读取请求而被返回的最大子令牌数量的数字。
CN201380065507.9A 2012-12-14 2013-12-14 兼容扩展卸载令牌大小 Active CN104995895B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/714,413 US9251201B2 (en) 2012-12-14 2012-12-14 Compatibly extending offload token size
US13/714413 2012-12-14
PCT/US2013/075212 WO2014093952A1 (en) 2012-12-14 2013-12-14 Compatibly extending offload token size

Publications (2)

Publication Number Publication Date
CN104995895A CN104995895A (zh) 2015-10-21
CN104995895B true CN104995895B (zh) 2019-04-19

Family

ID=49956364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380065507.9A Active CN104995895B (zh) 2012-12-14 2013-12-14 兼容扩展卸载令牌大小

Country Status (7)

Country Link
US (1) US9251201B2 (zh)
EP (1) EP2932692B1 (zh)
JP (1) JP6420253B2 (zh)
CN (1) CN104995895B (zh)
BR (1) BR112015011935B1 (zh)
RU (1) RU2672789C2 (zh)
WO (1) WO2014093952A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9380114B1 (en) * 2013-06-27 2016-06-28 Emc Corporation Techniques for peer messaging across multiple storage processors of a data storage array
US10205666B2 (en) * 2013-07-29 2019-02-12 Ampere Computing Llc End-to-end flow control in system on chip interconnects
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
JP6189267B2 (ja) * 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) * 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
WO2020062297A1 (zh) * 2018-09-30 2020-04-02 深圳市大疆创新科技有限公司 令牌管理方法、装置、芯片及可移动平台
CN110837633B (zh) * 2019-10-16 2021-10-08 支付宝(杭州)信息技术有限公司 智能凭证实现方法、系统及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1787435A (zh) * 2004-12-07 2006-06-14 微软公司 提供访问联合资源的令牌
CN101266615A (zh) * 2003-01-31 2008-09-17 施克莱无线公司 用于浏览数据通信网络的方法
CN102520877A (zh) * 2010-09-23 2012-06-27 微软公司 卸载读和写

Family Cites Families (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043866A (en) 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
US5355477A (en) 1991-12-23 1994-10-11 International Business Machines Corporation Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning
JPH06215160A (ja) 1992-08-25 1994-08-05 Texas Instr Inc <Ti> データ処理方法および装置
US5528594A (en) * 1994-12-22 1996-06-18 International Business Machines Corporation Method and system for implementing sub-tokens on a token ring network
US5668958A (en) 1995-09-12 1997-09-16 International Business Machines Corporation Heterogeneous filing system with common API and reconciled file management rules
US6275867B1 (en) 1995-09-12 2001-08-14 International Business Machines Corporation Operation-partitioned off-loading of operations in a distributed environment
US6161145A (en) 1997-05-08 2000-12-12 International Business Machines Corporation Updating server-related data at a client
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6141705A (en) 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US8631066B2 (en) 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US6304983B1 (en) 1998-09-30 2001-10-16 International Business Machines Corporation Checkpoint logging without checkpoint display device availability
US6385701B1 (en) 1999-11-19 2002-05-07 International Business Machines Corporation Method, system and program products for sharing data between varied clients using token management
US7412462B2 (en) 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US6785743B1 (en) 2000-03-22 2004-08-31 University Of Washington Template data transfer coprocessor
US6804755B2 (en) 2000-06-19 2004-10-12 Storage Technology Corporation Apparatus and method for performing an instant copy of data based on a dynamically changeable virtual mapping scheme
EP1179793A1 (de) 2000-08-09 2002-02-13 Indatex GmbH Portal für Finanzdienstleister
US7475199B1 (en) 2000-10-19 2009-01-06 Emc Corporation Scalable network file system
US7895445B1 (en) 2001-04-26 2011-02-22 Nokia Corporation Token-based remote data access
US6961055B2 (en) 2001-05-09 2005-11-01 Free Radical Design Limited Methods and apparatus for constructing virtual environments
US6697881B2 (en) 2001-05-29 2004-02-24 Hewlett-Packard Development Company, L.P. Method and system for efficient format, read, write, and initial copy processing involving sparse logical units
US20040139125A1 (en) 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US6938002B2 (en) 2001-06-20 2005-08-30 International Business Machines Corporation System and method for product evaluation
US7016982B2 (en) 2002-05-09 2006-03-21 International Business Machines Corporation Virtual controller with SCSI extended copy command
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US20040049603A1 (en) 2002-09-05 2004-03-11 International Business Machines Corporation iSCSI driver to adapter interface protocol
US7121456B2 (en) 2002-09-13 2006-10-17 Visa U.S.A. Inc. Method and system for managing token image replacement
US7340486B1 (en) 2002-10-10 2008-03-04 Network Appliance, Inc. System and method for file system snapshot of a virtual logical disk
EP1567929A2 (en) 2002-11-15 2005-08-31 Creo Inc. Methods and systems for sharing data
US7194462B2 (en) 2003-02-27 2007-03-20 Bea Systems, Inc. Systems and methods for implementing an XML query language
JP4271967B2 (ja) 2003-03-10 2009-06-03 株式会社日立製作所 分散ファイルシステム及び分散ファイルシステムの運用方法
US7406501B2 (en) 2003-03-24 2008-07-29 Yahoo! Inc. System and method for instant messaging using an e-mail protocol
US7461080B1 (en) 2003-05-09 2008-12-02 Sun Microsystems, Inc. System logging within operating system partitions using log device nodes that are access points to a log driver
US20040267672A1 (en) 2003-06-26 2004-12-30 Gray William J. System and method for conducting secure electronic transactions
US7373548B2 (en) 2003-08-29 2008-05-13 Intel Corporation Hardware recovery in a multi-threaded architecture
EP1517247B1 (en) 2003-09-19 2006-11-15 Harman Becker Automotive Systems GmbH Data transfer interface
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
JP4646526B2 (ja) 2004-02-18 2011-03-09 株式会社日立製作所 記憶制御システム及び同システムの制御方法
US8042163B1 (en) 2004-05-20 2011-10-18 Symatec Operating Corporation Secure storage access using third party capability tokens
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7383405B2 (en) 2004-06-30 2008-06-03 Microsoft Corporation Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
EP1650923B1 (en) 2004-10-22 2011-05-18 Software AG Authentication method and devices
US7464124B2 (en) 2004-11-19 2008-12-09 International Business Machines Corporation Method for autonomic data caching and copying on a storage area network aware file system using copy services
US20080104039A1 (en) 2004-11-24 2008-05-01 Linda Lowson System and method for resource management
US7275139B1 (en) 2004-12-02 2007-09-25 Tormasov Alexander G Secure deletion of information from hard disk drive
US7565526B1 (en) 2005-02-03 2009-07-21 Sun Microsystems, Inc. Three component secure tunnel
US8370819B2 (en) 2005-03-25 2013-02-05 Microsoft Corporation Mechanism to store information describing a virtual machine in a virtual disk image
US7475167B2 (en) 2005-04-15 2009-01-06 Intel Corporation Offloading data path functions
US8713180B2 (en) 2005-06-22 2014-04-29 Cisco Technology, Inc. Zero-copy network and file offload for web and application servers
US7480908B1 (en) 2005-06-24 2009-01-20 Azul Systems, Inc. Segmented virtual machine transport mechanism
JP4776307B2 (ja) 2005-08-31 2011-09-21 株式会社日立製作所 ストレージシステム、データ転送方法及びプログラム
US7617216B2 (en) 2005-09-07 2009-11-10 Emc Corporation Metadata offload for a file server cluster
US7725620B2 (en) 2005-10-07 2010-05-25 International Business Machines Corporation Handling DMA requests in a virtual memory environment
US8347373B2 (en) 2007-05-08 2013-01-01 Fortinet, Inc. Content filtering of remote file-system access protocols
US7877485B2 (en) 2005-12-02 2011-01-25 International Business Machines Corporation Maintaining session states within virtual machine environments
US7676607B2 (en) 2005-12-08 2010-03-09 Electronics And Telecommunications Research Institute Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus
US8095931B1 (en) 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
US7653794B2 (en) 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US8332370B2 (en) 2006-05-09 2012-12-11 Hewlett-Packard Development Company, L.P. Maintaining commonly named client-specific file content in hard disk drive emulation
US20080065835A1 (en) 2006-09-11 2008-03-13 Sun Microsystems, Inc. Offloading operations for maintaining data coherence across a plurality of nodes
US8082231B1 (en) 2006-09-22 2011-12-20 Emc Corporation Techniques using identifiers and signatures with data operations
US8239674B2 (en) 2006-11-21 2012-08-07 Kabushiki Kaisha Toshiba System and method of protecting files from unauthorized modification or deletion
US7765361B2 (en) 2006-11-21 2010-07-27 Microsoft Corporation Enforced transaction system recoverability on media without write-through
US8213583B2 (en) 2006-11-22 2012-07-03 Verizon Patent And Licensing Inc. Secure access to restricted resource
CN101657802A (zh) 2006-12-06 2010-02-24 弗森多系统公司(dba弗森-艾奥) 用于远程直接存储器存取固态存储设备的装置、系统及方法
US8296337B2 (en) 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
US20080155051A1 (en) 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer system and method for a computer network
US7941812B2 (en) 2007-01-30 2011-05-10 Hewlett-Packard Development Company, L.P. Input/output virtualization through offload techniques
US8397038B2 (en) 2007-03-22 2013-03-12 Vmware, Inc. Initializing file data blocks
US7831720B1 (en) 2007-05-17 2010-11-09 Chelsio Communications, Inc. Full offload of stateful connections, with partial connection offload
US7886115B2 (en) 2007-07-13 2011-02-08 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for implementing virtual storage devices
US7730034B1 (en) 2007-07-19 2010-06-01 Amazon Technologies, Inc. Providing entity-related data storage on heterogeneous data repositories
US7801852B2 (en) 2007-07-31 2010-09-21 Oracle International Corporation Checkpoint-free in log mining for distributed information sharing
US7694105B2 (en) 2007-08-22 2010-04-06 Hitachi Global Storage Technologies Netherlands, B.V. Data storage systems that implement sector sets
US20090164994A1 (en) 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US8051111B2 (en) 2008-01-31 2011-11-01 Prowess Consulting, Llc Method and system for modularizing windows imaging format
WO2009103824A1 (es) 2008-02-18 2009-08-27 Microelectronica Española S.A.U. Transferencia segura de datos
US8074014B2 (en) 2008-03-31 2011-12-06 Microsoft Corporation Storage systems using write off-loading
US20090248835A1 (en) 2008-03-31 2009-10-01 Subhankar Panda Offloading data transfers between a local and remote network
US8745336B2 (en) 2008-05-29 2014-06-03 Vmware, Inc. Offloading storage operations to storage hardware
US20090327621A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Virtual memory compaction and compression using collaboration between a virtual memory manager and a memory manager
US9323681B2 (en) 2008-09-18 2016-04-26 Avere Systems, Inc. File storage system, cache appliance, and method
JP5146174B2 (ja) 2008-07-28 2013-02-20 富士通株式会社 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US7904914B2 (en) 2008-09-30 2011-03-08 Microsoft Corporation On-the-fly replacement of physical hardware with emulation
US8086585B1 (en) 2008-09-30 2011-12-27 Emc Corporation Access control to block storage devices for a shared disk based file system
US8250267B2 (en) 2008-10-31 2012-08-21 Netapp, Inc. Control I/O offload in a split-path storage virtualization system
TWI405211B (zh) 2008-11-04 2013-08-11 Phison Electronics Corp 快閃記憶體儲存系統、控制器與資料保護方法
US8566821B2 (en) 2008-11-11 2013-10-22 Netapp Inc. Cloning virtual machines
TWI393143B (zh) 2008-12-05 2013-04-11 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
US8443166B2 (en) 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
US8370835B2 (en) 2009-03-12 2013-02-05 Arend Erich Dittmer Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
US8397046B2 (en) 2009-03-26 2013-03-12 Hitachi, Ltd. Method and apparatus for deploying virtual hard disk to storage system
US8583893B2 (en) 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes
US8281149B2 (en) * 2009-06-23 2012-10-02 Google Inc. Privacy-preserving flexible anonymous-pseudonymous access
US8489654B2 (en) 2009-08-28 2013-07-16 Beijing Innovation Works Technology Company Limited Method and system for forming a virtual file system at a computing device
WO2011038359A2 (en) 2009-09-26 2011-03-31 Cisco Technology, Inc. Providing services at a communication network edge
US8627000B2 (en) 2010-02-08 2014-01-07 Microsoft Corporation Virtual disk manipulation operations
US9147081B2 (en) * 2010-07-27 2015-09-29 Infinidat Ltd. Method of access control to stored information and system thereof
US20120079229A1 (en) 2010-09-28 2012-03-29 Craig Jensen Data storage optimization for a virtual platform
US20120102561A1 (en) * 2010-10-26 2012-04-26 International Business Machines Corporation Token-based reservations for scsi architectures
US9092149B2 (en) * 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US20120144501A1 (en) 2010-12-03 2012-06-07 Salesforce.Com, Inc. Regulating access to protected data resources using upgraded access tokens
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US20120324560A1 (en) 2011-06-17 2012-12-20 Microsoft Corporation Token data operations
US20130041985A1 (en) 2011-08-10 2013-02-14 Microsoft Corporation Token based file operations
US20130179959A1 (en) 2012-01-05 2013-07-11 Microsoft Corporation Zero Token
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266615A (zh) * 2003-01-31 2008-09-17 施克莱无线公司 用于浏览数据通信网络的方法
CN1787435A (zh) * 2004-12-07 2006-06-14 微软公司 提供访问联合资源的令牌
CN102520877A (zh) * 2010-09-23 2012-06-27 微软公司 卸载读和写

Also Published As

Publication number Publication date
JP6420253B2 (ja) 2018-11-07
US20140172811A1 (en) 2014-06-19
US9251201B2 (en) 2016-02-02
CN104995895A (zh) 2015-10-21
RU2015122660A (ru) 2016-12-27
EP2932692A1 (en) 2015-10-21
JP2016505960A (ja) 2016-02-25
BR112015011935A2 (pt) 2017-07-11
EP2932692B1 (en) 2017-02-01
RU2672789C2 (ru) 2018-11-19
BR112015011935B1 (pt) 2022-01-11
WO2014093952A1 (en) 2014-06-19
BR112015011935A8 (pt) 2019-10-08

Similar Documents

Publication Publication Date Title
CN104995895B (zh) 兼容扩展卸载令牌大小
US20210342354A1 (en) Stream browser for data streams
CN105474200B (zh) 具有占位符的水合和脱水
CN105431838B (zh) 串流内容和占位符
CN105493077B (zh) 利用占位符的文件管理
CN108713194A (zh) 使用虚拟资源视图的数据保护
TW201224914A (en) Offload reads and writes
CN104937904B (zh) 用于卸载的方法、系统和计算机存储介质
US11252327B1 (en) Method and system for performing a contextual stitching operation on video data using a data processing unit
US10091213B2 (en) Systems and methods to provide secure storage
US11158352B1 (en) Method and system for indexing video data using a data processing unit
WO2009158084A2 (en) Maintenance of exo-file system metadata on removable storage device
TW201601064A (zh) 智能設備啓動過程的資料處理方法及智能設備
US20220130426A1 (en) Method and system for long term stitching of video data using a data processing unit
CN112988055A (zh) 包括键值存储装置的机器和操作键值存储装置的方法
US20190243807A1 (en) Replication of data in a distributed file system using an arbiter
CN109416621A (zh) 利用支持共享对象的计算机存储系统来恢复非易失性存储中的空闲空间
CN108287663A (zh) 一种基于emmc的数据存储方法和装置
US11514002B2 (en) Indexing splitter for any pit replication
US20230205761A1 (en) Method of creating a distributed ledger for a blockchain via encapsulation of off-chain data
US9830329B2 (en) Methods and systems for data storage
WO2022048464A1 (zh) 数据脱敏方法、数据脱敏装置以及存储设备
US20100122055A1 (en) Data integrity validation using hierarchical volume management
US10664442B1 (en) Method and system for data consistency verification in a storage system
US11914879B2 (en) Storage controller and storage system comprising the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant