Jackrabbit之DataStore

jackrabbit-datastore-migration jackrabbit-datastore-migration 适用于Apache Jackrabbit的DataStore迁移工具。 Apache Jackrabbit支持各种DataStore组件,例如FileDataStore , DbDataStore , S3DataStore和VFSDataStore 。 有关详细信息,请参见 。 使用此迁移工具,您可以将一个DataStore迁移到另一个DataStore 。 例如,从DbDataStore到VFSDataStore 。 另外,我在分享了使用此工具的经验。 该工具已通过Spring Boot和Spring Batch实现。 因此,它遵循那些项目建立的大多数标准约定。 请参阅以获取更新。 如何建造 首先,下载最新的源发布形式 。 并且,提取压缩文件并在未压缩的文件夹中构建项目。 $ mvn clean package 立即下载
在Jackrabbit存储体系中,PersistenceManager主要用来存储节点的基本属性信息,而二进制数据信息(更确切的说是属性类型为jcr:data的数据,以下称之为文件数据)是通过DataStore来存储的
每个文件数据的ID为它的数字签名,这样便确保了同一个的文件在DataStore中只存在一份拷贝,而在PersistenceManager中,相应的JCR节点只是存储了文件数据的引用ID,而不是它的数据内容,这样在执行节点拷贝操作时,便可以节省磁盘和内存的使用空间。
同时,DataStore还可以在多个Repository之间实现共享,执行数据备份和恢复等操作。
除了优势之外,DataStore也存在相应的局限性:存储在DataStore中的数据是不可改变的
包括:
    在删除JCR节点的时候,DataStore所对应的文件数据并不会级联删除
    对文件数据执行更新操作时,Jackrabbit会将新的文件数据上传到DataStore,然后更新该节点的文件数据引用ID,而之前所引用的文件数据在DataStore中依然存在
所幸,jackrabbit针对DataStore提供了垃圾回收机制,可将不使用的数据文件清除。

预定义DataStore:

Jackrabbit预定义了以下几种类型的DataStore供开发人员使用,分别是:
1.File Data Store(org.apache.jackrabbit.core.data.FileDataStore)
将文件数据存储到本地文件系统上
2.Database Data Store(org.apache.jackrabbit.core.data.db.DbDataStore)
将文件数据存储到数据库中
就访问效率来看,FileDataStore的性能要高于DBDataStore
除此之外,开发人员还可自定义DataStore,来引入额外的存储需求,如:使用HDFS来实现文件数据的分布式存储
要想实现自定义的DataStore,首先需要清楚它的工作流程:
在使用Property.setValue(InputStream stream)方法为节点指定文件数据时,Jackrabbit会首先检测该文件数据的大小,如果大于指定域值(通过minRecordLength配置),将数据存储到DataStore中去,然后在PersistenceManager中保留该文件数据的引用ID,否则,直接将文件数据存储到PersistenceManager体系中
除此之外,还要熟悉DataStore的接口API,及其声明的方法:
org.apache.jackrabbit.core.data.DataStore
getRecordIfStored(DataIdentifier identifier):获取指定identifier对应的文件数据记录,如果记录不存在则返回null
getRecord(DataIdentifier identifier):获取指定identifier对应的文件数据记录,如果记录不存在则抛出异常
addRecord(InputStream stream):添加文件数据到DataStore中
getAllIdentifiers():获取所用文件数据的唯一标识(数字签名)
init(String homeDir):初始化DataStore环境
close();关闭DataStore
getMinRecordLength():获取DataStore能够存储的文件数据的最小值

DataStore配置:

在repository.xml文件中,DataStore通过如下xml配置:
1.FileDataStore
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
    <param name="path" value="${rep.home}/repository/datastore"/>
        <param name="minRecordLength" value="100"/>
