cost 243 ms
订单匹配系统设计:如何设计一个高效安全的加密账户系统 - Order Matching System Design : how to design an efficient and secure crypto account system

语境我在一家加密货币交易所公司担任后端工程师。 最近,我们的匹配系统面临性能问题。 当用户的订单匹配时,系统将扣除或添加订单金额到他们的账户。 此过程将使用数据库写锁锁定用户的帐户。 问题如果用户在短时间内下单过于频繁,大量的订单会尝试锁定同一条记录。 在这种锁竞争的情况下,数据库事务将超时并重试, ...

Cloud (Firestore) Datastore 热点和索引日期 - Cloud (Firestore) Datastore Hotspotting and Indexing Date

我最近尝试研究这个主题,关于云数据存储的热点行为。 据我了解,读取/写入单调递增的索引字段可能会导致高读取/写入负载期间的争用和性能下降。 现在,对于单调但在更粗略的水平上增加的字段,情况如何。 以一种代表事件日志的类型为例。 如果每个事件都有一个日期字段对应于它发生的日期,这样就可以按天查询。 在 ...

使用相同代码的新部署的数据存储争用 - Datastore contention on new deployment with the same code

在重新部署代码后,我们的应用程序使用 Datastore(不是 Datastore 模式下的 Firestore)时遇到了一些问题。 在使用相同代码的新 AppEngine 服务部署中,我们会遇到数据存储争用问题,如果我们切换到旧服务版本(相同代码),一切正常。 三重检查了这一点,因为我们仍然有部署 ...

大型机:如何防止批处理作业和 CICS 事务之间的 DB2 争用? - Mainframe: How to prevent DB2 contention between batch job and CICS transaction?

我有一个批处理作业和一个使用相同 db2 表的 CICS 事务。 两者都定期运行,并且由于与共享的 DB2 表争用,批处理作业偶尔会异常终止。 有没有办法在 CA7(作业调度工具)中调度作业,以防止它在事务处于活动状态时运行? ...

Infinispan 9.4.16、JBoss EAP 7.3 与复制缓存 2 节点线程的锁争用是 TIMED_WAITING(停车) - Infinispan 9.4.16, JBoss EAP 7.3 Lock Contention with replicated-cache 2 nodes threads are TIMED_WAITING (parking)

我有一个应用程序当前依赖 infinispan 复制缓存在所有节点之间共享一个工作队列。 队列非常标准,头、尾和大小指针持续存在于 infinispan map 中。 我们已经从 Infinispan 7.2.5 升级到 9.4.16 并且注意到锁定性能比以前差了很多。 当他们都试图同时初始化队列 ...

我的 Java 应用程序中的 Jar 文件访问存在高争用 - High contention on Jar file access in my Java application

我们开发一个基于 JMS 的应用程序,该应用程序从 JMS 队列接收 XML 格式的消息。 该应用程序部署在 Weblogic 服务器 (12c) 上。 以大约 400-500 msgs/sec 的速率,我们正在经历糟糕的性能并在 JMS 队列上积累积压。 我尝试使用Java Mission Con ...

即使没有锁,是否也会存在 memory 争用? - Can there be memory contention even if there are no locks?

我正在编写一个多线程代码,其中一堆std::async调用在整个程序期间产生固定数量的线程。 每个线程都以只读方式处理相同的const BigData结构。 从const BigData有频繁的随机读取,但线程是完全独立的。 是否可以合理地期望获得完美的扩展,或者是否可以预期更多的 memory ...

线程饥饿与争用? - Thread Starvation vs Contention?

根据Oracle关于“线程饥饿”的文档, 饥饿描述了线程无法定期访问共享资源并且无法取得进展的情况。 当“贪婪”线程使共享资源长时间不可用时,就会发生这种情况。 在Oracle关于线程“线程争用”的文档中, 如果一个线程试图获取一个已经被另一个线程持有的锁,那么它必须等到锁被释放。 发生这种情况时 ...

在插入和更新时增加计数器列的可靠、低争用策略 - Reliable, low-contention strategy for incrementing a counter column on insert and update

