首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

新型行情中心:基于实时历史行情的指标计算和仿真系统

实时数据的推送对数据分发的延和稳定性有较高要求,消息中间件、内存数据库、跨进程的共享内存是常用的技术方案。历史数据的推送可以通过数据库的在线查询,也可以通过离线的数据下载来完成。...DolphinDB操作简单,可扩展性强,具有良好的容错能力及优异的并发访问能力。DolphinDB 可以Linux或Windows系统、单个节点或集群、本地或云服务器中部署。...DolphinDB的co-location存储架构会强行将同一交易日的订单表和成交表存储同一数据节点中关联计算只需要读取同一点数据,如图7左侧所示。...元数据高可用 存储数据时会产生大量元数据,元数据是数据的基本信息,计算节点会首先读取元数据,然后再从数据节点中读取源数据。元数据管理上,DolphinDB采用了Raft协议保证高可用。...即时编译融合了两者的优点,在运行时将代码翻译为机器码,可以达到与静态编译语言相近的执行效率。

3.1K21

DolphinDB:金融高频因子流批统一计算神器!

Flink支持SQL和窗口函数,高频因子用到的常见算子Flink中已经内置实现。因此,简单的因子用Flink实现会非常高效,运行性能也会非常好。但Flink最大的问题是无法实现复杂的高频因子计算。...3、响应式状态引擎(Reactive State Engine) 响应式状态引擎实际上是一个计算黑盒,历史数据上已经验证的DolphinDB因子代码(表达式或函数)以及实时行情数据作为输入,输出实时因子值...每一个算子(有状态和无状态)DolphinDB中都可以转化为一个唯一的字符串序列。据此,我们可以删除重复的算子,提高计算效率。 3.3 内置的状态函数 状态算子计算需要用到历史状态。...响应式状态引擎的快照包括已处理的最后一条消息的ID以及引擎当前的状态。当系统出现异常,重新初始化状态引擎,可恢复到最后一个快照的状态,并且从已处理的消息的下一条开始订阅。...3.7 并行处理 当需要处理大量消息,可在DolphinDB消息订阅函数subscribeTable中指定可选参数filter与hash,让多个订阅客户端并行处理消息

3.9K00
您找到你想要的搜索结果了吗?
是的
没有找到

从计算、建模到回测:因子挖掘的最佳实践

第三个引擎rse3把股票代码(SecurityID)作为分组键,统计每个股票的小单净流入资金占总交易资金的比例。下面输入一些样本数据来观察流计算引擎的运行。...值得注意的是,DolphinDB 的流式计算直接使用了投研阶段生成的核心因子代码,这很好的解决了传统金融分析面临的批流一体问题。...4.2 数据回放 前一介绍了因子计算的批流一体实现方案,简单地说,就是一套代码(自定义的因子函数),两种引擎(批计算引擎和流计算引擎)。...DolphinDB 向 ZMQ 消息队列推送流数据代码样例: (1)首先启动下游的 ZMQ 数据消费程序,作为监听端(ZeroMQ消息队列的服务端)。...在外部消费 ZMQ 消息的程序启动后,DolphinDB 端要启动流计算,并开始对外发布计算结果。以下是 DolphinDB 端的代码

6K22

Alertmanager对接Loki实现日志告警 | 坑我已经帮你们踩好了

