背景
我们一直在努力尝试为“高性能”应用程序提供解决方案。该应用程序基本上是一个高吞吐量的内存管理器,可以同步回磁盘。“读取”和“写入”非常高,每秒大约 3000 个事务。我们尝试在内存中做尽可能多的事情,但最终数据会变得陈旧,需要刷新到磁盘,这就是一个巨大的“瓶颈”接踵而至的地方。该应用程序是多线程的,大约有 50 个线程。没有IPC(进程间通信)
尝试
我们最初是用 Java 编写的,它工作得很好,直到达到一定的负载,遇到瓶颈并且无法跟上。然后我们在 C# 中进行了尝试,也遇到了同样的瓶颈。我们使用非托管代码 (C#) 进行了尝试,尽管在初始测试中使用 MMF(内存映射文件)非常快,但在生产中,读取速度很慢(使用视图)。我们确实尝试了 CouchBase,但我们偶然发现了围绕高网络利用率的问题。这对我们来说可能是糟糕的配置!
额外信息:在我们的 Java 尝试(非 MMF)中,我们的线程与需要刷新到磁盘的信息队列构建到无法跟上“写入”磁盘的程度。在我们的 C# 内存映射文件方法中,问题是 READS 非常慢,而 WRITES 工作完美。由于某种原因,视图很慢!
问题
所以问题是,您打算传输大量数据的情况;有人可以提供一种可能的方法或架构设计来提供帮助吗?我知道这似乎有点宽泛,但我认为高性能、高吞吐量的具体性质应该缩小答案的范围。
谁能保证在这样的水平上使用 Couchbase、MongoDB 或 Cassandra?其他想法或解决方案将不胜感激。