标签: durability

耐久性99.99%.这是什么意思?

Amazon S3提供两种计划:

存储(设计用于99.999999999%耐久性)

减少冗余存储(设计耐久性为99.99%)

设计用于在给定年份内提供99.999999999%的耐久性和99.99%的对象可用性.

继承人的链接

那么,如果我有10 000个文件,我可以期望每年平均放松一个第二个计划?我正确地解释了吗?

编辑:Maby我必须更明确地说:

你如何解释特别是"为...而设计"部分.例如,如果提供99.9%的可用性我保证并且每小时支付一次罚款或类似的东西.但是,如果我将系统设计为99.9%的可用性,我选择的部件应该知道系统的统计平均停机时间可能为0.1%.

这并不一定意味着我保证任何事情.它正是系统设计的目的......

amazon-s3 durability

21
推荐指数
2
解决办法
2万
查看次数

在Linux上持久耐用需要什么?

我正在编写一些软件来处理非常关键的数据,并且需要知道我需要做些什么来实现持久性.

我看的每个地方都是矛盾的信息,所以我很欣赏任何见解.

我写入磁盘有三种方法.

  • 使用O_DIRECT | O_DSYNC,pread'ing然后pwrite'ing 512字节 - 16 MB块.

  • 使用O_DIRECT,pread'ing然后pwrite'ing 512字节块,并根据需要定期调用fdatasync.

  • 使用内存映射文件,我根据需要定期调用msync(...,MS_SYNC | MS_INVALIDATE).

这是所有在ext4上的默认标志.

对于所有这些,数据是否可能丢失(写入或同步返回后)或由于电源故障,恐慌,崩溃或其他任何原因而损坏?

如果我的服务器在pwrite中间,或者在pwrite的开头和fdatasync的结尾之间,或者在被更改的映射内存和msync之间,我可能会混合旧数据和新数据,或者它会是一个还是其他?我希望我的个人pwrite调用是原子的并且是有序的.是这样的吗?如果它们跨多个文件就是这种情况吗?所以,如果我用O_DIRECT |写 O_DSYNC到A,然后是O_DIRECT | O_DSYNC到B,我保证,无论发生什么,如果数据在B中,它也在A中?

fsync甚至可以保证数据的写入吗?不是说,但我不知道从那时起事情是否发生了变化.

ext4的日志记录是否完​​全解决了这个SO答案所存在的腐败块的问题?

我目前通过调用posix_fallocate然后ftruncate来增长文件.这些都是必要的,它们是否足够?我认为ftruncate实际上会初始化已分配的块以避免这些问题.

为了给混音添加混乱,我在EC2上运行它,我不知道这是否会影响任何东西.虽然它很难测试,因为我无法控制它被关闭的积极程度.

linux posix mmap fsync durability

9
推荐指数
2
解决办法
762
查看次数

Azure Blob存储或Amazon S3(平面文件存储)的内部替换?

对于与公共互联网断开连接的内部部署安装,Azure Blob存储(和Amazon S3)的合适耐用存储替代品是什么?开发环境是C# - 如果重要的话.

丢失实时地理复制很好(离线地理复制备份工作)但希望保留Azure Blob存储所展示的高可用性功能 - 这意味着如果一个文件服务器出现故障,另一个可以继续服务(或可预测) )位置/ URI直到第一个恢复.

storage amazon-s3 azure durability

9
推荐指数
2
解决办法
3931
查看次数

MongoDB日记如何工作

这是我的看法,我不确定这是对还是错:

日记日志是"重做"日志.它记录了数据文件的修改.

例如,我想将一条记录的字段值从"a"更改为"b",然后mongodb将找到如何修改dbfile(包括所有命名空间,数据,索引等),然后mongodb写入修改期刊.

之后,mongodb对dbfile进行了所有真正的修改.如果这里出现问题,当mongoDB重新启动时,它将读取日志(如果存在).然后它将更改dbfile的alter以使数据集保持一致.

因此,在日志中,不会记录要更改的数据,而是如何更改dbfile.

我对吗?我在哪里可以获得有关期刊格式的更多信息?

journaling mongodb durability

8
推荐指数
1
解决办法
3911
查看次数

如何在SQL Server 2012群集上创建最快的数据库,牺牲任何持久性

我有一个针对SQL Server 2012群集中的数据库运行的测试套件.我希望这个测试套件尽可能快地运行.我愿意为性能牺牲每一种耐用性和可用性保证.在每次测试运行期间都会重新创建数据库,因此它甚至不必在服务器重新启动后继续运行.

更改恢复模型ALTER DATABASE [dbname] SET RECOVERY SIMPLE没有明显的区别.

一个很好的选择似乎DELAYED_DURABILITY,但这是2014年的新功能,因此我无法使用.