如下图所检索出来的WARNING 日志,大量的WARNING、ERROR或者OOM这样的日志可能预示着应用即将出现异常,这时候基于日志的告警功能就非常有必要。...然后/monitor/loki/rules 下创建名为fake的文件夹,将rule放在该文件夹下。...logs description: 10分钟之内DolphinDB日志内election日志出现10次以上 重启Loki,重启脚本在上一篇推文中有写到。...值得注意的是,修改rule配置文件并不需要重启Loki,Loki的运行日志里面可以看到如下日志,提示rule文件正在被修改 如果不确定rule中的表达式写的是否正确,可以Grafana先进行预跑,...如下图所示: Loki告警消息格式 Loki告警消息内容示例如下: { 'receiver': 'wechat-bot', 'status': 'firing', 'alerts

4.7K41

干货 | 高频多因子存储的最佳实践

面对 T 级的因子数据,单个因子的新增、修改、删除耗时应该保证秒级才能确保整体量化投研的效率。...因子数据实际存储通常会有宽表和单值模型两种选择。...单值模型一般有4列:时间戳、股票代码、因子编号以及因子值,如下图所示;单值模型的数据需要面板数据的场景,需要将数据转换成面板模式。...1、新增因子:新增因子的场景,窄表模式只需要进行 Insert 操作,将新增因子数据写入;而宽表模式需要先进行addColumn 操作,然后更新新增因子列数据,DolphinDB 目前的更新机制是重写...根据窄表模式下的分区规则,对指定因子数据更新,可以精确定位到因子所在分区,并进行修改,所以耗时秒级;而宽表模式的更新方式如上节所述原因,耗时非常长。

1.5K20

深入学习Redis:集群

MEET消息节点握手阶段,当节点收到客户端的CLUSTER MEET命令,会向新加入的节点发送MEET消息,请求新节点加入到当前集群;新节点收到MEET消息后会回复一个PONG消息。...,数据分布不同的节点中,客户端通过某节点访问数据,数据可能不在该节点中;下面介绍集群是如何处理这个问题的。...下面的例子展示了redis-cli和集群的互动过程:7000点中操作key1,但key1所的槽9189节点7001中,因此节点返回MOVED错误(包含7001点的ip和port)给redis-cli...如果执行失败,则会随机选择其他节点进行重试,并在出现MOVED错误时,使用cluster slots重新同步slot->node的映射关系。...五、实践须知 前面介绍了集群正常运行和访问的方法和原理,下面是一些重要的补充内容。 1. 集群伸缩 实践中常常需要对集群进行伸缩,如访问量增大的扩容操作。

1.3K10

硕士毕业半年的茫茫社招路

同时需要强调,本文全文均仅代表个人观点,限于个人的水平与经历有限,许多观点不免片面甚至是错误,欢迎指正。 写前一篇校招总结的文章的时候,我怎么也没想到,自己会在硕士毕业半年后就主动辞职。...也为两位老教授一把年纪了还亲自操刀写lab的代码而感到敬仰,希望自己到60岁的时候也还能像他们一样。 《恰同学少年》,我的文章在此。等一下,这不是介绍计算机学习的文章吗,怎么突然出现一部红色电视剧?...于是我当时就给xj发了条消息,我说,要不你去哪儿工作,我就去哪儿工作吧,以后就跟着你混了。 当时他还在腾讯工作,我说那我就去你的组吧。虽然这需要我划掉上面六点中的第五点,但是有些时候只能做一些牺牲了。...xj在读研之前曾经一家叫DolphinDB的时序数据库公司实习了相当长的一段时间。我们之前也聊起过多次他在那边实习做的许多有意思的工作。...而且不夸张地说,问到DolphinDB的几乎所有实现的细节问题,他都能了如指掌地回答出来。这真是非常令人印象深刻!因为国内的大环境下,技术管理层不写代码的情况实在是太普遍了。

1.2K31

记一次job运行缓慢的事件

1、作业比以前运行的时间变长 具体大概是个别job平时1小搞定,偶尔会出现2小左右,集群计算资源也没打满状态。...如果是这种情况,由于使用集群上的额外负载来传输数据块,因此可能会在作业或数据节点中看到WARN消息。...这表示将块写入OS缓存或磁盘存在延迟 需要注意的是,在生产环境的正常负载下,一些集群的WARN消息datanode日志中是正常的。...当单个节点具有比正常情况更多的上述WARN消息,表明存在底层硬件问题。 4、解决办法 以下步骤将有助于确定导致DataNode日志中的“Slow”消息的底层硬件问题。...1)每个DataNode上运行以下命令来收集所有Slow消息的计数: egrep -o "Slow.*?

1.5K31

关于“Python”的核心知识点整理大全29

修改代码以接受多个答案后,可运行这些测试,确 认存储单个答案或一系列答案的行为未受影响。...注意 运行测试用例,每完成一个单元测试,Python都打印一个字符:测试通过时打印一个 句点;测试引发错误时打印一个E;测试导致断言失败打印一个F。...如果出现错误消息,请尝试将pip替换为pip3。 如果这两个版本都没有安装到你的系 统中,请跳到“安装pip”。...如果出现错误消息,请尝试将pip替换为pip3。如果执行这两个命令出现错误消息,请跳到 “安装pip”。...如果执行这两个命令出现错误消息,请跳到“安装pip”。 3. 安装pip 要安装pip,请访问https://bootstrap.pypa.io/get-pip.py。

11410

关于分布式事务的理解

分布式事务之可靠消息队列 前面几节课,我们谈论了事务处理中的本地事务(单个服务、单个数据源)、全局事务(单个服务、多个数据源)和共享事务(多个服务、单个数据源),这一讲我们将聚焦于事务处理中最复杂的分布式事务...CAP 与 ACID 之间的矛盾 这个定理里,描述了一个分布式的系统中,当涉及到共享数据问题,以下三个特性最多只能满足其中两个: 一致性(Consistency):代表在任何时刻、任何分布式节点中,我们所看到的数据都是没有矛盾的...以 Redis 集群为例,如果某个 Redis 节点出现网络分区,那也不妨碍每个节点仍然会以自己本地的数据对外提供服务。但这时有可能出现这种情况,即请求分配到不同节点,返回给客户端的是不同的数据。...小结 这课,我第一次引入了 CAP 定理,希望你能通过事务处理的上下文场景去理解它。...这套理论不仅是事务处理中,而且一致性、共识,乃至整个分布式所有涉及到数据的知识点中,都有重要的应用,后面讲到分布式共识算法、微服务中多种基础设施等内容的时候,我们还会多次涉及到它。

