小编vsi*_*sir的帖子

AWS S3 缓冲区大小没有增加

我正在创建一个修改了缓冲区大小的 S3 客户端,但是,它似乎没有什么区别,因为从流中读取的字节数始终相同。示例代码:

var s3Client = new AmazonS3Client(access, secret, token, new AmazonS3Config
{
     RegionEndpoint = Amazon.RegionEndpoint.USEast1,
     BufferSize = 1000000, // 1 MB (completely arbitrary)
});

await s3Client.PutObjectAsync(new PutObjectRequest 
{
     Key = fileName,
     Bucket = bucketName,
     InputStream = new MyCustomStream(...)
});
Run Code Online (Sandbox Code Playgroud)

MyCustomStream然而,当我调试此示例时,缓冲区大小不是从 一次读取一兆字节,而是 81920 字节,这是 的默认值Stream。这让我认为 AWS 实施并未覆盖该大小。

从文档中我假设这是正确的属性 -int BufferSize : The BufferSize controls the buffer used to read in from input streams and write out to the request.我确实正在从输入流中读取,所以我希望这会被覆盖。

c# stream amazon-s3 amazon-web-services

5
推荐指数
0
解决办法
1371
查看次数

使用 PgPool 进行 Postgres 的同步与异步流复制

阅读 PgPool 的文档后,我很困惑哪个选项最适合我的用例。我需要一个主数据库实例来服务查询,以及主数据库实例的 1 个或多个副本(备用)用于灾难恢复场景。对我来说非常重要的是,所有成功提交到主节点的事务都保证最终被复制到副本,这样当发生故障转移时,副本数据库实例将拥有直到并包括应用于其的最新事务的所有事务。

在异步复制方面,我在 PgPool 文档中没有看到任何提及是否是这种情况,但是,它确实提到了一些潜在的数据丢失,这对我来说有点太模糊了,无法得出任何结论。

为了防止这种数据丢失,文档建议使用同步流复制,在主节点中提交事务之前,确保所有副本也应用了该更改。因此,这种方法比异步方法慢,但如果没有数据丢失,它是可行的。

同步复制是允许我实现用例的唯一方法吗?还是异步复制也可以实现这一点?另外,异步复制中潜在的数据丢失是什么构成的?

postgresql replication database-replication pgpool

3
推荐指数
1
解决办法
3317
查看次数