我读了几个ZODB教程,但这里有一件事我还是没有得到:你如何释放已经序列化(并提交)到(比如)FileStorage的内存?
更具体地说,我希望以下代码停止吃掉所有的记忆:
for i in xrange(bignumber):
iobtree[i]=Bigobject() # Bigobject is about 1Mb
if(i%10==0):
transaction.commit() # or savepoint(True)
transaction.commit()
Run Code Online (Sandbox Code Playgroud)
怎么能实现这一目标?是否有可能释放iobtree存储的引用并将其替换为可按需访问的"弱引用"?
我打算做一些大型项目(1 000 000用户,大约500请求前秒 - 在炎热时间).为了性能,我将不使用关系dbms(每个请求可能会花费很多关于dbms的关系dbms中的指令) - 所以我不能使用DAL.
我的问题是:
你能告诉我一下吗?
我使用Plone 4.0.4,Postgresql 9.0.3和RelStorage 1.5.0b2.目前我在PostgreSQL中使用"da_DK.ISO8859-1"编码 - 由于Plone内部使用UTF-8,"da_DK.UTF-8"会更好吗?PS"编码,整理和Ctype"都在Postgresql中设置.
谢谢.尼古拉吉
我正在做一些PloneFormGen的工作.目前,PloneFormGen在内部输入表单条目作为元组,没有关联的列信息.如果添加了新列(表单字段),则现有数据将变为无效.
这可以很容易地避免将数据存储在有序字典中,这些字典保留了输入的列顺序和列ID.
ZODB是否具有与有序字典等效的数据类型?如果可能,即使使用匹配的API(Python dict-like项操作和访问)?
我按照http://docs.pylonsproject.org/docs/pyramid/en/latest/tutorials/wiki/index.html上的教程进行了操作
我知道当我添加或更改持久对象(在本例中为Page对象)时,在transaction.commit()调用之前不会保留更改.为了取消更改,我可以致电transaction.abort().
但是,在本教程中,这些调用未显示在视图callables中.我假设有一些中间件可以在发送HTTP响应之前捕获异常并调用.abort()或调用.commit(),但我在代码或配置文件中的任何地方都没有看到它.
你能指出我正确的方向吗?我只需要知道幕后发生了什么,所以我知道我是否需要自己添加一些东西
我有一个测试环境,我试图将我的数据恢复到.我使用repozo备份了我的实时站点,但是zope文档已经在他们的新站点上消失了.
这是我正在尝试的命令:
/home/adrigen/atf/bin/repozo --recover --output=/home/adrigen/atf/var/filestorage/Data.fs --repository=/home/adrigen/atf/var/filestorage/backup/
Run Code Online (Sandbox Code Playgroud)
此命令完成时没有任何失败消息,但数据未出现在plone(3)中.
是否有任何提示或文章可以帮助我这样做?
我有一个站点,每当我尝试在服务器运行时打开数据库时,它会显示一个错误,数据库已由另一个进程打开.
问题是我有一些脚本可以用cron来安排检查数据库,甚至只是pshell在服务器运行时使用.
截至目前,似乎不可能从不同的进程打开数据库,而doc实际上说可以与数据库建立多个连接.
此问题迫使我一次只运行一个脚本/进程,包括服务器.
有没有办法在Plone站点中查找和删除未使用的blob存储空间?
我正在寻找类似的东西bin/zeopack,但它会检测blobstorage目录中未使用的blob .
我正在尝试将我们的blobstorage(使用Plone 4.3.2和ZODB3 3.10.5)从"草坪"迁移到"浓密"布局.在运行脚本时,我得到以下回溯:
(11719) Blob directory `var/blobstorage-lawn/` has layout marker set. Selected `lawn` layout.
(11719) The `lawn` blob directory layout is deprecated due to scalability issues on some file systems, please consider migrating to the `bushy` layout.
Migrating blob data from `var/blobstorage-lawn/` (lawn) to `var/blobstorage` (bushy)
Traceback (most recent call last):
File "bin/migrateblobs", line 19, in <module>
sys.exit(ZODB.scripts.migrateblobs.main())
File "/var/db/zope/plone43_dev/buildout-cache/eggs/ZODB3-3.10.5-py2.7-linux- x86_64.egg/ZODB/scripts/migrateblobs.py", line 77, in main
migrate(source, dest, options.layout)
File "/var/db/zope/plone43_dev/buildout-cache/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/scripts/migrateblobs.py", line 52, in migrate
link_or_copy(source_file, dest_file)
File "/var/db/zope/plone43_dev/buildout-cache/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/scripts/migrateblobs.py", line 30, …Run Code Online (Sandbox Code Playgroud) 在plone中我只上传了800 GB的数据(主要是pdfs),它已经占用了2 TB的硬盘空间.空间到底在哪里?我正在使用collective.documentviewer及其默认设置.和plone 4.3.documentviewer存储的文件是否已更改为各种图像大小,即缩略图,大图像等,并存储在blobstorage文件夹中?
zodb ×10
plone ×6
python ×5
zope ×3
pyramid ×2
autocommit ×1
blobstorage ×1
encoding ×1
grok ×1
plone-4.x ×1
postgresql ×1
restore ×1
web2py ×1