<DataStore/>
path:为datastore的根目录
minRecordLength:为文件数据的最小值
2.DbDataStore
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
        <param name="url" value="jdbc:postgresql:test"/>
        <param name="user" value="sa"/>
        <param name="password" value="sa"/>
        <param name="databaseType" value="postgresql"/>
        <param name="driver" value="org.postgresql.Driver"/>
        <param name="minRecordLength" value="1024"/>
        <param name="maxConnections" value="3"/>
        <param name="copyWhenReading" value="true"/>
        <param name="tablePrefix" value=""/>
        <param name="schemaObjectPrefix" value=""/>
</DataStore>
url:数据库连接地址
user:数据库用户名
password:数据库连接密码
driver:数据库驱动类
minRecordLength:文件数据最小值
copyWhenReading:默认为true,在执行read操作时,会首先拷贝文件数据到临时文件中,供并发读取
    如果指定为false,则对文件数据的访问操作是顺序读取
maxConnections:数据库所允许的最大并发连接数
databaseType:数据库类型,DbDataStore主要支持以下几种类型的数据库,分别是:
    db2, derby, h2, mssql, mysql, oracle, sqlserver


jackrabbit内容仓库的实例(两个工程) 里面包含两个工程,一个是官方的三个小demo,另一个是在ibm页面看到的实例,比小demo稍微高级一些,希望可以帮助大家迅速入门和理解jackrabbit。 立即下载

相关推荐

最新版谷歌浏览器Axure插件(免翻墙)

本文介绍了在Chrome浏览器无法直接打开Axure导出HTML文件的解决方法。由于国内网络限制无法访问Chrome商店,需手动下载安装AxureRP扩展插件(提供百度网盘下载链接)。安装步骤包括:1)启用开发者模式;2)拖拽CRX文件或加载解压文件夹;3)勾选"允许访问文件网址"。同时还提示若浏览器版本过低可能无法正常运行,并给出了浏览器升级方法。该教程详细说明了从插件安装到浏览器升级的完整解决方案。

OldCat先生 2977

jackrabbit查询语句——SQL

接触到的 jackrabbit支持SQL、SQL2、XPATH查询以下查询是SQL查询 分页查询 // make SQL query QueryManager queryManager = workspace.getQueryManager(); // create query String sqlStatement = "SELECT * FROM nt:unstructured"; ...

敲代码的小学生 926

VS2022如何兼容老项目?.NET Framework 4.0/4.5安装避坑指南

本文提供了在Visual Studio 2022中兼容和维护.NET Framework 4.0/4.5等老旧项目的完整解决方案。针对VS2022无法直接识别旧框架的核心问题,文章详细剖析了原因,并重点推荐通过官方NuGet包安全获取引用程序集的方法,给出了从下载、解压到部署至标准目录的详细步骤。同时,文章还深入探讨了项目文件格式过旧、NuGet包还原失败等进阶问题的排查与解决策略,旨在帮助开发者高效、稳定地在现代开发环境中维护历史代码库。

weixin_27734811的博客 515

jackrabbit mysql_Jackrabbit之DataStore | 学步园

在Jackrabbit存储体系中,PersistenceManager主要用来存储节点的基本属性信息,而二进制数据信息(更确切的说是属性类型为jcr:data的数据,以下称之为文件数据)是通过DataStore来存储的每个文件数据的ID为它的数字签名,这样便确保了同一个的文件在DataStore中只存在一份拷贝,而在PersistenceManager中,相应的JCR节点只是存储了文件数据的引用I...

weixin_29137489的博客 329

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧)

本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。

1a2s3d4f5g的博客 653

osgEarth实战:5分钟搞定3DTiles模型加载(附完整配置代码)

本文提供了一份osgEarth加载3DTiles模型的实战指南。通过详解核心Earth文件配置与精简的C++集成代码,帮助开发者快速在三维地球场景中集成倾斜摄影与BIM等海量模型,并分享了性能调优与常见问题排查技巧,有效提升开发效率。

jjj34的博客 480

