gpt4 book ai didi

c# - db4o 客户端/服务器似乎一次只能处理一个查询?

转载 作者:太空狗 更新时间:2023-10-29 19:47:38 25 4
gpt4 key购买 nike

我们正在评估 db4o(来自 http://www.db4o.com 的 OO-DBMS)。我们已经为客户端/服务器模式进行了性能测试,我们启动了一个服务器,然后同时与多个客户端进行连接。服务器似乎一次只能处理一个客户端的查询。

我们是否错过了允许这种情况的配置开关?服务器实现如下。客户端连接、查询(只读)和断开每个操作,并且操作从客户端进程中的多个工作线程中一个接一个地运行。如果我们在同一台服务器上启动一个客户端进程,每个进程都有一个工作人员,我们会看到相同的行为。

有什么建议吗?

编辑:我们现在发现并尝试了 Lazy 和 Snapshot QueryModes,尽管这(部分)缓解了阻塞服务器问题,但当我们的客户端(我们运行 40 个并发测试客户端)时,我们仍然看到严重的并发问题在发出随机操作请求之前等待 1-300 毫秒)锤击服务器。似乎有来自 LINQ 提供程序和 IO 内部的异常:-(

public class Db4oServer : ServerConfiguration, IMessageRecipient
{
private bool stop;

#region IMessageRecipient Members

public void ProcessMessage(IMessageContext con, object message)
{
if (message is StopDb4oServer)
{
Close();
}
}

#endregion

public static void Main(string[] args)
{
//Ingestion.Do();
new Db4oServer().Run(true, true);
}

public void Run(bool shouldIndex, bool shouldOptimizeNativeQueries)
{
lock (this)
{
var cfg = Db4oFactory.NewConfiguration();
if (shouldIndex)
{
cfg.ObjectClass(typeof (Sequence))
.ObjectField("<ChannelID>k__BackingField")
.Indexed(true);
cfg.ObjectClass(typeof (Vlip))
.ObjectField("<ChannelID>k__BackingField")
.Indexed(true);
}
if (shouldOptimizeNativeQueries)
{
cfg.OptimizeNativeQueries(true);
}

var server = Db4oFactory.OpenServer(cfg, FILE, PORT);
server.GrantAccess("0", "kieran");
server.GrantAccess("1", "kieran");
server.GrantAccess("2", "kieran");
server.GrantAccess("3", "kieran");
//server.Ext().Configure().ClientServer().SingleThreadedClient(false);
server.Ext().Configure().MessageLevel(3);
server.Ext().Configure().Diagnostic().AddListener(new DiagnosticToConsole());
server.Ext().Configure().ClientServer().SetMessageRecipient(this);
try
{
if (!stop)
{
Monitor.Wait(this);
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
server.Close();
}
}

public void Close()
{
lock (this)
{
stop = true;
Monitor.PulseAll(this);
}
}
}

最佳答案

好吧,在 db40 服务器上有一些东西不允许同时打开太多的客户端,因为它对某些人来说太多了,无法处理。您还锁定了它,这在这种情况下没有任何帮助。

关于c# - db4o 客户端/服务器似乎一次只能处理一个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/226681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com