Amazon S3提供两种计划:
存储(设计用于99.999999999%耐久性)
和
减少冗余存储(设计耐久性为99.99%)
设计用于在给定年份内提供99.999999999%的耐久性和99.99%的对象可用性.
那么,如果我有10 000个文件,我可以期望每年平均放松一个第二个计划?我正确地解释了吗?
编辑:Maby我必须更明确地说:
你如何解释特别是"为...而设计"部分.例如,如果提供99.9%的可用性我保证并且每小时支付一次罚款或类似的东西.但是,如果我将系统设计为99.9%的可用性,我选择的部件应该知道系统的统计平均停机时间可能为0.1%.
这并不一定意味着我保证任何事情.它正是系统设计的目的......
我正在编写一些软件来处理非常关键的数据,并且需要知道我需要做些什么来实现持久性.
我看的每个地方都是矛盾的信息,所以我很欣赏任何见解.
我写入磁盘有三种方法.
使用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上运行它,我不知道这是否会影响任何东西.虽然它很难测试,因为我无法控制它被关闭的积极程度.
对于与公共互联网断开连接的内部部署安装,Azure Blob存储(和Amazon S3)的合适耐用存储替代品是什么?开发环境是C# - 如果重要的话.
丢失实时地理复制很好(离线地理复制备份工作)但希望保留Azure Blob存储所展示的高可用性功能 - 这意味着如果一个文件服务器出现故障,另一个可以继续服务(或可预测) )位置/ URI直到第一个恢复.
这是我的看法,我不确定这是对还是错:
日记日志是"重做"日志.它记录了数据文件的修改.
例如,我想将一条记录的字段值从"a"更改为"b",然后mongodb将找到如何修改dbfile(包括所有命名空间,数据,索引等),然后mongodb写入修改期刊.
之后,mongodb对dbfile进行了所有真正的修改.如果这里出现问题,当mongoDB重新启动时,它将读取日志(如果存在).然后它将更改dbfile的alter以使数据集保持一致.
因此,在日志中,不会记录要更改的数据,而是如何更改dbfile.
我对吗?我在哪里可以获得有关期刊格式的更多信息?
我有一个针对SQL Server 2012群集中的数据库运行的测试套件.我希望这个测试套件尽可能快地运行.我愿意为性能牺牲每一种耐用性和可用性保证.在每次测试运行期间都会重新创建数据库,因此它甚至不必在服务器重新启动后继续运行.
更改恢复模型ALTER DATABASE [dbname] SET RECOVERY SIMPLE没有明显的区别.
一个很好的选择似乎DELAYED_DURABILITY,但这是2014年的新功能,因此我无法使用.
如何在此群集上创建一个疯狂的快速数据库?我试图寻找内存数据库,但找不到任何选项.群集将不允许我在本地磁盘上创建数据库,坚持它必须位于群集磁盘上.
更新: 该应用程序使用高级SQL Server功能,所以我很可能坚持使用MS SQL Server.数据库本身非常小,因为它用于测试(8MB mdf,1MB ldf).群集节点是网络中速度最快的服务器,因此如果我可以将其中一个节点误用于内存数据库,那肯定是最快的.但是怎么样?
我已经读过mongoDB不会立即将数据写入磁盘,它会定期执行此操作.
有关如何处理这个的任何想法?
我需要在云上实现一个原子计数器,以从并发连接生成一个串行整数。背后的业务是跟踪服务器。
CREATE SEQUENCE serial CACHE 100; SELECT nextval(sequence)-140 $ / m MultiAZ AWS RDS db.m3.medium的速度不如redis快,但我认为平均<7ms。“缓存”是一项强大的功能,可以提高性能。redis具有INCRBY,而postgres仅具有序列的“缓存”功能,该功能需要往返数据库。
有输入吗?关于这两个或其他选择?
我使用REDIS来存储数据(字符串).例如:关键"s1"商店价值"你好世界".关键"s2"商店价值"再见".我想在5分钟后s1自动过期(可用内存),但s2永不过期.我用C#,.net 4.0 >>如何编码?谢谢
我想了解 MongoDB 提供哪些保证(如果有的话),因为它与主数据库永久或暂时失败或在网络级别与副本集的其余部分分离时的数据持久性有关。
我了解 w:1 写入关注会发生什么。我了解日记的作用。
我不明白当选择新的主数据库时,MongoDB 如何决定保留哪些写入以及丢弃哪些写入。在 4 节点(+仲裁器)集群中,N1 为主节点,N2、N3、N4 为辅助节点,在这种情况下:
问题:
durability ×10
mongodb ×4
amazon-s3 ×2
nosql ×2
performance ×2
redis ×2
.net ×1
acid ×1
azure ×1
caching ×1
fsync ×1
journaling ×1
linux ×1
mmap ×1
mysql ×1
posix ×1
postgresql ×1
sql ×1
sql-server ×1
storage ×1
testing ×1