版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022.04.15PCT/US2020/053276202WO2021/076319EN2021.04.22US2017141791A1,2017.05.18用于加速JavaScript对象标记JSON文档的改向JSON文档添加附加内容,和/或用大小与旧2接收指定JSON文档的修改的请求,所述JSON文档以压缩格式存储在永久性存储装置将变更日志应用于永久性存储装置中的所述JSON文档的压缩格式,推迟所述将变更日志应用于所述JSON文将所述附加内容写入第一未使用空间中,所述第一未使用空间驻将所述附加内容或第二未使用空间或所述新值追加到永久存储装置中的所述JSON文2.如权利要求1所述的方法,还包括将所述修改应用于存储在易失性存储器中的所述所述将所述修改应用于存储在易失性存储器中的所述JSON所述JSON文档的第二修改由以下指定:指定所述将第二修改记录在变更日志中,而不将第二修改应用于存储在将第二修改应用于永久性存储装置中的所述JSON文档的压缩5.如权利要求1所述的方法,还包括将第三未使用空间追加到永久性存储装置中的所所述将所述新值追加到永久性存储装置中的所述JSON文档的压缩格式上发生在所述永久性存储装置中的所述JSON文档的压缩格式中的地所述将变更日志应用于所述JSON文档的压缩格式包括,用指定所述原地覆写永久性存储装置中的所述JSON文档的压缩格7.如权利要求6所述的方法,还包括用第二指针原地覆写永久性存储装置中的所述3单个组合修改替换所述变更日志中的所述修将所述JSON文档的压缩格式中的相应偏移与包括所述JSON文档的所述修改在内的所基于所述JSON文档的压缩格式中的所述相应偏移,对所述JSON文所述将变更日志应用于永久性存储装置中的所述JSON文档的压缩格式基于所述对所JSON文档和所述JSON文档的压缩格式追加指定所述JSON文档的所述修改的所述请求是结构化查追加到永久性存储装置中的所述JSON文档的压缩格式上的多个内容的大小与永久性在不完全重写永久性存储装置中的所述JSON文档的压缩格式的情况下追加到永久性存储装置中的所述JSON文档的压缩格式上的字对于修改以压缩格式存储在永久性存储装置中的第二JSON文档的第二JSON文档的压缩格式已经以内联方式存储计算如果满足了修改所述第二JSON文档的第二请求、则所完全重写永久性存储装置中的所述第二JSON执行时使得执行如权利要求1-15中任一项所述4[0001]本公开涉及对以压缩格式存储在永久性存储装置中的JavaScript对象标记式来加速对永久性存储装置中的JSON文化查询语言(SQL)的关系数据库管理系统(RDBMS)和/或非SQL风格的文档对象储存库(DcoumentObjectStore)中存储的JSON文档的无模式敏捷风格的应用程序开发而广受欢[0004]一种业界流行的二进制格式是来自MongoDB的BSON。当新内容完全适应于原始内[0005]文件系统实现可能足够复杂,以支持在存储JSON文档的杂的文件系统实现必须在内部支持额外的簿记层(bookkeepinglayer),该簿记层将文件新只需要对JSON文档执行很小的更改。当JSON文档的大小勉强达到兆字节或数十千字节5[0009]图1是描绘通过避免完全重写永久性JSON文档来加速对永久性JSON文档的修改的[0010]图2是描绘通过避免完全重写永久性JSON文档来加速对永久性JSON文档的修改的[0011]图3是描绘将变更日志应用于JSON文档的压缩格式并避免完全重写压缩格式的示[0012]图4是描绘管理JSON文档的压缩格式的变更日志的生命周期的示例计算机过程的[0013]图5是描绘将JSON文档的压缩格式存储在数据库的关系表中的示例计算机过程的SQL函数通常可以通过SQL/JSON表达式和路径语言以声明性方式更新、删除和插入JSON文MERGEPATCH()和JSON_TRANSFORM()是能够通过一个函数调用以声明方式执行一系列更改[0019]与要求用户使用JSON文档对象模型(DOM)API对JSON文档进行程序化遍历和更新查询和在二进制格式中启用部分更新的需求,就有很好的机会高效地执行分段更新。Oracle的OSON二进制格式在新内容不完全适应于OSON文档的原始字节内容的许多情况下6以检测在OSON上需要大量更改(来自过去的累积更改和执行当前更新操作的更改底层文件系统不需要具有在文件中间进行字节删除以造成孔洞或在文件中间插入额外字新的情况下尽可能多地被执行,以减小事务变更日志大小并极大地提高更新和复制性能。会在适当的时候自主地执行完全文档覆写。RDBMS的OSON事务子系统在运行时基于过去发[0022]当文档小到足以内联到关系数据库中的表的行内的二进制大型应这些分段更新操作,并控制查询和更新的性能,而无需请求底层存储API进行额外的簿[0028]图1是在实施例中描绘示例计算机100的框图。计算机100通过避免完全重写永久性存储装置130中的压缩格式120来加速对以压缩格式120存储在永久性存储装置110中的JavaScript对象标记(JSON)文档130的修改。计算机100可以是机架式服务器(例如刀片)、7[0030]压缩格式120是不同于JSON文档130的原始文本编码的二进制格式。压缩格式120130的文本内容但不是JSON文档130的文本内容的一部分的元数据,以及c)包含用于导航(CRUD)语句或按示例查询(QBE)。本文稍后将呈现JSON文档130的压缩格式120的自主生命本传输协议(HTTP)请求,例如:GET、POST、通用网关接口(CGI)和/或表述性状态传输聚合的JSON值。修改162可以暗示或明确指定应该将附加内容190追加或插入到JSON文档b)在该数组中插入附加数组元素的偏移,或c)用于将附加内容190作为JSON对象中的值添[0034]计算机100不需要直接和立即地将修改161-162应用于永久性存储装置110中的节追加到变更日志170上,以推迟应用到永久性存储装置110中的JSON文档130的压缩格式[0035]在任何情况下,变更日志170最终被应用于永久性存储装置110中的JSON文档130永久性存储装置110中的JSON文档130的压缩格式120。在请求151没有发生并且变更日志8档130的压缩格式120可以包含旧值140方法可以通过在永久性存储装置110中完全重写JSON文档130的压缩格式120来履行请求[0040]这里的技术通过不完全重写永久性存储装置110中的JSON文档130的压缩格式120100仅对永久性存储装置110中的JSON文档130的压缩格式120执行部分更新以履行请求[0042]图2是描绘可由计算机100执行以通过避免完全重写永久性存储装置110中的压缩格式120来加速对以压缩格式120存储在永久性存储装置110中的JSON文档130的修改的示准JSON文本编码可以或可以不指示压缩格式120小的压缩。字符编码(诸如ASCII或Unicode)可能会影响值大小。用表示长度(express9步骤204在变更日志170中记录修改161和/或162的细节,诸如新值180和/或附加内容190。讨论基于变更日志170将压缩格式120写入永久性存储装置1[0050]图3是描绘可由计算机100执行以将变更日志170应用于以压缩格式120存储在永久性存储装置110中的JSON文档130从而避免完全重写永久性存储装置130中的压缩格式[0052]根据场景,可能存在各种原因来实际推迟将修改写入到永久性存储装置110中的[0054]这些是步骤301推迟将JSON文档130的一些或全部压缩格式120写入永久性存储装以与压缩格式120相同的格式或以诸如文本之类的不同格式应用于易失性存储器中的JSON[0055]最终,变更日志170应被应用于永久性存储装置110中的JSON文档130的压缩格式120,此时变更日志170可能已经累积了来自同一事务中的相同或不同请求的对JSON文档可能需要在步骤302期间在永久性存储装置110中的JSON文档130的压缩格式120中用新值[0058]步骤303演示了将各种对象追加到永久性存储装置110中的JSON文档130的压缩格通过将反映该修改的聚合的副本追加到永久性存储装置110中的JSON文档130的压缩格式的永久性存储装置110中的JSON文档130的压缩格式120的自主生命周期来反应性和/或主[0061]存在可能永远不需要永久性存储装置110中的JSON文档130的压缩格式120内的未值而变得陈旧,例如当陈旧的值是由新值180替换的旧值140时,特别是当旧值140和新值[0065]因此,在步骤305B期间在永久性存储装置110中的JSON文档130的压缩格式120内追加的新值180是什么地址或偏移应该可用于写入指针的步骤305A。可以在步骤305A-B之在被完全应用之后被完全截断,并且对JSON文档130的后续修改可以随后被追加到变更日据项(诸如标量或聚合)的值的渐进修订/重新赋值,使得读取链表以找到该相同数据项的链接也不保留相同数据项的多个重定向墓碑来提供恒定时间内的当前值检索,因为步骤305C用新的重定向墓碑原地覆写先前的[0071]永久性存储装置110中的JSON文档130的压缩格式120可以有些稀疏,在各个位置置110中的JSON文档130的压缩格式120上时,先前附加的未使用空间可以成为可能位于永久性存储装置110中的JSON文档130的压缩格式120内的两个不相关[0073]步骤306可以用聚合的元素填充孔洞,例如当孔洞具有为聚合预留的未使用空间[0075]图4是描绘可由计算机100执行以管理JSON文档130的压缩格式120的变更日志170[0076]修改161-162可以在范围上受到限制,使得JSON文档130的大部分不受修改161-[0077]例如,变更日志170可以驻留在易失性缓冲器和/或易失性或非易失性队列(诸如终以先进先出(FIFO)的顺序被物理地应用于永久性存储装置110中的JSON文档130的压缩更命令在出队时被应用于永久性存储装置110中的JSON文档130的压[0078]变更日志170可以具有其自己的生命周期,该生命周期包括诸如累积修改以及通过将修改应用于永久性存储装置110中的JSON文档130的压缩格式120而冲刷之类的转变。被应用于永久性存储装置110中的JSON文档130的压缩格式120之前的任何时间合并变更日[0082]对连续存储的元素的修改的后台合并是通过变更日志170的自主活动的示例。即JSON文档130的压缩格式120、和/或易失性存储器中的JSON文档130的表示(其可以与压缩[0090]在诸如当数据库连接被配置为在其自己的事务中自动地且单独地提交诸如SQL的每个数据操纵语言(DML)语句时,DOM可以绕过变更日志170或以其他方式在没有变更日志170的情况下操作。步骤405B将修改应用于永久性存储装置110中的JSON文档130的压缩格[0091]永久性存储装置110中的JSON文档130的压缩格式120也可以具有其自己的自主生永久性存储装置110中完全重写JSON文档130的压缩格[0093]在呈现图5之前,下面的数据库讨论展示了数据库集成可能需要或可能不需要的数据库配置含义修改永久性JSON文档的请求是SQL语句永久性JSON文档存储在关系表中永久性JSON文档存储在关系表的LOB列中永久性JSON文档以外联(outofline)方式存储在关系表的行外[0095]JSON文档130的压缩格式120可以存储在永久性存储装置110和/或易失性存储器含JSON文档130的压缩格式120。在数据库配置801中,请求151-152是诸如UPDATE的SQL语义和标准化了将JSON转换为关系数据或以其他方式从SQL访问JSON数据的内置函数,包括其中解释的诸如JSON_TABLE和JSON_EXI同的表行,相同关系表的许多列存储在相同的数据库块中,除了c)JSON文档130的JSON列和/或压缩格式120存储在单独的(多个)数据库块中。在实施例中,JSON文档130的JSON列[0101]图5是描绘可由计算机100执行以将JSON文档130的压缩格式120存储在数据库的[0106]根据步骤506,步骤508A-B是互斥的。当步骤506检测到JSON文档130的压缩格式[0107]不管是原地重写还是追加,内联不需要总是导致完全重写,例如为了压实档130的压缩格式120的一部分移到表行之外来解决溢出。例如,JSON文档130的压缩格式论是否自主地,计算机100可以检测已经存储在表行外部的JSON文档130的压缩格式120的命中的情况下,以及b)读取永久性存储装置110中的JSON文档130的一些或全部压缩格式[0113]对JSON文档130的压缩格式120的部分更新可能使先前的值无效和/或在JSON文档[0114]不管空间是否被浪费,对相同或不同JSON字段的多个部分更新通过重定向墓碑[0115]在实施例中,通过在易失性和/或非易失性存储中应用变更日志170和/或压实[0119]下面的表2列枚举了触发压缩的示例重写阈值811-815,计算机100可以实现其中积的附加大小是自从上次出现紧凑大小以来追加到JSON文档130的压缩格式120上的内容[0123]将重写阈值813与自从最后压实大小发生以来JSON文档130的压缩格式120的写请[0124]重写阈值815检查自从JSON文档130的压缩格式120的大小在最后压实大小出现之[0128]在该示例性实施例中包括OSON,这是在相关美国专利10,262,012中提出的用于器压缩单元(IMCU)中的易失性高速缓存和/或缓冲器管理,c)原子一致隔离持久(ACID)事[0131]包含的RDBMS包含支持JSON_TRANSFORM()和LOBASSIGNMENT运算符的查询编译更新JSON_COLLECTION表以为J[0132]UPDATEJSON_COLLECTIONSETJCOL=JSON_TRANSFORM(JCOL,SET‘$[0135]在SQL编译阶段,创建一个LOBASSIGMENT运算符,以将快捷方式($)复制到具有计算JSON_TRANSFORM()的结果)复制到赋值的左手侧(LHS),这是要进行完全JSON文档替因为JSON_TRANSFORM()的JSON类型输入与要在LHS端更新的JSON列相同,因此编译器在LOBASSIGNMENT运算符的元数据结构中添加了额外的标志和偏移,以指示RHS结果应在运行时针对部分OSON更新情况进行特殊处理。JSON_TRANSFORM()运算符元数据结构使用相[0137]8.2使用LOBASSIGNMENT运[0138]在运行时,当计算JSON_TRANSFORM()时,如果设置了部分更新标志,则JSON_TRANSFORM()检查JSON类型列的输入。如果输入JSON列OSON文档大小足够小,例如BLOB内字节加载到存储器中的可变DOM是很快的,因为它将OSON字段名字典直接映射到存储器中容直接指向OSON字节。叶标量值的存储器中DOM更新可以在OSON中就地执行或通过写入时[0140]当OSON字节溢出JSON列的内联容量时,则对JSON文档使底层OSONDOM而不是存储器中的JSONDOM。对OSON执行更新操作的DOMAPI可以对OSON字TRANFROM()使用与LOBASSIGNMENT运算符共享的偏移来指向记录部分更新完成状态的存TRANSFORM()的结果进行完全替换。[0143]OSONDOM部分更新API实现对复制到可修改缓冲区中的输入OSON字节执行实际更[0148]如果在OSONDOM部分更新操作期间,追加字节总数将超过原始OSON文档大小的的新OSON字节,并将新OSON字节作为JSON_TRANSFORM()的返回值返回,使得调用LOBASSIGNMENT运算符可以执行完全文档新偏移(在此处例如使用重定向墓碑存储更新的内容[0151]对于对象和数组新元素插入,OSON部分更新可以预先分端接口暴露逻辑文档(当前状态),并且终端用户不直接知道可能已经发生的任何部分更统600包括用于传送信息的总线602或其他通信机制,以及与总线602耦合用于处理信息的在要由处理器604执行的指令的执行期间存储临时变量或其他中间信息。当存储在处理器[0159]计算机系统600还包括耦合到总线602的只读存储器(ROM)608或其他静态存储设施例,这里的技术由计算机系统600响应于处理器604执行主存储器606中包含的一个或多个指令的一个或多个序列而执行。这样的指令可以从诸如存储设备610的另一存储介质读入到主存储器606中。主存储器606中包含的指令序列的执行使处理器604执行在此描述的磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有孔图案的物理介质、[0164]在将一个或多个指令的一个或多个序列传送到处理器604以供执行时,可以涉及系统600本地的调制解调器可以接收电话线上的数据,并使用红外发送器将数据转换成红总线602上。总线602将数据传送到主存储器606,处理器604从主存储器606检索并执行指令。由主存储器606接收的指令可以可选地在处理器604执行之前或之后存储在存储设备链路620可以通过本地网络622提供到主计算机624或到由互联网服务提供商(ISP)626操作[0167]计算机系统600可以通过(多个)网络、网络链路620和通信接口618发送消息和接[0168]所接收的代码可以在其被接收时由处理器604执行,和/或存储在存储设备610或[0171]软件系统700被提供用于指导计算系统600的操作。可以存储在系统存储器(RAM)个)应用702的指令来操作。GUI715还用于显示来自OS710和(多个)应用702的操作结果,[0175]VMM730实例化并运行一个或多个虚拟机实例(访客机器)。每个访客机器包括诸如(多个)应用702。VMM730向访客操作系统呈现虚拟操作平台并管理访客操作系统的执VMM730可以向访客操作系统提供完全的硬件和[0177]在其他情况下,访客操作系统可以被专门设计或配置为在VMM730上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 孤残儿童日常护理中的社交技能培养
- 呼吸机管道的维护与管理
- 2025年一级造价工程师考试《建设工程造价管理》真题及解析
- 护理教育:融入鱼骨图思维训练
- 护理人性化服务与护理文化
- 【中考真题】黑龙江省齐齐哈尔市2026年初中学业水平考试生物学试卷(解析版)
- 护理未来趋势
- 手术室护理神经外科护理
- 护理三基:静脉输液静脉抽血技术
- 2026普通销售面试题目及答案
- 2026年建设工程质量检测人员考试(建筑地基与基础检测)题库及答案(安徽)
- 2025年国家故宫博物院应届高校毕业生招聘64人(北京)笔试历年参考题及答案
- 2026年山东省统考中考语文真题含答案
- 2026年事业单位考试时事政治试题及答案
- 建筑电气设计统一技术措施-2021
- 2026年全国《安全生产月》知识培训试题及答案
- 西安交通大学2026年强基计划笔试模拟试题及答案解析
- 成都东部新七中2025高一入学数学分班考试真题含答案
- 2026年金陵河西中学招生分班考试试卷
- 2026年上海市杨浦区社区工作者招聘笔试模拟试题及答案解析
- 配电运检员考试题及答案
评论
0/150
提交评论