@ cloudbitmaps/ core (中文(简体) )
大多数人不安装此软件包. 发动机在下面 云位图它会独自到达 当安装要的两个软件包时。取而代之的是:
pnpm add @cloudbitmaps/roaring @cloudbitmaps/s3 # the store, and the storage you have (or /gcs, or /azure-blob)
安装每张的同版本 @cloudbitmaps/* 软件包:它们一起发行,每个包都标出准确的版本 core 它是与建造的.
取决于 @cloudbitmaps/core 直接只写驱动程序,通过 @cloudbitmaps/core/driver-kit。 。 。 .
此套件的主要条目,以及
@cloudbitmaps/core/node这是内部的. 主条目是引擎@cloudbitmaps/roaring和驱动软件包的构建,以及/node持有后端和键盘,需要一个节点内建. 两者均在稳定承诺之外:他们可以改变任何微小的放行,改变为要么没有变换GELOG突破入会. 安装@cloudbitmaps/roaring还有司机 这里的公开条目是@cloudbitmaps/core/driver-kit写司机的合同.
仅限无害环境管理,节点22.12. 使用
import; 用于require()时标和类型脚本,参见 常见的JS、快取和类型脚本。 。 。 .
前1.0:API和上盘格式仍然可以更改. 在npm上,这些文件与它们所运送的版本相符;在GitHub上,它们描述
main,更改日志则说每个版本都改变了什么.
这是什么
解码-不可知云引擎:无限的内存缓存 .crbm 对象, 切入
交叉, 分块注册, 写入并打印路径, 生成收藏, 加密休息
并加密、通过重写消除、保留以及内存和本地文件系统后端(导出自 @cloudbitmaps/core/node,因此主条目导入已建的节点). 它已经 零运行时间
依赖和无云 SDK云后端是他们自己的包裹, 建造针对
@cloudbitmaps/core/driver-kit司机的申报合同取决于 第三方驾驶员也可以使用.
它的主要条目是内部引擎(读取引擎,商店方法的独立形式,再试和
(预算内部) @cloudbitmaps/roaring 和驱动软件包导入;它不是一个公共 API。 真是个
应用程序用途按名称从 @cloudbitmaps/roaring司机合同(储存和登记)
端口、登记簿的记录类型、读取源端口和密钥端口)导出于 @cloudbitmaps/core/driver-kit
仅此而已, 已完整 : 它的签名名称也会导出 .
如何设置存储路径
这个 .crbm 存储路径在 src/core/,每个关切单元。 箭头读作"进口":
bulk-load.ts write path: ids in, a generation written and published
/ | \
v v v
publish.ts crbm-write.ts crbm-open.ts <---- crbm-storage-source.ts read path
publish.ts, (中文(简体) ), crbm-write.ts 财务报告和审定财务报表 crbm-open.ts 输入其它的. bulk-load.ts 进口
sorted-chunks.ts,它将一个排序的载荷的ID 切成块,并且没有进口它们。 在这个团体之外, load.ts 进口
bulk-load.ts, (中文(简体) ), publish.ts 财务报告和审定财务报表 crbm-open.ts· ; erase-id.ts 进口 publish.ts, (中文(简体) ), crbm-write.ts 财务报告和审定财务报表
crbm-open.ts· ; rollback.ts 财务报告和审定财务报表 consistency.ts 导入 crbm-open.ts。 。 。 . combine-many.ts, (中文(简体) ), pinned-storage-source.ts
(仅类型)和软件包条目导入 crbm-storage-source.ts。 。 。 .
| 文件 | 持有 |
|---|---|
crbm-write.ts | 写出来自内嵌位图、溪流或已编码块的不可改变的一代 |
sorted-chunks.ts | 排序负载的块( c)sorted: true:升入的id在读取时一次切入一个块,每个块检查(一个32位的id,不低于之前的;一个重复跳过),id读取一次,以及它们为载荷所保留的第一个错误 |
publish.ts | 仅转发指针 推进每个写入的结尾, 租赁补丁, 拒绝在清晰的文本生成时指向按键行, 以及解决一个没有答案的注册写 |
bulk-load.ts | 装入器 load() 以读取头为基础: id、 解码位图或组合的块入取出, 制成块( ids buckleed, 用其编码符分出一个位图, 其中编码符可以分出, 组合的块检查) , 写出一代, 当一个登记册被接通而呼叫者不推迟时公布; load() 推迟,并通过 publish.ts 在它的戒备之后。 排序的 ID 是通过 : crbm-write.ts 在读取时,在行后,数字和密钥就定了 |
known-generations.ts | 该行的分类账, knownGens: 什么是可用的,窗口 一个负载收集的名字,盖子,和分类账 一个发布和回滚写 |
ledger-seed.ts | 从桶上读取一行没有的分类账的第一个窗口 |
crbm-open.ts | 在没有缓存的情况下打开存储的一代:驱动器对象之上的blob读取器、检查和注释打开、将一个开口与它所读对象连接起来的身份检查、生成验证和回滚目标打开 |
crbm-storage-source.ts | 读取路径 : CrbmStorageChunkSource,它的分辨率缓存和接针机械 |
没有写入路径模块导入 crbm-storage-source.ts,它只进口 crbm-open.ts 其他四个.
排行数代
登记行携带 knownGens: 部分的几代人知道而且还没有决定删除,每个部分都与
CRC32C 其对象的页脚商店,目前为最后一个. 它们就是它按这个顺序制造的,当一个
发布一行,没有可用的分类帐种子 1,这些种子由 keep 保存在桶中,其中可以包括
对象未发布负载( 孤儿 或 出错 ): 一个条目说库知道生成及其校验和, 而不是
一个负荷发布它。 其条目下方
指针是装有载荷的窗口 代代为活地租赁的窗口 所以装有载荷就删除了它所出版的东西
中,只列出不能依赖行的桶.
row (schema 5) bucket
currentGen: 7 segment.3.crbm segment.5.crbm segment.6.crbm segment.7.crbm
knownGens: [ {5,crcA}, {6,crcB}, {7,crcC} ] | | | |
\_____ window ____/ \ current deleted by in the window in the window current
name when a
load pushed it out
- 一个出版社写的 在移动指针的比较和擦拭中。 在可以使用分类账的一行中,窗口
取自世世代代的顺序:
keep最近编号的条目 低于新生代(最多127个),除此之外,每一次有活租期的租户,无论什么keep说,然后 输入在新一代上方编号的回滚(带入时,分类账持有量不到128,从未) 收集,没有在keep),后为新一代. 取代出版的一代是 分类账的最后一个条目,所以它是第一位的, 在回滚之后, 恢复的一代排在最前面 滚回远离, 远离每一载。 超过一行,没有可用的分类账(手修理、恢复、指针) 由手移下)负载列出桶并写出窗口的数keep保存在那里: 生成 先以当前命名的行,然后以数字表示最新,每行有页脚读取(店下一次读取八行) 读取重试,被取代的一代也读取; 清晰的总结,用另一个校验和来描述它, 除他们外,还有数以百计的世代 在写完之前,再读一行,最古老的一行, 和窗前租赁的一行 取代最后一个,然后新一代。 一代人从桶中走出, 或谁的脚没有它的检查, 被排除在外。 然后,出版商通过这个统计收集. - 一个化身的首次出版 独自写出新一代 (无行,或无指针的行):下面没有 它被它制成电流,所以一个种子只能命名没有公布的物件.
- 不再开始使用可用的分类账:超过一连串出版物
keep携带过64个名字 没有租赁,下一个负载与akeep在64个或更少的窗口上写下它从分类账的订单中提取的窗口 租入的和超过其数目的,通过列名收集. - 有集所诵. 装满了
keep最多64个删除其出版物所遗漏的条目。 传球 计数(a)keep标注在无租赁的指针下64个以上的分类账,或 首先装入一行,没有可用的分类账)先保存分类账自己的最近时名,再保存最新时名 按人数分列,keep在全部中,并省去每行知道的名字 当它再次读取行之前删除. - 一个回滚带它,用它读取的页脚的校验和将其目标移到尾端,保留每个页脚 生成该行的租赁名称, 当它剪切一个完整的分类账, 并且不写一个没有的行: 回滚 从来没有开始一个分类账.
- 擦去的重写让自己独处,因为它删除了每一代人;一丝一毫地删除它。 一个
消除不重写将每代人先从分类账中删除, 写在之后
查找和在第一次删除之前,只有在分类账上列出(
erase-id.ts栅栏;其收藏 当他们在删除前读取行名时,将每代行名省去. - 盖子:一个作家最多写了192个条目,并且只保留一个条目,而分类账持有的则更少 128;登记簿接受192个书面,384个读取,因此,不因分类账的大小而拒绝公布或回滚.
- 错误: 一个错误的分类账是
ValidationError写着IntegrityError阅读; 不同意的分类账 其行被读取而未使用;所盖一行 4 或更低为UnsupportedError。 。 。 . - 一个回滚读它: 它只移动到一代的分类账名称上, 其对象的页脚校验和就是那个
录音,除非呼叫者通过
allowUnknown; 单指指针决定(一行无可用分类账,a a 指针以下的目标不需要旗帜.rollback.ts守规矩.
文档
许可证
阿帕奇 - 2.0