问题标签 [microstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
726 浏览

java - MicroStream(反)序列化如何工作?

我想知道 MicroStream 的序列化是如何详细工作的。既然它被描述为“超快”,它就必须依赖代码生成,对吧?还是基于反射?
与 Protobuf-Serialization 相比,它将如何执行,Protobuf-Serialization 依赖于直接读取 java 字段并将它们写入字节缓冲区的代码生成,反之亦然。
在大规模序列化​​对象时,使用反射会大大降低性能,不是吗?

我正在寻找一种快速的方法来传输和持久化多人游戏的对象,并且每一毫秒都很重要。:)

提前致谢!

PS:由于我没有足够的声誉,我无法创建“微流”标签。https://microstream.one/

0 投票
1 回答
155 浏览

java - 想知道微流类 StorageConfiguration

微流数据库及其类 StorageConfiguration 有两个问题:

1) New() 和 Builder() 方法与 DEFAULT 构造有什么区别?

2)为什么这些方法都是大写的?这似乎不是 Java 命名约定。

感谢您的任何回答!

0 投票
1 回答
58 浏览

java - 备份目录中缺少 PersistenceTypeDictionary.ptd

当使用带有备份目录的 Microstream 数据库时,除了“PersistenceTypeDictionary.ptd”之外的所有文件都被克隆到备份目录中。

尝试将备份目录用作原始数据库时,Microstream 尝试重现此丢失的文件,但出现 NullPointerException:

我的行为有什么问题?

0 投票
1 回答
145 浏览

java - MicroStream 用作搜索服务器

我正在评估 MicroStream。我知道它是一个存储引擎,用于部分存储、加载和更新对象图。从 MicroStream 的角度来看,我在内存中的对象图就是我的内存数据库。对于查询,我可以使用 Java 流。如果这是正确的,我应该可以很容易地使用 lucene 创建像弹性搜索这样的搜索服务器,对吧?

MicroStream 搜索服务器的优势在于它可以使用真正的 Java 对象而不是键值、JSON 或类似的东西。这可能吗?

0 投票
1 回答
168 浏览

java - 微流延迟加载/关系

按照此代码https://github.com/microstream-one/demo-readmecorp/tree/master/core/src/main/java/com/jetstreamdb/demo/readmecorp 我可以看到一本书只有一个作者,意味着一位作者可以拥有多本书 = 一对多关系

试图写一本书有很多作者我试着像在书店里那样做。(我想这将是许多)

改变

在构造函数中我改为

和方法 author() 到

我还在 ReadMeCorpData 中注释掉了快速测试的方法,然后我得到了这个错误:

所以我的问题是我怎样才能让一本书有很多作者,可能是我的想法在微流中已经过时了,那么我在哪里或如何获得在微流中以正确方式对数据建模的想法?

(我试图让作者实现 Lazy 并且错误消失了,但是由于我没有找到任何实现 Lazy 的示例代码,我不知道这样做是否可以)

0 投票
3 回答
145 浏览

java - RapidClipseX、MicroStreamDB:如何将 MicroStream 表分配给 RapidClipseX Grid?

我尝试使用 RapidClipseX 和 MicroStreamDB。我生成了一个存储,在不同的表对象中导入了不同的数据。现在我想读取数据并在 RapidClipseX Grid 组件中将其可视化。

通过使用 MicroStreamDB,我没有像 hibernate 那样的 DAO 对象。我仍然不知道该怎么做。RapidClipseX 文档中也没有可用的示例,Microstream 文档中也没有。

我尝试使用以下分配,它仍然填充网格。但它用大约 6000 行填充网格,这仍然是表中的行数。但是每一行的内容都是一样的,仍然是db-table中最后保存的一行。(我仍然通过文本编辑器检查,如果 MicrostreamDB 存储了正确的数据。--> 是的,它有)

这是我使用过的表的类:

以下代码是我的dataRoot:

出了什么问题,问题出在哪里?任何帮助/想法/示例将不胜感激。rgds 奥帕海因茨

0 投票
1 回答
60 浏览

java - Java Microstream - ImmutablePair 导致 PersistenceExceptionTypeNotPersistable

Apache ImmutablePair, (org.apache.commons.lang3.tuple.ImmutablePair) 在存储 Java 对象图时导致 PersistenceExceptionTypeNotPersistable。

我应该如何解决这个问题?如果使用 typeHandler,有例子吗?

0 投票
2 回答
79 浏览

java - Java Microstream - 合成类 - PersistenceExceptionTypeNotPersistable

使用 Microstream 得到以下异常。由引用静态内部类的类引起。我该如何解决这个问题?

异常状态如下,但文档没有解释如何实现PersistenceTypeResolver

详细信息:合成类($1 等)不是可靠的持久性,因为源代码元素的简单重新排序会改变类的名称标识。对于必须依赖于通过标识名称解析类型的类型系统,这将默默地导致潜在的致命错误。如果处理合成类(例如匿名内部类)是绝对必要的,则可以使用自定义 one.microstream.persistence.types.PersistenceTypeResolver 来删除异常并承担正确处理合成类名称的全部责任。在一个.microstream.persistence.types.Persistence.derivePersistentTypeName(Persistence.java:1083)

0 投票
1 回答
171 浏览

java - Java 微流列表对象未正确存储

我有以下扩展 ArrayList 的对象结构。检索时,List 为空,因此没有任何值存储在微流对象图中。不确定这是不是

  1. 一个错误
  2. 不支持的功能
  3. 必须实现 CustomHandler

创建FooTable对象和 toString 的代码导致

FooTable(super=TableListImpl(super=[a, b, c], tableNo=1, datatableNo=2), baz=baz)

将 FooTable 存储在 MicroStream 中。停止/启动应用程序/数据库并检索 FooTable 并且列表为空。有趣的是,当检查对象变量“size=3”时。看来微流看不到这个对象扩展列表的事实,并且只保留其他值而忽略列表。

有关如何在不更改对象结构的情况下解决此问题的任何建议。

注意:为简洁起见,此处使用 Lombok。

0 投票
2 回答
188 浏览

microstream - 微流是否已经支持 JDK 15 - 记录问题

我正在使用 JDK 15.0.1 并尝试保存记录。我在微流代码中遇到错误。语句if (declaringClass.isRecord())中的异常抛出 text can't get field offset on a record (preview):

在文档中,声明自 JDK 14 起支持记录(请参阅https://manual.docs.microstream.one/data-store/faq/java-features#can-microstream-handle-records)。

我使用以下版本的微流

我做错什么了吗?

真挚地