Re: [openresty:264] [lua]如何设计个完全内置的简单数据管理

17 views
Skip to first unread message

Zoom.Quiet

unread,
Mar 15, 2012, 4:22:17 AM3/15/12
to yi huang, haske...@googlegroups.com
在 2012年3月15日 下午4:10,yi huang <yi.cod...@gmail.com> 写道:
> 我前两天刚用haskell写了一个类似的示例,提供json文本http接口,定时dump到磁盘,使用acid-state的话还可以获得完全的acid保证。
> https://github.com/yihuang/nosql-database-tutorial
> 我就不回复到 openresty 论坛了。。。
>
- 这可以回复到 haskellcug 吼,,,
謝謝!


>
> 2012/3/15 Zoom.Quiet <zoom....@gmail.com>
>>
>> 需求:
>> - 仅仅使用 openresty + lua 脚本,完成简单的 RESTful 接口服务
>> - 涉及用户简单的值对型文本数据的服务端存储
>>  - 不想引入其它 db 产品
>>  - 使用纯文本也可以
>> 问题:
>> - 如何解决好阻塞 I/O 和 openresty 的非阻塞运行形式?
>>
>> 思考:
>> - ngx.shared.DICT 已经足够
>>  - 而且跨进程共享
>>  - 是否可以拿来使用运行期数据字典
>>  - 定期,或是异步每次有修改后, dump 到服务端?
>>    - 启动时,自动加载一次就好?
>> ...
>>
>> --
>> 人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
>> 俺: http://about.me/zoom.quiet
>> 文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/
>>
>> --
>> 邮件自: 列表“openresty”,专用于技术讨论!
>> 发言: 请发邮件到 open...@googlegroups.com
>> 退订: 请发邮件至 openresty+...@googlegroups.com
>> 详情: http://groups.google.com/group/openresty
>> 官网: http://openresty.org/
>> 仓库: https://github.com/agentzh/ngx_openresty
>> 建议: 提问的智慧 http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 教程: http://agentzh.org/misc/nginx/agentzh-nginx-tutorials-zhcn.html
>
>
>
>
> --
> http://www.yi-programmer.com/blog/

--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/

Zoom.Quiet

unread,
Mar 15, 2012, 4:47:40 AM3/15/12
to yi huang, haske...@googlegroups.com
在 2012年3月15日 下午4:22,Zoom.Quiet <zoom....@gmail.com> 写道:
> 在 2012年3月15日 下午4:10,yi huang <yi.cod...@gmail.com> 写道:
>> 我前两天刚用haskell写了一个类似的示例,提供json文本http接口,定时dump到磁盘,使用acid-state的话还可以获得完全的acid保证。
>> https://github.com/yihuang/nosql-database-tutorial
> 謝謝!
>
- 大至看了一下,几个问题:
- 为什么多是 POST? 这在 REST 中最容易穿隧了,,
- 确定的操作可以使用 PUT 吼?
- 最后的 _ <- forkIO $ dumpPeridic shared dbfile 5000000
- 是进行定期 dump 的?
- 好象没有机制在意外中断时进行抢救性 dump?

yi huang

unread,
Mar 15, 2012, 8:23:15 AM3/15/12
to Zoom.Quiet, haske...@googlegroups.com
2012/3/15 Zoom.Quiet <zoom....@gmail.com>

在 2012年3月15日 下午4:22,Zoom.Quiet <zoom....@gmail.com> 写道:
> 在 2012年3月15日 下午4:10,yi huang <yi.cod...@gmail.com> 写道:
>> 我前两天刚用haskell写了一个类似的示例,提供json文本http接口,定时dump到磁盘,使用acid-state的话还可以获得完全的acid保证。
>> https://github.com/yihuang/nosql-database-tutorial
> 謝謝!
>
- 大至看了一下,几个问题:
 - 为什么多是 POST? 这在 REST 中最容易穿隧了,,
 - 确定的操作可以使用 PUT 吼?
- 最后的 _ <- forkIO $ dumpPeridic shared dbfile 5000000
 - 是进行定期 dump 的?
 - 好象没有机制在意外中断时进行抢救性 dump?

