3

I am going to have about 4 servers (Linux) constantly (constantly as in as many as possible with multiprocessing) send queries (most of the queries with be creating new rows, however one of the servers will read data) to a data server. I imagine it would be better to have separate databases. I think sqlite3 is my best option, but I am open to recommendations. I want to minimize the risk of corruption and data loss any tips?

EDIT: I will also have to check the database(s) to for duplicates.

4

2 回答 2

3

这是一个非常困难的问题。如果您想使用单独的数据库,您必须担心手动保持它们的一致性(这是您真的不想解决的问题)。相反,让所有 4 个(或更一般地说,N 个)服务器指向同一个数据库实例,并让数据库为您进行集群。通过这种方式,DBMS 可以处理并发性和恒定性的东西,并且您仍然可以获得所需的性能。

于 2012-07-09T14:47:54.477 回答
2

将这种风险降至最低的最佳方法是选择一个完全保证 ACID 合规性的数据库,并认真对待该保证。请注意,因为某些数据库系统并不总是为您提供 ACID 合规性,具体取决于您设置的选项。例如,使用 PostGres 或 SQL Server 会很安全。MySQL -需要更多的思考

如果您有额外的软件保护、超可靠的硬件或可以容忍少量数据丢失或不一致的应用程序,您可以调整 MySQL 设置以交换一些 ACID 可靠性以获得更高的性能或吞吐量。

于 2012-07-09T15:13:06.877 回答