問題タブ [zodb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
plone - plone.app.blob のレイアウト タイプを設定する方法と理由 (芝生と茂み)
私は plone.app.blob に移行している Plone 3.3.5 サイトを持っています。テスト移行を実行したところ、すべての BLOB ファイルが var/blobstorage の同じディレクトリに格納されていることがわかりました。
リストサーブでは、「芝生」と「ふさふさ」の 2 つのレイアウトから選択できるとのことでした。Lawn がデフォルトのようで、すべてのファイルが 1 つのフラット ディレクトリに格納されますが、「bushy」ではファイルがサブフォルダに整理されます。
ふさふさしたレイアウトをオンにできるビルドアウト オプションはありますか? (私はこれの例を見つけることができませんでした。)
各レイアウト オプションの長所は何ですか?
python - ZODBをコミットできません
初めてZODBを使用しています。FileStorageでデータをコミットしようとしているだけです。しかし、同じスクリプトを2回実行すると、新しいオブジェクトをコミットできません。これが私のスクリプトです
root['layer']['2c']
IDを変更してPythonから出ただけで、コードをもう一度繰り返すと、2回目のオブジェクトがコミットされません。私は最初のオブジェクトしか持っていません。その理由は何でしょうか。
blob - collective.xsendfile、ZODB BLOB、およびUNIXファイルのアクセス許可
私は現在、collective.xsendfile、Apache mod_xsendfile、およびPlone4を構成しようとしています。
どうやら、Apacheプロセスは、パーミッションが含まれているため、ファイルシステム上のblobstrageファイルを認識しません。
ls -lh var / blobstorage / 0x00 / 0x00 / 0x00 / 0x00 / 0x00 / 0x18 / 0xd5 / 0x19 / 0x038ea09d0eddc611.blob -r -------- 1 plone plone1006K5月28日15:30var/ blobstorage / 0x00 /0x00/0x00/0x00/0x00/0x18/0xd5/0x19/0x038ea09d0eddc611.blob
Apacheがこれらのファイルにアクセスできるように、追加のアクセス許可を与えるようにblobstorageを構成するにはどうすればよいですか?
plone - パッキング後に data.fs.old を保持する必要はありますか?
私の data.fs は 500 MB だったので、圧縮してからバックアップした結果、100 MB になりました。
私のホスティング アカウントは 500 MB しかないので、data.fs.old (500 MB) を削除しても安全でしょうか?
python - relstorage zodb パック中の「sys.excepthook のエラーによって開始されたスレッドで未処理の例外」
独自のマウントポイントで実行されているかなり大きな Plone インスタンスがあります。ZMI インターフェイスは、データベースのサイズを 7101.4M と表示します。Relstorage zodbpack.py スクリプトを使用してデータベースの週次パックを実行し、7 日より古いオブジェクトを削除します。パックを実行する cron ジョブの過去 2 週間の出力は次のとおりです。
最初と最後の行は、cron ジョブが実行するシェル スクリプトによって出力されます。
パック後にデータベースのサイズが減少するため、何かを行っているように見えます。このエラーをさらにデバッグする方法について、私は少し途方に暮れています。
長い間、パックは正常に動作していました。次に、データベースの接続パラメーターを変更しましたが、cron ジョブでそれらを更新するのを忘れたため、パックは 11 週間実行されませんでした。このエラーが表示される前に、2 回正常に実行されました。パックが実行されていない期間が長いことが、エラーと関係があるのでしょうか?
どんな助けでも大歓迎です。
走っていた:
- プレーン 3.3.5
- ゾープ 2.10.11
- 再ストレージ 1.4.1
- ZODB 3.8.4 ポーリング
python - オブジェクトデータベースにインデックスを付ける方法
多くのオブジェクト間の複雑な関係を格納するためにオブジェクトデータベース(ZODB)を使用していますが、パフォーマンスの問題が発生しています。その結果、オブジェクトの取得と挿入を高速化するためにインデックスの作成を開始しました。これが私の話です。あなたが助けてくれることを願っています。
最初にデータベースにオブジェクトを追加するときは、そのオブジェクトタイプ専用のブランチにオブジェクトを挿入します。同じエンティティを表す複数のオブジェクトを防ぐために、重複を見つけるためにブランチ内の既存のオブジェクトを反復処理するメソッドを追加しました。これは最初は機能しましたが、データベースのサイズが大きくなるにつれて、各オブジェクトをメモリにロードして属性をチェックするのにかかる時間が指数関数的に許容できないほど大きくなりました。
この問題を解決するために、オブジェクトの属性に基づいてインデックスを作成し始めました。これにより、オブジェクトが追加されたときに、タイプブランチと属性値インデックスブランチに保存されます。たとえば、firstName ='John'およびlastName='Smith'の属性を持つpersonオブジェクトを保存した場合、オブジェクトはpersonオブジェクトタイプブランチに追加され、キーを使用して属性インデックスブランチ内のリストにも追加されます。ジョン」と「スミス」。
これにより、新しいオブジェクトを分析でき、属性インデックス内で交差するオブジェクトのセットのみをチェックする必要があるため、重複チェックで多くの時間を節約できました。
しかし、オブジェクトを更新するときの処理に関して、すぐに別の問題に遭遇しました。インデックスは、もはや正確ではない可能性があるという事実を反映するように更新する必要があります。これには、古い値に直接アクセスしてオブジェクトを削除できるように記憶するか、オブジェクトを見つけて削除するために属性タイプのすべての値を反復処理する必要があります。いずれにせよ、パフォーマンスはすぐに再び低下し始めており、それを解決する方法を見つけることができません。
このような問題は以前に発生したことがありますか?あなたはそれを何で解決しましたか、それともこれはOODBMSを使用するときに私が対処しなければならないことですか?
助けてくれてありがとう。
python - ZODB トランザクション コミットが __getstate__ を複数回呼び出す
ZODB を使用してキャッシュ システムを作成しています。DB に配置するオブジェクトには、文字列に変換して Blob に保存する画像が含まれているため、 __getstate__
andメソッドを使用する必要がありました。__setstate__
同様の問題を抱えている人を見つけられなかったので、何か愚かなことをしていると思います。私が抱えている問題は、次のテスト コードを実行することで確認できます。
結果は次のとおりです。
出力からわかるように、各トランザクションは前のトランザクションごとに getstate メソッドを呼び出します。これは起こるはずですか/何が欠けていますか? トランザクションの使用を完全に誤解していますか? そのように PersistentMappings を使用しても問題ありませんか?
ZODB 3.10.3 と Python 2.6.3 を使用しています。
PS 通常、すべての操作を実行した後にコミットを実行するだけですが、ループは「キャッシュ」オブジェクトで可能な一連のメソッド呼び出しを表し、それぞれが ZODB からデータを追加または取得します。
あなたが与えることができる助けや理解に感謝します.
plone - .fszファイルからzopeデータベースを復元するにはどうすればよいですか?
データを復元しようとしているテスト環境があります。repozoを使用してライブサイトをバックアップしましたが、新しいサイトでzopeのドキュメントが表示されなくなりました。
これは私が試しているコマンドです:
このコマンドは失敗メッセージなしで完了しますが、データはplone(3)に表示されません。
これを行うのに役立つヒントや記事はありますか?
plone - Ploneで屋根裏部屋を掃除する
私は、Data.fsを備えた古いサイトをいくつか持っています。これは、平均的な中古車ディーラーのヤードに匹敵するほどに、何年にもわたって移動し、残骸を蓄積してきました。
手動でフォルダを削除してデータベースをパックした後でも、Data.fsはスペースを取りすぎているようです。
Data.fsでこの「失われたスペース」を探し出し、取り戻すプロセスは何でしょうか。オブジェクトツリーとフォルダの相対的なサイズを(再帰的に)印刷するようなものです。
plone - ZODB インメモリ バックエンド?
私は現在、大規模なプロジェクト (アクティブなメンバーは約数百 K) に取り組んでおり、Plone ソリューションに強く依存していました。
ここやここのように、それに関連するいくつかの質問をしました。
非常に経験豊富なプロニスタ (およびアクティブなスタックオーバーフラワー) からいくつかの返信がありました。ほんとうにありがとう。人々は、Plone はそれほど大きく拡張できないと言い続けていますが、その理由のほとんどは ZODB によるものです。
次に、ZODB のインメモリ バックエンドについて考えます。RAMは今本当に安いです!通常の 300 ドルの 128 GB SSD の 10 倍であるわずか 3,000 ドルで 128 GB を取得でき、SSD の 300 MB に比べて 30 GB の IO 帯域幅を実現できます。
インメモリ バックエンド + バイナリ用の BLOB + バックアップ用の 10 秒のディスク ジャーナリング + 最後の 10 秒を除くすべての元に戻す操作は、インスタンスの kill になります。彼らはRDBMをスモークし、そのようなcouch*/redisなどと比較して完全なACID +トランザクション+オブジェクトマッピングを提供する必要があります.
技術的に可能ですか?実装はありますか?(あなたの意見では)実装する価値はありますか?