我构建了一个用于数据提取和转换的工具。典型用例 - 以事务方式处理大量数据。
数字是 - 大约 10 秒 - 5 分钟的持续时间,200-10000 行更新(长时间不是由数据库本身而是由事务期间使用的外部服务引起的)。
访问数据库的代理有两种类型 - 多个读取代理和只有一个写入代理(因此,永远不会有多个并发写入)。
交易期间:
- 读取代理应该能够读取数据库并在当前状态下查看它。
- 写代理应该能够读取数据库(它可以在事务期间读取和写入)并在新的(尚未提交的)状态下看到它。
对于这种类型的负载,PostgreSQL 是一个不错的选择吗?我知道它使用 MVCC - 所以一般来说应该没问题,但是可以广泛使用长而大的交易吗?
还有哪些开源事务数据库可能是不错的选择(我不限于 SQL)?
附言
我不知道分片是否会影响性能。数据库将被分片。对于每个分片,将有多个读取器和一个写入器,但可以同时写入多个不同的分片。
我知道在交易期间最好不要使用外部服务,但在这种情况下 - 这是目标。该数据库用作一些重型、巨大、缓慢和最终一致的数据处理工具的可靠和一致的索引。