- 恩,确实应该使用 PUT DELETE
- 意外中断时抢救性dump,也许可以加个异常判断,不过有一些异常是怎么也抢救不过来的,对数据持久性有要求可以使用acid-state 混合snapshot和AOF,这样就怎么都不会丢数据了。
 

>
>>
>> 2012/3/15 Zoom.Quiet <zoom....@gmail.com>
>>>
>>> 需求:
>>> - 仅仅使用 openresty + lua 脚本,完成简单的 RESTful 接口服务
>>> - 涉及用户简单的值对型文本数据的服务端存储
>>>  - 不想引入其它 db 产品
>>>  - 使用纯文本也可以
>>> 问题:
>>> - 如何解决好阻塞 I/O 和 openresty 的非阻塞运行形式?
>>>
>>> 思考:
>>> - ngx.shared.DICT 已经足够
>>>  - 而且跨进程共享
>>>  - 是否可以拿来使用运行期数据字典
>>>  - 定期,或是异步每次有修改后, dump 到服务端?
>>>    - 启动时,自动加载一次就好?
>>> ...
>>>
...

--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/



--
http://www.yi-programmer.com/blog/

Zoom.Quiet

unread,
Mar 15, 2012, 9:07:29 AM3/15/12
to yi huang, haske...@googlegroups.com
在 2012年3月15日 下午8:23,yi huang <yi.cod...@gmail.com> 写道:
> 2012/3/15 Zoom.Quiet <zoom....@gmail.com>
>
>> 在 2012年3月15日 下午4:22,Zoom.Quiet <zoom....@gmail.com> 写道:
>> > 在 2012年3月15日 下午4:10,yi huang <yi.cod...@gmail.com> 写道:
>> >>
>> >> 我前两天刚用haskell写了一个类似的示例,提供json文本http接口,定时dump到磁盘,使用acid-state的话还可以获得完全的acid保证。
>> >> https://github.com/yihuang/nosql-database-tutorial
>> > 謝謝!
>> >
>> - 大至看了一下,几个问题:
>>  - 为什么多是 POST? 这在 REST 中最容易穿隧了,,
>>  - 确定的操作可以使用 PUT 吼?
>> - 最后的 _ <- forkIO $ dumpPeridic shared dbfile 5000000
>>  - 是进行定期 dump 的?
>>  - 好象没有机制在意外中断时进行抢救性 dump?
>
>
> - 恩,确实应该使用 PUT DELETE
> - 意外中断时抢救性dump,也许可以加个异常判断,不过有一些异常是怎么也抢救不过来的,对数据持久性有要求可以使用acid-state
> 混合snapshot和AOF,这样就怎么都不会丢数据了。

- 注意到,这些都有 hskell 支持包的
- 不过,应该都是另外的进程独立进行抢救的?
- 手上是否有小实例?

yi huang

unread,
Mar 15, 2012, 10:38:40 AM3/15/12
to Zoom.Quiet, haske...@googlegroups.com


On Thursday, March 15, 2012, Zoom.Quiet <zoom....@gmail.com> wrote:
> 在 2012年3月15日 下午8:23,yi huang <yi.cod...@gmail.com> 写道:
>> 2012/3/15 Zoom.Quiet <zoom....@gmail.com>
>>
>>> 在 2012年3月15日 下午4:22,Zoom.Quiet <zoom....@gmail.com> 写道:
>>> > 在 2012年3月15日 下午4:10,yi huang <yi.cod...@gmail.com> 写道:
>>> >>
>>> >> 我前两天刚用haskell写了一个类似的示例,提供json文本http接口,定时dump到磁盘,使用acid-state的话还可以获得完全的acid保证。
>>> >> https://github.com/yihuang/nosql-database-tutorial
>>> > 謝謝!
>>> >
>>> - 大至看了一下,几个问题:
>>>  - 为什么多是 POST? 这在 REST 中最容易穿隧了,,
>>>  - 确定的操作可以使用 PUT 吼?
>>> - 最后的 _ <- forkIO $ dumpPeridic shared dbfile 5000000
>>>  - 是进行定期 dump 的?
>>>  - 好象没有机制在意外中断时进行抢救性 dump?
>>
>>
>> - 恩,确实应该使用 PUT DELETE
>> - 意外中断时抢救性dump,也许可以加个异常判断,不过有一些异常是怎么也抢救不过来的,对数据持久性有要求可以使用acid-state
>> 混合snapshot和AOF,这样就怎么都不会丢数据了。
>
> - 注意到,这些都有 hskell 支持包的
> - 不过,应该都是另外的进程独立进行抢救的?
>  - 手上是否有小实例?

