标签: storage

真的在Java中强制文件同步/刷新

如何通过Java 真正使用块设备刷新/同步写入文件的数据.

我用NIO试过这段代码:

FileOutputStream s = new FileOutputStream(filename)
Channel c = s.getChannel()
while(xyz)
    c.write(buffer)
c.force(true)
s.getFD().sync()
c.close()
Run Code Online (Sandbox Code Playgroud)

我认为c.force(true)与s.getFD()同步.sync()应该足够了,因为强制状态的文档

强制将此通道文件的任何更新写入包含它的存储设备.如果此通道的文件驻留在本地存储设备上,则当此方法返回时,保证自创建此通道以来对文件所做的所有更改,或者自上次调用此方法以来,该文件都将写入该设备.这对于确保在系统崩溃时不会丢失关键信息非常有用.

同步状态的文档:

强制所有系统缓冲区与底层设备同步.在将此FileDescriptor的所有已修改数据和属性写入相关设备之后,此方法返回.特别是,如果此FileDescriptor引用物理存储介质(例如文件系统中的文件),则在将与此FileDesecriptor关联的缓冲区的所有内存中修改副本写入物理介质之前,不会返回sync.sync意味着需要物理存储(例如文件)处于已知状态的代码.

这两个电话应该足够了.是吗?我猜他们不是.

背景:我使用C/Java进行小的性能比较(2 GB,顺序写入),Java版本的速度是C版本的两倍,可能比硬件速度快(单个HD上的速度为120 MB/s).我还尝试使用Runtime.getRuntime().exec("sync")执行命令行工具同步,但这并没有改变行为.

导致70 MB/s的C代码(使用低级API(打开,写入,关闭)不会发生太大变化):

FILE* fp = fopen(filename, "w");
while(xyz) {
    fwrite(buffer, 1, BLOCK_SIZE, fp);
}
fflush(fp);
fclose(fp);
sync();
Run Code Online (Sandbox Code Playgroud)

没有最后的同步调用; 我得到了不切实际的价值(超过1 GB又称主内存性能).

为什么C和Java之间有这么大的差异?有两种可能性:我没有在Java中正确地同步数据,或者C代码由于某种原因是次优的.

更新:我已经使用"strace -cfT cmd"完成了strace运行.结果如下:

C(低级API):MB/s 67.389782

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 87.21    0.200012      200012         1           fdatasync
 11.05    0.025345           1     32772           write
  1.74    0.004000 …

java storage

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

Microsoft SkyDrive是否有API?

因此,最近有消息称微软Skydrive每个帐户的存储将达到25GB,有没有人知道SkyDrive是否有API?

(如果是这样,文档在哪里?)

api documentation storage onedrive

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

简单来说,持久量(PV)和持久量声明(PVC)之间有什么区别?

通过参考文档,Kubernetes/Openshift中的持久量(PV)和持久量声明(PVC)之间有什么区别?

简单来说两者之间有什么区别?

storage openshift kubernetes

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

PostgreSQL是否支持透明压缩表(片段)?

我将在碎片化的PostgreSQL表(每天的表)中存储大量数据(日志).我想压缩其中的一些以节省我的光盘上的一些空间,但我不想失去以通常的方式查询它们的能力.

PostgreSQL是否支持这种透明压缩,哪里可以更详细地阅读它?我认为这个功能应该有一些众所周知的魔术名称.

compression postgresql storage

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

如何同步HTML5本地/ webStorage和服务器端存储?

可能重复:
将本地HTML5 DB(WebSQL存储,SQLite)与服务器同步的最佳方式(双向同步)

我目前正在寻找透明和自动同步和复制客户端HTML5 localStorage或Web存储和(可能是多个)服务器端存储的解决方案(这里唯一要求它应该是简单且经济实惠的安装定期托管服务).

那么您是否有使用此类库/技术的经验,这些库/技术提供数据存储,可自动执行客户端 - 服务器存储同步并允许数据在线下或在线或两者都可用?我认为这是支持离线模式的Web应用程序的一种相当常见的场景......

html5 storage web-applications offline-mode firebase

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

C#:在计算机中创建虚拟驱动器

有没有办法在"(我的)计算机"中创建虚拟驱动器并操纵它,有点像JungleDisk吗?

它可能做的事情如下:

override OnRead(object sender, Event e) {
    ShowFilesFromAmazon();
}
Run Code Online (Sandbox Code Playgroud)

有没有API:s为此?也许写入XML文件或数据库,而不是真正的驱动器.


杜坎库似乎是大多与我的问题所对应的答案,即使System.IO.IsolatedStorage似乎是适应最规范,最微软环境.

.net c# virtualization storage virtual-drive

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

亚马逊s3 vs谷歌云存储

我们正在收集有关不同系统的信息.目前我们正在寻找存储解决方案.对于大文件,我们会有大量的传出流量.

我想将s3与谷歌云存储进行比较.

谷歌云存储在90TB时的成本约为0.08美元/ GB.S3约为0.06美元.但是谷歌云存储已经有了一个cdn,这比使用cloudfront的亚马逊s3更便宜.

现在我读到某个地方,google cloud stroage比非常大的文件的s3慢得多.这是真的 ?

我找不到任何信息.

如果我有大量的传出流量和大文件,我还有哪些替代方案?

编辑:

基准测试:

http://blog.zencoder.com/2012/07/23/first-look-at-google-compute-engine-for-video-transcoding/

storage amazon-s3 google-cloud-storage

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

React Native AsyncStorage存储除字符串以外的值

有没有办法用AsyncStorage存储字符串以外的值?我想存储简单的布尔值,例如.

AsyncStorage.setItem('key', 'ok');
Run Code Online (Sandbox Code Playgroud)

没问题,但是:

AsyncStorage.setItem('key', false);
Run Code Online (Sandbox Code Playgroud)

不起作用..

storage local-storage ios react-native

32
推荐指数
4
解决办法
3万
查看次数

图片上传存储策略

当用户将图像上传到我的网站时,图像会经历此过程;

  • 用户上传图片
  • 在db中存储pic元数据,为图像提供唯一ID
  • 异步图像处理(缩略图创建,裁剪等)
  • 所有图像都存储在同一个上传文件夹中

到目前为止,该网站非常小,上传目录中只有大约200,000张图片.我意识到我远远不及目录中文件的物理限制,但这种方法显然无法扩展,所以我想知道是否有人对上传/存储策略有任何建议来处理大量的图像上传.

编辑: 创建用户名(或更具体地说,用户ID)子文件夹似乎是一个很好的解决方案.通过更多的挖掘,我在这里找到了一些很棒的信息; 如何在您的文件系统中存储图像
但是,如果将CDN购买到等式中,这个用户ID方法是否会很好地扩展?

php upload storage file

30
推荐指数
2
解决办法
8806
查看次数

requestLegacyExternalStorage 在 Android 11 - API 30 中不起作用

Google 最近引入了一些与 API 29 中的存储 API 相关的更改,例如范围存储,我们通过在清单中添加“requestLegacyExternalStorage=true”来选择退出。但是现在当我定位SdkVersion 30 时,这似乎不再起作用。在此更改后,下载目录中的某些文件未列出 (File.listFiles)。

java storage android android-11

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