jackrabbit mysql_Jackrabbit之DataStore

预定义DataStore:Jackrabbit预定义了以下几种类型的DataStore供开发人员使用,分别是:1.File Data Store(org.apache.jackrabbit.core.data.FileDataStore)将文件数据存储到本地文件系统上2.Database Data Store(org.apache.jackrabbit.core.data.db.DbDataSto...

weixin_42393245的博客 370

AI大模型驱动的智能座舱研发体系重构

AI大模型正重构智能座舱研发体系的核心逻辑,需以场景认知为起点、混合架构为支柱、AI原生生态为落脚点。未来,研发体系需持续融合认知科学、边缘计算与开放生态理论,推动座舱从“工具”进化为“伙伴”。

我的专栏 1916

深入浅出 jackrabbit 九 索引合并(下)

在上文中,ahuaxuan讲到了索引创建的主体流程,但是索引合并其实还有一个较为重要的细节ahuaxuan没有详细阐述。本文中,ahuaxuan将会详细阐述这个问题          本文分成两部分内容          1  考虑应用拓机时的数据正确性问题。          2  jackrabbit是如何解决这些问题的。            而这个细节将会直接影响我们对query...

求贤若渴, 礼贤下士 210

MVDR算法: 自适应波束形成在信号处理领域中扮演着重要的角色。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。

MVDR算法是一种用于抑制干扰信号并增强感兴趣信号的自适应波束形成算法。它的基本思想是通过对干扰信号进行空间滤波,使其在感兴趣信号方向上的输出功率最小化。这种方法可以提高信号的质量和可辨识度,特别是在存在多个干扰源的复杂环境中。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。使用MVDR算法,我们可以通过对观测信号进行波束形成来抑制干扰信号并增强感兴趣信号。以上是MVDR算法的Matlab实现。的每一列代表一个阵列元素的观测信号。表示期望的波束指向,即感兴趣信号的方向。

HackWhisper的博客 1246

YOLOv8模型轻量化实战:基于稀疏化剪枝与L1正则化的高效目标检测模型优化-附源码

本文提出一种YOLOv8轻量化方案,通过L1正则化稀疏化训练和动态阈值通道剪枝,在边缘计算场景中优化模型性能。方案分三步:首先通过L1正则诱导权重稀疏化并动态衰减系数;然后基于BN层权重统计进行通道剪枝,保留80%关键通道;最后对剪枝模型微调恢复精度。在COCO128数据集上验证,模型体积压缩40%,推理速度提升2.3倍,mAP仅下降0.4%,实现了精度与效率的平衡。该方案为移动端部署提供了可行的轻量化技术路径。

m0_64661770的博客 479

Apache Jackrabbit学习

Apache Jackrabbit(内容仓库)是一个高级的信息guanx

Amy的学习之路 5858

【知识分享】IBIS 建模指南 03

本文介绍了差分缓冲器的数据提取方法,重点分析了差分系统与单端系统的核心差异。文章详细阐述了差分接收机和驱动器的结构特点、工作原理及建模方法,指出全差分结构具有优异的电源噪声抑制能力。针对IBIS建模规范,作者提出了三维I-V曲面数据提取技术,并介绍了共模/差模电流分离、片上端接处理以及V-T表生成的解决方案。文章还探讨了差分电容(C_diff)的测量方法和数据简化策略,为复杂差分缓冲器的精确建模提供了系统化的技术路径。

一只豌豆象的博客 1282

Apache Jackrabbit简介及入门

文章目录1.什么是JCR1.1 JCR 是什么1.2 JCR的内容仓库模型2.什么是Jackrabbit3.使用Jackrabbit3.1 配置Jackrabbit环境3.2使用Jackrabbit 1.什么是JCR 1.1 JCR 是什么  Java Content Repository API(JSR-170)试图建立一套标准的API去访问内容仓库。 内容仓库可以理解为一个用来存储文本和二进制数据(图片,word文档,PDF等等)的数据存储应用程序。  你不用关心你真正的数据到底存储在什么地方,是关系数

一个巨大的博客 7342

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

WebDAV(4)Jackrabbit and Use SimpleWebdavServlet

WebDAV(4)Jackrabbit and Use SimpleWebdavServlet 1. Use SimpleWebDAVServlet Change the web.xml to follow: Webdav The webdav servlet that conn...

快马扬鞭须努力! 379

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【深入浅出Apache Jackrabbit】第三章 Repository 配置文件

Apache Jackrabbit 是一个完全符合 Java 内容库 API (JCR) 的开源内容库。它可以作为一个持久化的仓库来存储和检索数据。下面讲解如何自定义Repository 配置文件配置 Apache Jackrabbit 作为持久化仓库,并且可指向仓库的存储位置。

这是一个爱吃火鸡味锅巴女孩的博客 713

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pentaho资源库迁移-MySQL

Pentaho6.1资源库MySQL迁移   Pentaho BIPentahoMySQL 一、软件环境 操作系统:Windows10 64位 Pentaho版本: biserver-ce-6.1.0.1-196 MySQL版本:5.5.15 MySQL Community Server (GPL) JDK版本:Java 1.7.0_80 二、执行官方sql脚本文件     1...

tweewtew的博客 699

hadoop hdfs 分布式存储

1.克隆前的工作1.配置好网络nat 需要设置静态ip并能通过主机上网ssh 和 rsync 是必须下载的2.yum install vim wget rsync ssh 并配置vim set nu set ts=4 .vimrc3.下载jdk和Hadoop 解压到/usr/local/java 和 /usr/local/hadoop4.配置java 和 h...

adam9988888的博客 142

JackrabbitTest

package org.sf.jackrabbit; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilterInputStream; import ja

xunianchong的专栏 776

jackrabbit mysql,使用文件系统而不是数据库来存储jackrabbit中的pdf文件

In our project we use jackrabbit with spring and tomcat to manage pdf files.Currently MySql database is being used to store blob files (in terms of jackrabbit it's called BundleDbPersistenceManager).A...

weixin_39882948的博客 235

【深入浅出Apache Jackrabbit】第四章 Apache Jackrabbit 文件存储

Jackrabbit是一个开源的Java内容库,符合Java Content Repository (JCR)规范。JCR是一个用于存储和获取结构化和非结构化内容的Java API。Jackrabbit允许你在它的库中存储和检索各种类型的数据,包括文件。

这是一个爱吃火鸡味锅巴女孩的博客 883

jackrabbit 知乎_Apache Jackrabbit 2.0.0版最终版

Apache Jackrabbit团队已宣布Apache Jackrabbit 2.0.0的存在 。 2.0.0版是Java技术API内容库2.0.0版(JCR 2.0)的完全兼容且可用于生产的实现。此版本还实现了JSR 283规范要求的所有功能。 2.0.0版具有所有数据库后端的数据库连接池功能; 以及使用Apache Tika进行全文索引。 请注意,Jackrabbit 2.0.0...

303

Apache Jackrabbit Oak 入门指南

Apache Jackrabbit Oak 入门指南 jackrabbit-oakApache Jackrabbit Oak项目地址:https://gitcode.com/gh_mirrors/ja/jackrabbit-oak 1. 项目介绍 Apache Jackrabbit Oak 是一个高性能、可扩展的层次化内容存储库,被设计用作现代世界级网站和其他对性能要求极高的内容应用程序的基础。...

gitblog_00023的博客 521

Jackrabbit存储配置(数据库方式 SQL server)

配置如下: http://jackrabbit.apache.org/dtd/repository-1.4.dtd">

知识积淀 3766
上一篇: HDFS之SequenceFile和MapFile
下一篇: simple-spring-memcached简介
JavaMan_chen
博客等级 码龄19年 329粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值