由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 如何快速保存大块数据(工作中遇到的问题)
相关主题
现在.NET也往Node上转了现在的趋势是广好还是专好
求建议,Java转Javascript? (转载)游戏公司招各种人才 (转载)
FMP supports UI thread in both Swing and SWT做web application backend 有前途还是infra有前途
貌似先在做mobile developer比java developer更火。面试被问到G++和GCC编译器的关系
app开发其实很难搞关于码工前端 vs. 后端 和 系统 vs 应用的选择
你们这些frontend的,新老婆出现了纸上谈兵
码工的工作卫东 问你 不会Java 如何生存?
autocomplete实现方法请教steave yagg 新帖,关于android和google
相关话题的讨论汇总
话题: backend话题: data话题: block话题: need话题: sugestion
进入Programming版参与讨论
1 (共1页)
s******e
发帖数: 431
1
系统运行时,内存中保留大量metadata提供快速检索,系统停止运行时,将内存中的数
据保存到文件中,以便下次系统启动的时候提取。
问题是,如果系统crash的话,或者机器掉电,那么内存中的数据就丢失了, 如果在系
统运行时保存整个metadata, 耗时又太长。所以希望能够实现一个lazy write系统,仅
将修改过的数据写回文件。
请有经验的大侠指教。
n*e
发帖数: 50
2
同问,我有类似的问题,不知道怎么解决。

【在 s******e 的大作中提到】
: 系统运行时,内存中保留大量metadata提供快速检索,系统停止运行时,将内存中的数
: 据保存到文件中,以便下次系统启动的时候提取。
: 问题是,如果系统crash的话,或者机器掉电,那么内存中的数据就丢失了, 如果在系
: 统运行时保存整个metadata, 耗时又太长。所以希望能够实现一个lazy write系统,仅
: 将修改过的数据写回文件。
: 请有经验的大侠指教。

s***e
发帖数: 122
3
我也没有做过,只是提供思路而已。
1. dirty marker,把数据分成比较好处理的小块,每个小块mark为dirty的写回文件。
2. callback或者observer,随便你怎么叫吧,比如 OnSetAttr(),就把修改过的数据
写回文件。或者后台线程,定时检查,将mark为dirty的写回文件。

【在 s******e 的大作中提到】
: 系统运行时,内存中保留大量metadata提供快速检索,系统停止运行时,将内存中的数
: 据保存到文件中,以便下次系统启动的时候提取。
: 问题是,如果系统crash的话,或者机器掉电,那么内存中的数据就丢失了, 如果在系
: 统运行时保存整个metadata, 耗时又太长。所以希望能够实现一个lazy write系统,仅
: 将修改过的数据写回文件。
: 请有经验的大侠指教。

m******t
发帖数: 2416
4

mmap is your friend.

【在 s******e 的大作中提到】
: 系统运行时,内存中保留大量metadata提供快速检索,系统停止运行时,将内存中的数
: 据保存到文件中,以便下次系统启动的时候提取。
: 问题是,如果系统crash的话,或者机器掉电,那么内存中的数据就丢失了, 如果在系
: 统运行时保存整个metadata, 耗时又太长。所以希望能够实现一个lazy write系统,仅
: 将修改过的数据写回文件。
: 请有经验的大侠指教。

f*****Q
发帖数: 1912
5
多线程不行么?
g*****g
发帖数: 34805
6
Well, I think you should get an UPS instead. That's probably
a cheaper solution than rewrite the code.

【在 s******e 的大作中提到】
: 系统运行时,内存中保留大量metadata提供快速检索,系统停止运行时,将内存中的数
: 据保存到文件中,以便下次系统启动的时候提取。
: 问题是,如果系统crash的话,或者机器掉电,那么内存中的数据就丢失了, 如果在系
: 统运行时保存整个metadata, 耗时又太长。所以希望能够实现一个lazy write系统,仅
: 将修改过的数据写回文件。
: 请有经验的大侠指教。

w***g
发帖数: 5958
7
如果你用C++的话,POST++是一个不错的东东。可以用来创建基于mmap的persistent ob
ject,还有transaction功能。

【在 s******e 的大作中提到】
: 系统运行时,内存中保留大量metadata提供快速检索,系统停止运行时,将内存中的数
: 据保存到文件中,以便下次系统启动的时候提取。
: 问题是,如果系统crash的话,或者机器掉电,那么内存中的数据就丢失了, 如果在系
: 统运行时保存整个metadata, 耗时又太长。所以希望能够实现一个lazy write系统,仅
: 将修改过的数据写回文件。
: 请有经验的大侠指教。

s******e
发帖数: 431
8
谢谢各位。
我也考虑过使用类似mmap的技术,问题是metadata项大小不一致,数据进行了多次添加
删除后可能会浪费大量的空间。需要实现像heap allocation一样比较复杂的空间分配
和回收工作。不知道有没有更简单一点的处理这样问题的方法?
s******e
发帖数: 431
9
谢谢, 看起来post++就是我想要的。看起来我关注的几个问题,全都解决的。

ob

【在 w***g 的大作中提到】
: 如果你用C++的话,POST++是一个不错的东东。可以用来创建基于mmap的persistent ob
: ject,还有transaction功能。

c******a
发帖数: 600
10
在内存和缓冲间加FLASH
相关主题
你们这些frontend的,新老婆出现了现在的趋势是广好还是专好
码工的工作游戏公司招各种人才 (转载)
autocomplete实现方法请教做web application backend 有前途还是infra有前途
进入Programming版参与讨论
r***t
发帖数: 104
11
I have a similar question, but my problem is that I need write to this block
of data from a Ruby frontend, and backend need to read this block of data,
any good sugestion?
thanks
r***t
发帖数: 104
12
I have a similar question, but my problem is that I need write to this block
of data from a Ruby frontend, and backend need to read this block of data,
any good sugestion?
thanks
s******e
发帖数: 431
13
Are you using File as the inter media between front end and back end? Or you
need serialize the data to file from backend? For this case, you can also
use post++ if your backend is c++. I am not sure if we are concerned about
the same thing.

block
,

【在 r***t 的大作中提到】
: I have a similar question, but my problem is that I need write to this block
: of data from a Ruby frontend, and backend need to read this block of data,
: any good sugestion?
: thanks

r***t
发帖数: 104
14
no, the backend is another server, currently using Amazon SDB to pass the
data from the front end, but it is too slow. so want to find something
faster and more reliable
a****l
发帖数: 8211
15
oh, man! You are trying to murder the flash.

【在 c******a 的大作中提到】
: 在内存和缓冲间加FLASH
s******e
发帖数: 431
16
Well, I think that will be different problem. I think we don't care about
persistence. You just want to find something speed up data transfer. Maybe
consider using something like multithreading, or use different protocol.

【在 r***t 的大作中提到】
: no, the backend is another server, currently using Amazon SDB to pass the
: data from the front end, but it is too slow. so want to find something
: faster and more reliable

1 (共1页)
进入Programming版参与讨论
相关主题
steave yagg 新帖,关于android和googleapp开发其实很难搞
如何在website里面画graph?你们这些frontend的,新老婆出现了
Openfeint 筹建中国研发中心码工的工作
Functional programming 是大势所趋autocomplete实现方法请教
现在.NET也往Node上转了现在的趋势是广好还是专好
求建议,Java转Javascript? (转载)游戏公司招各种人才 (转载)
FMP supports UI thread in both Swing and SWT做web application backend 有前途还是infra有前途
貌似先在做mobile developer比java developer更火。面试被问到G++和GCC编译器的关系
相关话题的讨论汇总
话题: backend话题: data话题: block话题: need话题: sugestion