30220

关于拜占庭问题及其分析

为此,需要运行三类基本协议,包括:一致性协议、检查点协议和视图更换协议。...image.png 图:从1点发prepare信息给其他节点 从1点如果收到另外两个从节点都发出的同意主节点分配的编号的prepare类型的消息,则表示从1点的状态为prepared,该节点会拥有一个...只通过这一个节点,我们就能认为客户端的请求需要的节点中都到达了prepared状态,每一个需要的节点都同意了主节点分配的编号。...当一个请求某个节点中到达commited状态后,该请求就会被该节点执行。 整个流程: ?...,且其他所有的记账人恰好分割为两个网络孤岛,恶意记账人可以使系统出现分叉,但是会留下密码学证据

89430

如何在 Kubernetes 上部署高可用应用程序

这意味着,如果一个 Pod 出现问题(可能是代码级问题、基础设施问题或网络问题)。这些问题很可能不会影响其他 Pod。某些情况下,一个 Pod 可以位于三个副本中,从而提供更高级别的可用性。...可以配置 pod 的三个副本,并且所有三个副本都调度单个点中。但没问题,有一个解决方案,我们将在下一 PodAntiAffinity 中讨论。...那么部署过程中以及部署新的 Pod ,如何确保不会破坏已经运行的 Pod?因此就有了部署策略的概念。...请求是应用程序工作或运行所需的最低限度,限制是应用程序应使用的最高限度,不得超过该限度。请求和限制 Pod 运行时应消耗的 CPU 和内存上创建了错误/范围。...我们将分析不同的内部缩放方法 VerticalPodAutoscaler 或 VPA 如前所述 ,这会根据当前消耗增加资源,以确保 Pod 不会因高资源消耗(例如Pod 内存不足时经常出现的OOM错误

15510

Slow ReadProcessor&Error Slow BlockReceiver错误日志分析

如果是这种情况,由于使用集群上的额外负载来传输数据块,因此可能会在作业或数据节点中看到WARN消息。...OS缓存或磁盘存在延迟 Slow flushOrSync 这表示将块写入OS缓存或磁盘存在延迟 Slow manageWriterOsCache 这表示将块写入OS缓存或磁盘存在延迟 需要注意的是...当单个节点具有比正常情况更多的上述WARN消息,表明存在底层硬件问题。 4.解决办法 ---- 以下步骤将有助于确定导致DataNode日志中的“Slow”消息的底层硬件问题。...1.每个DataNode上运行以下命令来收集所有Slow消息的计数: egrep -o "Slow.*?...(磁盘错误) 使用smartctl对磁盘进行健康检查:停止受影响节点的所有Hadoop进程,然后运行sudo smartctl -H /dev/,检查HDFS使用的每块 提示:

6.2K70

Redis集群架构

针对这种场景,Redis3.0版本中引入了Redis集群的部署架构。...Redis集群架构(Redis Cluster)是Redis 3.0开始引入的一种分布式存储架构,该架构由多个Redis节点组成,所有的数据分布不同的节点中。...key value”,假如 CRC16(key) % 16384 = 777,那么这个key就会被分配到master1点上,如下图: Redis集群架构哈希槽示意图 集群架构通信 既然Redis...(2)PONG:当接收到PING消息和MEET消息,会向发送方回复PONG消息,PONG消息中包括自身节点的状态数据。节点也可以通过广播的方式发送自身的PONG消息来通知整个集群对自身状态的更新。...(4)FAIL:当一个节点判定另一个节点下线,会向集群内广播一个FAIL消息,其他节点接收到FAIL消息之后,把对应节点更新为下线状态。

71620

DLM:微信大规模分布式n-gram语言模型系统

此过程称为回退(参见第2.2),准确度会有所下降。实验证实,较大的模型确实具有更好的性能。但是,大型模型单个计算机的内存存储不容易,且快速访问的效率非常低。...有一个问题:当n-gram没有出现在训练语料库中(例如当训练语料库很小时,频率计数为0),条件概率(公式7)为零,这导致联合概率为0(公式6)。...推理期间,我们运行算法4来估计条件概率。它针对后缀树3实现算法1.算法4遍历(wn-1,...,w2,w1)(第2行)。当下一个单词没有边缘或达到w1,它会停止。返回的路径是一组访问过的节点。...DLM的全局索引将用于估计n-gram概率的所有数据放在同一服务器节点中,从而将消息数量减少到每个n-gram 1次。为了评估这种减少的效果,我们表3中列出了查询分布。...4.2.4 batch处理 3.3中提出的批处理将发送到同一服务器的消息合并为单个消息,以减少开销。图9比较了DLM与批处理和没有批处理的DLM两组n-gram查询。y轴是每个查询集的消息总数。

1.4K20

区块链版本升级兼容方案

背景多节点的区块链网络中,通常节点是来自多个不同的组织。区块链网络升级,会出现无法将所有共识节点同时升级的情况。...情况一: 升级大部分节点Raft共识:会以升级后的大部分节点之间可以正常通信,从而在这些节点中产生Leader,继续完成共识。未升级的节点会直接无法参与共识。...BFT类:小于1/3的节点升级,与Raft类似,原先未升级的2/3点,将继续完成共识。大于1/3点小于2/3,升级后的节点与未升级的节点群,都因为无法收集到足够的投票,都无法完成共识。...需求共识模块版本之间兼容,支持不同版本的节点之间通信,不影响链的运行。方案设计版本号共识节点之间的通信,需要带有版本号,用于识别节点之间的共识版本。版本号设计在网络层增加版本号的消息。...(*netpb.NetMsg)解析版本号流程设计共识模块将版本号添加到*netpb.NetMsg的Type中网络模块通过位运算解析出原始的Type,依照原来网络模块逻辑发送消息网络模块接受消息,将*netpb.NetMsg

1.2K110

DDIA:共识协议和分布式事务有什么关系?

在这种情况下,所有事务参与节点都运行着同样的二进制代码。...可以将消息确认和数据库写入打包在单个事务里进行原子提交,来实现上述行为。分布式事务的加持下,即使消息队列和数据库是跑不同机器上的不同技术栈的进程,上述目标也能实现。...则在消息处理失败进行重试的过程中,可能出现邮件被发送多次的现象。但如果,事务中止消息处理的所有副作用都可以回滚,则处理步骤可以像没有任何事情发生过一样,安全地进行重试。...这意味着,如果你要容忍单节点故障就至少需要三个节点(三点中的两个节点可以组成多数派),如果要容忍两个节点故障就至少需要五个节点(五个节点中的三个节点组成多数派)。...刚开始,一个应用可能会运行在单机上,但最终可能会扩展到上千点的集群上。如此多的节点上进行多数票选举会非常低效。

19710

ROS2性能分析

本研究中,我们评估了ROS2的性能,并了解其实时生态系统中的相关性。 本文任务是分析ROS2点之间的通信性能,记录了执行分析的过程和所得结果。...然而根据我们发现的一个问题ros2 latency repository,rclpy发布大型数据比rclcpp慢30倍至100倍。该问题已在ROS2 Foxy发布之前得到解决和合并。...,订阅者节点中,我们接收到消息立即记录纪元时间,然后接收发布时间并计算差值以获取消息的延迟,此测试重复进行约15次,并将15个结果的平均值用于我们的评估。...尽管他们没有测试过以MB为单位发送大型消息的ROS2,但他们提到他们对ROS2的经验有些相似,他们还建议使用实时Linux内核,并在ROS2连接中使用UDP而不是TCP,由于我们的所有节点都在单个设备上运行...我们的测试结果表明与ROS2实时场景下所提供的优势相比,其引入的消息传输开销过大,因此,目前阶段不建议将ROS2用于实时应用。 以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

68320

干货|为什么Kafka不支持读写分离

Kafka 中,生产者写入消息、消费者读取消息的操作都是与 leader 副本进行交互的,从 而实现的是一种主写主读的生产消费模型。...从代码层面上来说,虽然增加了代码复杂度,但在 Kafka 中这种功能完全可以支持。对于 这个问题,我们可以从“收益点”这个角度来做具体分析。...某一刻,主节点和从节点中 A 数据的值都为 X, 之后将主节点中 A 的值修改为 Y,那么在这个变更通知到从节点之前,应用读取从节点中的 A 数据的值并不为最新的 Y,由此便产生了数据不一致的问题。...当创建主题的时候可能会出现某些 broker 分配到的分区数 多而其他 broker 分配到的分区数少,那么自然而然地分配到的 leader 副本也就不均。 (2)生产者写入消息不均。...总的来说,Kafka 只支持主写主读有几个优点:可以简化代码的 实现逻辑,减少出错的可能;将负载粒度细化均摊,与主写从读相比,不仅负载效能更好,而 且对用户可控;没有延时的影响;副本稳定的情况下,不会出现数据不一致的情况

2.3K10
领券