如何在此群集上创建一个疯狂的快速数据库?我试图寻找内存数据库,但找不到任何选项.群集将不允许我在本地磁盘上创建数据库,坚持它必须位于群集磁盘上.

更新: 该应用程序使用高级SQL Server功能,所以我很可能坚持使用MS SQL Server.数据库本身非常小,因为它用于测试(8MB mdf,1MB ldf).群集节点是网络中速度最快的服务器,因此如果我可以将其中一个节点误用于内存数据库,那肯定是最快的.但是怎么样?

sql sql-server testing performance durability

7
推荐指数
1
解决办法
1071
查看次数

如何在单台机器上使用MongoDB避免服务器故障导致数据丢失?

我已经读过mongoDB不会立即将数据写入磁盘,它会定期执行此操作.

有关如何处理这个的任何想法?

performance mongodb nosql durability

6
推荐指数
1
解决办法
1096
查看次数

原子计数器-Redis vs Postgres还是其他?

我需要在云上实现一个原子计数器,以从并发连接生成一个串行整数。背后的业务是跟踪服务器。

优先要求:

  1. (必须)持久 -确保一旦一个客户获得一个号码,就不会再有其他客户获得这个相同的号码。没有重复...
  2. (必须)可伸缩 -当前的负载为200-1000个并发客户端连接时的当前负载为10K /秒和将来的1M /秒。可扩展性增加100
  3. (必须)平均<+ -15ms(postgres / mysql / redis很棒,像DynamoDB这样的http延迟是不可能的),这只是为了过滤慢速的解决方案
  4. (很高兴)increment by by这是一种可伸缩性,其中客户端以块(例如100)为单位递增,并管理应用程序内存中的增量。
  5. (很高兴) 5k / s的票价低于150美元,并且预计价格会进一步下跌
  6. (很高兴)HA(高可用性) -我可以处理0.01%的故障,但是耐用性很重要,我不需要重复的数字。

我的选择是:

  1. postgres的顺序CREATE SEQUENCE serial CACHE 100; SELECT nextval(sequence)-140 $ / m MultiAZ AWS RDS db.m3.medium的速度不如redis快,但我认为平均<7ms。“缓存”是一项强大的功能,可以提高性能。
  2. Redis Sentinel的 Redis INCR / RDS MultiAZ-cache.m3.medium MultiAZ-120 $ / m-持久性存在疑问。

redis具有INCRBY,而postgres仅具有序列的“缓存”功能,该功能需要往返数据库。

有输入吗?关于这两个或其他选择?

相关参考:

  1. 原子计数器Postgres和MongoDB
  2. http://redis.io/topics/persistence
  3. https://www.quora.com/When-should-I-use-redis-as-my-primary-data-store
  4. https://muut.com/blog/technology/redis-as-primary-datastore-wtf.html
  5. https://discuss.elastic.co/t/replacing-redis-with-elasticsearch-get-query-speed-counters-and-lists/5609/2

mysql postgresql acid redis durability

5
推荐指数
1
解决办法
1796
查看次数

REDIS耐用性?如何自动过期数据?

我使用REDIS来存储数据(字符串).例如:关键"s1"商店价值"你好世界".关键"s2"商店价值"再见".我想在5分钟后s1自动过期(可用内存),但s2永不过期.我用C#,.net 4.0 >>如何编码?谢谢

.net caching redis durability

4
推荐指数
2
解决办法
1万
查看次数

单服务器耐用性意味着什么?

有人可以详细解释单服务器的耐用性吗?我在浏览MongoDB概念时遇到过它.

mongodb nosql durability

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

MongoDB:当主数据库失败时

我想了解 MongoDB 提供哪些保证(如果有的话),因为它与主数据库永久或暂时失败或在网络级别与副本集的其余部分分离时的数据持久性有关。

我了解 w:1 写入关注会发生什么。我了解日记的作用。

我不明白当选择新的主数据库时,MongoDB 如何决定保留哪些写入以及丢弃哪些写入。在 4 节点(+仲裁器)集群中,N1 为主节点,N2、N3、N4 为辅助节点,在这种情况下:

  1. {w:majority, j:true} 写入命中主节点。
  2. 次要节点轮询更改,主要节点等待多数人确认。
  3. N2 确认更改。
  4. N3 已收到更改并正在应用它。
  5. 主要下降。
  6. N3 无法向主节点确认它已应用更改。
  7. 选举是被迫的。

问题:

  • 选举完成后写入是否可用?
  • 哪个节点将成为新的主节点重要吗?
  • 如果步骤 #4 没有发生,结果会有所不同吗?
  • 如果 Primary 已收到 N3 的确认,结果是否会有所不同?
  • 如果主节点已确认写入,并且 N2 复制了写入已被多数人确认的事实,结果是否会有所不同?
  • 如果 N2 和 N3 都复制了写入被多数人确认的事实,结果会不同吗?

mongodb durability

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