我有一个关于序列的补救问题。 我已经使用了一些它们并查阅了文档,并希望这对小组来说是一个简单的问题。 我们现在使用的是 Postgres 11.4,只要它在 RDS 上可用,我们就会迁移到 PG 12。 目标是让一组数字在每次插入或更新一行时增加。 我们为这种计数器使用字段名称“con_id”(并发 ...

数据存储查询期间的 GAE 推送队列数据库争用 - GAE Push Queue database contention during datastore query

总结我有一个问题,即数据库从我的任务队列中写入(大约 60 个任务,以 10/s 的速度)在并发数据库读取相同数据期间以某种方式被覆盖/丢弃。 我将解释它是如何工作的。 任务队列中的每个任务都为 model 的特定数据存储实体分配一个唯一 ID。 如果我在 model 上运行索引数据存储查询并在任务 ...

是什么导致DriveInfo.IsReady为假? - What causes DriveInfo.IsReady to be false?

情况 我正在调试一些在目录路径上执行某些存在检查的遗留代码。 首先,检查并返回DirectoryPathA (如果存在)。 这应该是通常的情况。 如果失败,则检查并返回DirectoryPathB 。 (如果那也失败了,其他事情就会发生,而不是这个问题的一部分)。 以下是代码的外 ...

如何在应用程序级别处理行锁争用 - How to handle row lock contention at application level

我有2个使用相同的Oracle数据库(11g)的应用程序(Spring-带启动的休眠模式)。 这两个应用程序一致地命中特定表,并且此表中的命中次数很多。 我们可以看到数据库日志中的行锁争用异常,并且每当我们获取到它们时或在类似死锁的情况下必须重新启动应用程序。 我们正在针对这些应用程序 ...

如何使编写方法线程安全? - How to make writing method thread safe?

我有多个线程来调用一种方法,以将对象中的内容写入文件,如下所示:当我使用1个线程来测试此方法时,将输出到我的文件中。 但是,对于多个线程,文件中的输出是混乱的。 如何使该线程安全? 编辑: 我在此行添加了List<Result> results = ResultGe ...

GuavaCache expireAfterWrite()导致过多的阻塞线程 - GuavaCache expireAfterWrite() is causing too many blocked threads

我们有一个用例,一段时间后我们的数据变得陈旧。 因此,我们选择了expireAfterWrite缓存逐出策略。 但是,这导致线程池中过多的阻塞线程。 知道为什么会发生这种情况以及是否有任何方法可以避免这种情况。 样本线程池日志: ...

为什么易失性读取始终无条件? - Why volatile read always uncontended?

在实践中引用书籍java并发: 同步的性能成本来自多个来源。 synchronized和volatile提供的可见性保证可能需要使用称为内存屏障的特殊指令,这些指令可以刷新或使缓存无效,刷新硬件写缓冲区和停止执行流水线。 内存障碍也可能产生间接性能影响,因为它们会抑制其他编译器优化 ...

从非集群配置的石英调度程序实例将作业调度到集群的石英1.8.6 - scheduling jobs to clustered quartz1.8.6 from non-cluster configured quartz scheduler instance

我在具有4个实例的群集模式下使用石英1.8.6。 现在,我发现在表QRTZ_LOCKS上的争用很高。 我的应用程序还为在线客户提供Web服务。 该Web服务还可以安排新作业。 现在,我看到了这些Web服务的超时异常,因为当他们要安排新作业时,他们太懒得等待以获取对QRTZ_LOCKS表的 ...

降低容器的磁盘I / O速率 - Reducing Disk I/O Rate of Containers

我有几个运行虚拟机的Docker容器,我想在所有容器上均匀地限制磁盘I / O吞吐量20%,而实际上不对计算机上的其他资源(即CPU)施加任何压力。 我知道我可以通过更改每个容器的blkio权重来更改cgroup; 但是,Docker容器具有以下属性:即使您限制某种资源的使用,如果没有其 ...

内存分配中的锁争用 - 多线程与多进程 - lock contention in memory allocation - multi-threaded vs. multi-process

我们开发了一个大型 C++ 应用程序,它在大型 Linux 和 Solaris 机器(多达 160 个 CPU 内核或更多)上的多个站点上运行令人满意。 这是一个高度多线程(1000 多个线程)的单进程架构,消耗大量内存(200 GB+)。 我们正在 LD_PRELOADing Google Per ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM