Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
60d04a03
Commit
60d04a03
authored
Nov 03, 2003
by
Fred Drake
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lots of cleanup; remove archaic BoboPOS 2 support
parent
537cb142
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
95 deletions
+47
-95
lib/python/App/CacheManager.py
lib/python/App/CacheManager.py
+47
-95
No files found.
lib/python/App/CacheManager.py
View file @
60d04a03
...
...
@@ -10,104 +10,82 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
__doc__
=
'''Cache management support
'''Cache management support.
This class is mixed into the database manager in App.ApplicationManager.
$Id: CacheManager.py,v 1.2
8 2003/11/03 16:40:37
fdrake Exp $'''
__version__
=
'$Revision: 1.2
8
$'
[
11
:
-
2
]
$Id: CacheManager.py,v 1.2
9 2003/11/03 19:08:44
fdrake Exp $'''
__version__
=
'$Revision: 1.2
9
$'
[
11
:
-
2
]
import
Globals
,
time
,
sys
import
time
import
Globals
from
DateTime
import
DateTime
class
CacheManager
:
"""Cache management mix-in
"""
_cache_age
=
60
_vcache_age
=
60
_cache_age
=
60
_vcache_age
=
60
_history_length
=
3600
# Seconds
manage_cacheParameters
=
Globals
.
DTMLFile
(
'dtml/cacheParameters'
,
globals
())
manage_cacheGC
=
Globals
.
DTMLFile
(
'dtml/cacheGC'
,
globals
())
manage_cacheParameters
=
Globals
.
DTMLFile
(
'dtml/cacheParameters'
,
globals
())
manage_cacheGC
=
Globals
.
DTMLFile
(
'dtml/cacheGC'
,
globals
())
transparent_bar
=
Globals
.
ImageFile
(
'www/transparent_bar.gif'
,
globals
())
store_bar
=
Globals
.
ImageFile
(
'www/store_bar.gif'
,
globals
())
load_bar
=
Globals
.
ImageFile
(
'www/load_bar.gif'
,
globals
())
def
_getDB
(
self
):
return
self
.
_p_jar
.
db
()
def
_inVersion
(
self
):
return
self
.
_p_jar
.
getVersion
()
and
True
or
False
def
cache_length
(
self
):
try
:
db
=
self
.
_p_jar
.
db
()
except
:
# BoboPOS2
return
len
(
Globals
.
Bobobase
.
_jar
.
cache
)
else
:
return
db
.
cacheSize
()
return
self
.
_getDB
().
cacheSize
()
def
cache_detail_length
(
self
):
try
:
db
=
self
.
_p_jar
.
db
()
except
:
return
()
else
:
return
db
.
cacheDetailSize
()
return
self
.
_getDB
().
cacheDetailSize
()
def
database_size
(
self
):
try
:
db
=
self
.
_p_jar
.
db
()
except
:
# BoboPOS2
return
len
(
Globals
.
Bobobase
.
_jar
.
db
.
index
)
*
4
else
:
return
db
.
objectCount
()
return
self
.
_getDB
().
objectCount
()
def
cache_age
(
self
):
try
:
if
self
.
_p_jar
.
getVersion
():
return
self
.
_vcache_age
except
:
pass
return
self
.
_cache_age
if
self
.
_inVersion
():
return
self
.
_vcache_age
else
:
return
self
.
_cache_age
def
manage_cache_age
(
self
,
value
,
REQUEST
):
"set cache age"
try
:
v
=
self
.
_p_jar
.
getVersion
()
except
:
# BoboPOS2:
if
self
.
_p_jar
.
db
is
not
Globals
.
Bobobase
.
_jar
.
db
:
raise
'Version Error'
,
(
'''You may not change the database cache age
while working in a <em>version</em>'''
)
self
.
_cache_age
=
Globals
.
Bobobase
.
_jar
.
cache
.
cache_age
=
value
db
=
self
.
_getDB
()
if
self
.
_inVersion
():
self
.
_vcache_age
=
value
db
.
setVersionCacheDeactivateAfter
(
value
)
else
:
if
v
:
self
.
_vcache_age
=
value
self
.
_p_jar
.
db
().
setVersionCacheDeactivateAfter
(
value
)
else
:
self
.
_cache_age
=
value
self
.
_p_jar
.
db
().
setCacheDeactivateAfter
(
value
)
self
.
_cache_age
=
value
db
.
setCacheDeactivateAfter
(
value
)
if
REQUEST
is
not
None
:
response
=
REQUEST
[
'RESPONSE'
]
response
.
redirect
(
REQUEST
[
'URL1'
]
+
'/manage_cacheParameters'
)
def
cache_size
(
self
):
try
:
if
self
.
_p_jar
.
get
Version
():
return
self
.
_p_jar
.
db
()
.
getVersionCacheSize
()
e
xcept
:
pass
return
self
.
_p_jar
.
db
()
.
getCacheSize
()
db
=
self
.
_getDB
()
if
self
.
_in
Version
():
return
db
.
getVersionCacheSize
()
e
lse
:
return
db
.
getCacheSize
()
def
manage_cache_size
(
self
,
value
,
REQUEST
):
"set cache size"
try
:
v
=
self
.
_p_jar
.
getVersion
()
except
:
# BoboPOS2:
if
self
.
_p_jar
.
db
is
not
Globals
.
Bobobase
.
_jar
.
db
:
raise
'Version Error'
,
(
'''You may not change the database cache size
while working in a <em>version</em>'''
)
Globals
.
Bobobase
.
_jar
.
cache
.
cache_size
=
value
db
=
self
.
_getDB
()
if
self
.
_inVersion
():
db
.
setVersionCacheSize
(
value
)
else
:
db
=
self
.
_p_jar
.
db
()
if
v
:
db
.
setVersionCacheSize
(
value
)
else
:
db
.
setCacheSize
(
value
)
db
.
setCacheSize
(
value
)
if
REQUEST
is
not
None
:
response
=
REQUEST
[
'RESPONSE'
]
...
...
@@ -115,24 +93,7 @@ class CacheManager:
def
cacheStatistics
(
self
):
try
:
return
self
.
_p_jar
.
db
().
cacheStatistics
()
except
:
pass
# BoboPOS 2
return
(
(
'Mean time since last access (minutes)'
,
"%.4g"
%
(
Globals
.
Bobobase
.
_jar
.
cache
.
cache_mean_age
/
60.0
)),
(
'Deallocation rate (objects/minute)'
,
"%.4g"
%
(
Globals
.
Bobobase
.
_jar
.
cache
.
cache_mean_deal
*
60
)),
(
'Deactivation rate (objects/minute)'
,
"%.4g"
%
(
Globals
.
Bobobase
.
_jar
.
cache
.
cache_mean_deac
*
60
)),
(
'Time of last cache garbage collection'
,
time
.
asctime
(
time
.
localtime
(
Globals
.
Bobobase
.
_jar
.
cache
.
cache_last_gc_time
))
),
)
return
self
.
_getDB
().
cacheStatistics
()
# BoboPOS 2
def
cache_mean_age
(
self
):
...
...
@@ -153,11 +114,8 @@ class CacheManager:
def
manage_full_sweep
(
self
,
value
,
REQUEST
):
"Perform a full sweep through the cache"
try
:
db
=
self
.
_p_jar
.
db
()
except
:
# BoboPOS2
Globals
.
Bobobase
.
_jar
.
cache
.
full_sweep
(
value
)
else
:
db
.
cacheFullSweep
(
value
)
db
=
self
.
_getDB
()
db
.
cacheFullSweep
(
value
)
if
REQUEST
is
not
None
:
response
=
REQUEST
[
'RESPONSE'
]
...
...
@@ -165,11 +123,7 @@ class CacheManager:
def
manage_minimize
(
self
,
value
=
1
,
REQUEST
=
None
):
"Perform a full sweep through the cache"
try
:
db
=
self
.
_p_jar
.
db
()
except
:
# BoboPOS2
Globals
.
Bobobase
.
_jar
.
cache
.
minimize
(
value
)
else
:
db
.
cacheMinimize
(
value
)
self
.
_getDB
().
cacheMinimize
(
value
)
if
REQUEST
is
not
None
:
response
=
REQUEST
[
'RESPONSE'
]
...
...
@@ -184,8 +138,7 @@ class CacheManager:
Returns the name of the classes of the objects in the cache
and the number of objects in the cache for each class.
"""
db
=
self
.
_p_jar
.
db
()
detail
=
db
.
cacheDetail
()
detail
=
self
.
_getDB
().
cacheDetail
()
if
REQUEST
is
not
None
:
# format as text
REQUEST
.
RESPONSE
.
setHeader
(
'Content-Type'
,
'text/plain'
)
...
...
@@ -199,8 +152,7 @@ class CacheManager:
"""
Returns information about each object in the cache.
"""
db
=
self
.
_p_jar
.
db
()
detail
=
db
.
cacheExtremeDetail
()
detail
=
self
.
_getDB
().
cacheExtremeDetail
()
if
REQUEST
is
not
None
:
# sort the list.
lst
=
map
(
lambda
dict
:
((
dict
[
'conn_no'
],
dict
[
'oid'
]),
dict
),
...
...
@@ -233,7 +185,7 @@ class CacheManager:
return
detail
def
_getActivityMonitor
(
self
):
db
=
self
.
_
p_jar
.
db
()
db
=
self
.
_
getDB
()
if
not
hasattr
(
db
,
'getActivityMonitor'
):
return
None
am
=
db
.
getActivityMonitor
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment