通过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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人或者公司如何写版权认证的证明文件?

项目场景&#xff1a; 现在好多平台都在做知识付费&#xff0c;比如百度文库、CSDN、微博、头条、知乎等等&#xff0c;因此我想给大家做一些付费文档&#xff0c;想上传到百度文库的知识店铺 问题描述&#xff1a; 一般人不知道这个版权认证文件怎么写&#xff0c;怎么弄&am…

Bypass WAF实战总结

0X00前言 上个月刷了一波洞&#xff0c;然后这个月初远程支持了一个HW&#xff0c;在文件上传getshell的时候&#xff0c;碰到个各式各样的云waf&#xff0c;通过一个月的实战&#xff0c;总结了几个比较实用的技巧&#xff0c;文章总结的不全&#xff0c;只是基于我实战中用到…

Git教程学习总结(分享给热爱学习的你,团队的协作离不开你呀)

目录 Git 教程 Git 安装配置 Git 工作流程 Git 工作区、暂存区和版本库 Git 创建仓库 Git 基本操作 Git 分支管理 Git 查看提交历史 git log git blame Git 标签 Git 远程仓库(Github) Git Gitee Git 服务器搭建 Git 教程 Git 是一个开源的分布式版本控制系统&…

Linux的shell编写

-eq //等于 -ne //不等于 -gt //大于 -lt //小于 ge //大于等于 le //小于等于实验中遇到的问题&#xff1a; 1.NAMEuser1 中间不能有空格 2.[ xxx ] xxx前面和后面要有空格 任务1&#xff1a;使用case语句编…

rest spring_Spring的REST服务发现性,第5部分

rest spring这是关于使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第五篇。 上一篇文章介绍了RESTful服务HATEOAS的可发现性的概念&#xff0c;然后介绍了一些由测试驱动的实际方案。 本文将重点介绍可发现性的实际实现以及…

为啥这么多程序员大佬学习Cortex-M3

Cortex-M3是一个32位处理器内核。内部的数据路径是32位的&#xff0c;寄存器是32位的&#xff0c;存储器接口也是32位的。CM3采用了哈佛结构&#xff0c;拥有独立的指令总线和数据总线&#xff0c;可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线&#xff0c;…

Ffuf使用教程

kali安装教程链接&#xff1a;https://www.iculture.cc/cybersecurity/pig210 该工具用途广泛&#xff0c;可用于多种用途。一些用途&#xff1a; • 目录发现&#xff0c;可选择在 URL 中的任何位置进行模糊测试。 • 子域名发现 • 使用各种 HTTP 方法进行模糊测试。 安装 …

PHP中的__toString方法(实现JS里的链式操作)

_toString方法是在打印对象时自动调用的魔术方法,如果不声明会报以下错 Catchable fatal error: Object of class String could not be converted to 示例: PHP里有很多的字符串函数,假如要先过滤字符首尾的空格,再求出字符串的长度,一般会这么写:strlen(trim($str));如果要实…

如何有效地使用反射

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题&#xff0c;包括对象创建&#xff0c;并发&#xff0c;序列化&#xff0c;反射等。 它将指导您完成Java掌握的过程&#xff01; 在这里查看 &#xff01; 目录 1.简…

从字符串 const str = ‘qwbewrbbeqqbbbweebbbbqee‘;中能得到结果 [“b“, “bb“, “bbb“, “bbbb“] 以下错误语句是?

从字符串 const str qwbewrbbeqqbbbweebbbbqee;中能得到结果 ["b", "bb", "bbb", "bbbb"] 以下错误语句是&#xff1f;(B) A.str.match(/b/g) B.str.match(/b*/g) C.str.match(/b{1,4}/g) D.str.match(/b{1,5}/g) 解析&#xff1…

Burp Collaborator 使用总结

0x00&#xff1a;使用原因 我们在做渗透测试的时候&#xff0c;经常会遇到这种情况&#xff0c;测试跨站可能有些功能插入恶意脚本后无法立即触发&#xff0c;例如提交反馈表单&#xff0c;需要等管理员打开查看提交信息时才会触发&#xff0c;或者是盲注跨站&#xff0c;盲打 …

安装phpssdb扩展:

安装 igbinary 扩展(安装phpssdb扩展时候要用到--enable-ssdb-igbinary): clone https://github.com/igbinary/igbinary.git 安装phpssdb 扩展 &#xff1a;git clone https://github.com/jonnywang/phpssdb.git ; phpssdb 安装文档&#xff1a;https://github.com/jon…

在HTML中嵌入PHP代码,有以下几种方法,其中错误的是( )

在HTML中嵌入PHP代码&#xff0c;有以下几种方法&#xff0c;其中错误的是&#xff08; D&#xff09; A.以”<?php开头&#xff0c;以“?>”结束&#xff0c;中间为PHP代码。 B.以<script language“php”>开头&#xff0c;</script> 结束&#xff0c;中…

各大src地址

一、目录&#xff08;以下排名不分先后&#xff09; 1.360安全应急响应中心&#xff08;360SRC&#xff09;&#xff0d;http://security.360.cn/ 2.联想安全应急响应中心&#xff08;LSRC&#xff09;&#xff0d;http://lsrc.lenovo.com/ 3.腾讯安全应急响应中心&#xff…

文本”Hello, world.”显示的颜色是?

文本”Hello, world.”显示的颜色是? <style> #content .text {text-color:red;} #content>.title {color:green;} #content div.title {font-color:blue;} strong {font-color:yellow;} * {color:black;} </style> <div id"content"> <…

jrockit_1.6下载_Oracle JRockit Mission Control 4.1发布

jrockit_1.6下载Oracle发布了以前的仅JRockit专用工具Mission Control Suite&#xff08;JRMC&#xff09;的新版本。 4.1版本是次要版本升级&#xff0c;直接遵循4.0.1&#xff08;该版本发布于2010年中期&#xff09;。 但是&#xff0c;即使版本号表明是次要的升级&#xff…

dnslog盲注原理

Dnslog盲注原理 布尔盲注和时间盲注相当于猜单词的游戏&#xff0c;我们需要对每一位逐步的猜测&#xff0c;效率很低&#xff0c;需要发送很多的请求进行判断&#xff0c;很可能会触发安全设备的防护 我们需要一种方式能够减少请求&#xff0c;直接回显数据——Dnslog注入 Dn…

Sharepoint Ribbon Loaction

https://msdn.microsoft.com/zh-cn/library/ee537543%28voffice.14%29?f255&MSPPError-2147217396 列表视图相关loaction: Ribbon.List.CustomViews转载于:https://www.cnblogs.com/qiumc/p/4795020.html

JavaScript实现继承的方式,不正确的是:

JavaScript实现继承的方式&#xff0c;不正确的是&#xff1a;DA.原型链继承 B.构造函数继承 C.组合继承 D.关联继承 解析 javaScript实现继承共6种方式&#xff1a; 原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承。

如何创建和销毁对象

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题&#xff0c;包括对象创建&#xff0c;并发&#xff0c;序列化&#xff0c;反射等。 它将指导您完成Java掌握的过程&#xff01; 在这里查看 &#xff01; 目录 1.简…