Acid-state我在生产环境小小地跑了一个,使用还是很简单的,今天没带电脑回来,改天把这个例子改成acid-state,就改几句代码就够了。
他不是通过抢救的方式保证数据安全,而是实实在在写到事务日志里了。
--
http://www.yi-programmer.com/blog/

Zoom.Quiet

unread,
Mar 15, 2012, 10:43:36 AM3/15/12
to yi huang, haske...@googlegroups.com
在 2012年3月15日 下午10:38,yi huang <yi.cod...@gmail.com> 写道:
> On Thursday, March 15, 2012, Zoom.Quiet <zoom....@gmail.com> wrote:
>> 在 2012年3月15日 下午8:23,yi huang <yi.cod...@gmail.com> 写道:
>>> 2012/3/15 Zoom.Quiet <zoom....@gmail.com>
>>>
>>>> 在 2012年3月15日 下午4:22,Zoom.Quiet <zoom....@gmail.com> 写道:
>>>> > 在 2012年3月15日 下午4:10,yi huang <yi.cod...@gmail.com> 写道:
>>>> >>
>>>> >>
>>>> >> 我前两天刚用haskell写了一个类似的示例,提供json文本http接口,定时dump到磁盘,使用acid-state的话还可以获得完全的acid保证。
>>>> >> https://github.com/yihuang/nosql-database-tutorial
>>>> > 謝謝!
>>>> >
>>>> - 大至看了一下,几个问题:
>>>>  - 为什么多是 POST? 这在 REST 中最容易穿隧了,,
>>>>  - 确定的操作可以使用 PUT 吼?
>>>> - 最后的 _ <- forkIO $ dumpPeridic shared dbfile 5000000
>>>>  - 是进行定期 dump 的?
>>>>  - 好象没有机制在意外中断时进行抢救性 dump?
>>>
>>>
>>> - 恩,确实应该使用 PUT DELETE
>>> - 意外中断时抢救性dump,也许可以加个异常判断,不过有一些异常是怎么也抢救不过来的,对数据持久性有要求可以使用acid-state
>>> 混合snapshot和AOF,这样就怎么都不会丢数据了。
>>
>> - 注意到,这些都有 hskell 支持包的
>> - 不过,应该都是另外的进程独立进行抢救的?
>>  - 手上是否有小实例?
>
> Acid-state我在生产环境小小地跑了一个,使用还是很简单的,今天没带电脑回来,改天把这个例子改成acid-state,就改几句代码就够了。
> 他不是通过抢救的方式保证数据安全,而是实实在在写到事务日志里了。
>
- haskell 自个儿的进程内 事务日志? 不依赖什么 DB 引擎的?!
- 强!

>
>>
>>>> >> 2012/3/15 Zoom.Quiet <zoom....@gmail.com>
>>>> >>>
>>>> >>> 需求:
>>>> >>> - 仅仅使用 openresty + lua 脚本,完成简单的 RESTful 接口服务
>>>> >>> - 涉及用户简单的值对型文本数据的服务端存储
>>>> >>>  - 不想引入其它 db 产品
>>>> >>>  - 使用纯文本也可以
>>>> >>> 问题:
>>>> >>> - 如何解决好阻塞 I/O 和 openresty 的非阻塞运行形式?
>>>> >>>
>>>> >>> 思考:
>>>> >>> - ngx.shared.DICT 已经足够
>>>> >>>  - 而且跨进程共享
>>>> >>>  - 是否可以拿来使用运行期数据字典
>>>> >>>  - 定期,或是异步每次有修改后, dump 到服务端?
>>>> >>>    - 启动时,自动加载一次就好?
>>>> >>> ...

Reply all
Reply to author
Forward
0 new messages