问题标签 [orientdb-2.1]
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.
orientdb - OrientGraphFactory 池与网络连接池
我最近开始在 OrientDB 2.1 中使用新的 OrientGraphFactory,它在大多数情况下都很棒。
我正在使用 scala,并且这样做:
当我需要一个新的数据库实例时,我只需这样做:
这一切似乎都运行良好,但我在高负载时遇到了一些问题。我怀疑也许我需要对网络连接池做一些额外的工作,如 OrientDB 文档中所述:http ://orientdb.com/docs/2.1/Performance-Tuning.html
该文档建议像这样设置网络连接池:
数据库=新ODatabaseDocumentTx(“远程:本地主机/演示”);database.setProperty("minPool", 2); database.setProperty("maxPool", 5);
数据库.open(“管理员”,“管理员”);
我想知道 OrientGraphFactory 池是否也用作某种网络池,为每个数据库实例创建一个网络连接。是这样吗?还是我需要额外设置网络连接池?
谢谢!
orientdb - 使用 Tinkerpop 的 OrientDB 获取计划/策略
我一直在使用 Tinkerpop 2.6 和 OrientDB 来操作图形,但遇到了一些性能问题。
我怀疑这个问题与 OrientDB 延迟加载记录有关。在我的例子中,我通过两个不同的标签获取相邻的顶点,添加一个新的边,并设置一个属性。
我知道 OrientDB 建议注意获取计划,但我看不到通过 OrientGraph 或 Tinkerpop 这样做的明确方法。请注意,我使用 OrientGraphFactory 来获取事务数据库实例,我也没有在其中看到它。
如何将获取计划与 OrientGraphs 和 Tinkerpop 一起使用?
谢谢!
orientdb - 如何在运行时检查 orientdb 磁盘缓存大小?
我正在尝试调整 orientdb 2.1.5 嵌入式应用程序,至少减少磁盘的 I/O。我已阅读文档(http://orientdb.com/docs/last/Performance-Tuning.html)并使用storage.diskCache.bufferSize标志来增加磁盘缓存大小。看着 htop 和 top (我在 linux 上)我没有注意到 java 进程的内存使用有任何增加。即使是 orient 公开的两个 mbean(O2QCacheMXBean和OWOWCacheMXBean)也没有突出显示有关增量的证据。那么如何确定当前的磁盘缓存大小呢?
这是我的 java 命令行的一部分:
非常感谢。
group-by - OrientDB - 连接两个字符串并聚合它们
通常,如果我想连接两个字符串并应用聚合,我遵循以下语法:
Sql 服务器
甲骨文
在 OrientDB 中,是否可以连接两个字符串并获得它们的聚合?
kerberos - OrientDB 与 Kerberos 的集成
我正在尝试将 OrientDb 2.1.6 与 Kerberos 集成,但找不到任何有关它的文档。需要澄清
1) OrientDB 2.1.6 支持 Kerberos
2)任何人已经实现了它。
orientdb - 从集群名称请求集群 id
有没有办法从集群名称中请求集群 ID?
上下文:在我们的上下文中,默认集群允许子集群查看但不更新数据。我想通知用户它正在查看从与其自己不同的集群提供的数据。
例子
分公司从总公司看到产品,但不应该更新它。oRoles
解决了这个问题。
我如何知道分支机构用户当前正在查看总部的产品?
我正在寻找类似的请求(该查询不起作用)
或者通过 JAVA API 的任何方式
(在 orientdb 2.1.0 上运行)
orientdb - OrientDB 在批处理/脚本中创建边缘问题
我有 2 个边缘创建问题。
首先,我正在使用批处理命令创建一堆顶点和边。有时会在尚未创建的顶点之间创建边(这取决于输入顺序,目前无法控制)。当然,东方服务器会抛出异常而不是静默失败。我找不到告诉它跳过它或避免创建边缘的方法。在Neo4j中,您可以执行以下操作:
因此,如果a或b不存在,则不会创建边。
有没有办法做这样的事情?在检查a和b是否存在之前进行选择是不好的,因为顶点可以在前面的批处理命令中创建,因此不存在于 db 中,因此它必须是 osql 命令的一部分。
其次,与这个问题相关,我想我可以构建一个脚本,这样我就可以将同时查找a和b的选择分配给一个变量。
是否可以根据源和目标的条件发出创建命令?如果是这样,那将解决这两个问题。
orientdb - OOfflineClusterException 消息:无法从离线集群中读取记录
如果某个记录在离线集群中可用并且我尝试使用索引来获取它,它会给出 OOfflineClusterException。为什么要访问离线集群,不应该是正常记录未找到的情况。
orientdb - OrientDB 轻量级边缘与 Ridbags?
最近我遇到了一个用例,使用轻量级边缘很有意义。在检查两个顶点是否作为选择条件的一部分相关时,它可以加快查询速度。
也就是说,因为我在高度并发的环境中运行,我遇到了一些冲突(OConcurrentModificationException)。我通过将冲突策略设置为该特定类的自动合并来解决这个问题。
在进一步调查中,我在添加边时遇到了这篇关于并发的文章:http ://orientdb.com/docs/2.1/Concurrency.html#concurrency-when-adding-edges
它建议在边缘变化非常频繁的情况下使用 RID Bags,并且具有每次添加/删除边缘时不会增加版本的巧妙优势。听起来不错,但我无法让它工作。
我尝试将 -DridBag.embeddedToSbtreeBonsaiThreshold=-1 添加到我的客户端,但没有任何效果。然后我进入我的代码并添加:
OGlobalConfiguration.RID_BAG_EMBEDDED_TO_SBTREEBONSAI_THRESHOLD.setValue(-1);
我最后还尝试将 -DridBag.embeddedToSbtreeBonsaiThreshold=-1 添加到我的 orientdb 服务器(在 server.sh 中)。仍然没有效果。每次更新边缘时,版本都会增加(我假设我可以这样判断它不能正常工作)。
有没有人想过轻质边缘如何与ridbags一起使用(或不适用)?
谢谢!
orientdb - Orient SQL - 使用 WHERE 过滤结果集?
我有一些关于东方 SQL 查询的语义问题。
以这个非常简单的图表为例:
换句话说,去掉#12:1 的给定用户是去掉#12:2 的另一个用户的朋友。
为了得到用户 #12:1 的朋友,可以用 Orient SQL 像这样表达这一点:
此查询将返回一个结果列表,该列表由具有 rid #12:2 的用户组成。
现在假设我想通过附加条件过滤该结果列表,例如数值(“年龄”):
上面的查询将过滤当前顶点 (#12:1),而不是结果集。这是有道理的,但是有没有办法将过滤器应用于 EXPAND(both("FriendOf")) 结果而不是当前顶点?我知道我可以像这样用 gremlin 做到这一点:
但是上面似乎没有使用索引(至少在我要求它解释时没有)。对于非常大的数据集,这是有问题的。
那么有没有合适的方法将 WHERE 语句应用于结果数据集?
谢谢 !