访问nfs_通过NFS访问编年引擎

访问nfs

总览

编年史引擎是数据虚拟化层。 它抽象化了访问,操作和订阅各种数据源的复杂性,因此该数据的用户无需知道实际存储数据的方式或位置。 这意味着该数据可以在系统之间迁移或以更有效的方式存储,但对于开发人员来说使用起来很复杂。

基本界面是并发映射和简单的发布/订阅。 通过将它们与过滤器和转换之类的流结合使用,您可以访问内存数据高速缓存,LDAP,SQL数据库,键值NoSQL数据库和低延迟持久存储中的文件。

我们正在研究的是使用NFS作为一种访问方式,以及我们的Java和C#客户端以一种自然的方式访问数据。 这样,Windows,Unix或MacOSX上的任何程序都可以使用它。 看起来如何?

通过NFS访问。

Chronicle Engine中的数据存储以树的形式分层组织,而不像目录结构。 键值存储的键就像目录中的文件,值是文件的内容。 这将转换为虚拟文件系统。

在Java中,用于访问服务器或远程客户端上的地图。

Map<String, String> map = acquireMap("/group/data", String.class, String.class);

map.put("key-1", "Hello World");
map.put("key-2", "G-Day All");

但是,通过NFS挂载,我们可以从任何程序(甚至Shell)访问相同的映射。

~ $ cd /group/data
/group/data $ echo Hello World > key-1
/group/data $ echo G-Day All > key-2

为了获得价值,这在Java中非常简单:

String value = map.get("key-1");

通过NFS,它也很简单:

/group/data $ cat key-1
Hello World

那更复杂的功能呢?

拥有自己的NFS服务器的一个优点是,我们可以添加虚拟文件,只要它们遵循常规的文件访问合同,就可以执行功能。

在Java中,我们可以应用查询来实时获取20岁以上的所有人。 如果添加了条目,则会在出现时立即打印。

map.entrySet().query()
    .filter(e -> e.getValue().age > 20)
    .map(e -> e.getKey())
    .subscribe(System.out::println);;

那么如何在NFS上转换呢?

/group/data $ tail -9999f '.(select key where age > 20)'
Bob Brown
Cate Class

这将为您提供所有当前名称,但会出现任何新名称。

选择格式。

通过拥有虚拟文件,您可以要求使用其他格式。 假设基础数据对象是RDBMS数据库中的一行。 您可能需要CSV格式,但是可能需要XML或JSON。

/group/users $ ls
peter-lawrey
/group/users $ cat peter-lawrey.csv
Peter,Lawrey,UK,1001
/group/users $ cat peter-lawrey.xml
<user id="1001">
    <first>Peter</first>
    <last>Lawrey</last>
    <country>UK</country>
</user>
/group/users $ cat peter-lawrey.json


{"user": { "id": "1001", "first": "Peter", "last": "Lawrey", "country": "UK" }}

通过添加可识别的文件扩展名,文件可以以所需的格式显示。

更新记录就像写入文件一样简单。

与使用普通的NFS文件系统相比,有什么优势?

主要优点是可扩展性。 编年史引擎支持;

  • 一张地图(目录)中的数十亿个条目
  • LAN和WAN数据复制。
  • 实时更新更改。
  • 查询支持。
  • 资料压缩
  • 流量整形。
  • 可审核性是谁何时更改了什么。

我们计划也支持数据分发,并支持更多的后端数据存储。

反馈

您将使用这种系统做什么? 您会撒谎看到哪些功能? 您可以在此处或在Chronicle论坛上发表评论。 我期待听到您的想法。

翻译自: https://www.javacodegeeks.com/2015/08/accessing-chronicle-engine-via-nfs.html

访问nfs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值