- 28 Aug, 2002 6 commits
-
-
Barry Warsaw authored
-
Barry Warsaw authored
opcode.
-
Barry Warsaw authored
(finally) been defined: the serial number of objects in the non-version after an abortVersion should be the last serial number of the object before it was modified in the version. This actually breaks the symmetry between serial numbers and transaction ids, so it must be handled specially. Specific changes include: _setupDBs(): Updated documentation. _finish(): Recognize the 'a' opcode, which is subtly different than the 'o' opcode. When the 'a' opcode is seen, we'll store both the "live revision id" and the current transaction id in the _serials table. The former id is the serial number of the last change to the non-version data. If we're seeing the 'o' or 'x' opcodes, we'll save None as the serial number, which tells the loop at the end of the function that the object serial number and the transaction id are the same (overwhelmingly, the most common case). When serial# <> tid, we'll concatenate the two values together into serial+tid as the value of the _serials's oid key. So the value can now be an 8-byte string (the common case), or a 16-byte string when serial# <> tid. _getSerialAndTid(): A new function which returns a 2-tuple of the oid's current serial number and the tid of the last transaction that modified the object. Usually these are the same, but in the face of abortVersion, they're not. _getSerialAndTidMissingOk(): Like _getSerialAndTid() but if the oid isn't in the _serials table, return (None, None) instead of raising a KeyError. Sometimes we need different table access semantics. abortVersion(), commitVersion(), modifiedInVersion(), load(), getSerial(), transactionalUndo(), history(), _dopack(): Use the new _getSerialAndTid() access method to get the serial# and tid for the last object modification, instead of accessing the _serials table directly. store(), _rootreachable(): Use _getSerialAndTidMissingOk()
-
Barry Warsaw authored
and it is subtly different than the `o' opcode. The serial number of objects in the non-version after an abortVersion should be the last serial number of the object before it was modified in the version. This actually breaks the symmetry between serial numbers and transaction ids, so it must be handled specially.
-
Andy McKay authored
-
Andy McKay authored
-
- 27 Aug, 2002 1 commit
-
-
Fred Drake authored
element if there isn't a prefix in the attribute name. Fixes http://mail.zope.org/pipermail/zpt/2002-August/003697.html
-
- 26 Aug, 2002 5 commits
-
-
Brian Lloyd authored
-
Brian Lloyd authored
-
Brian Lloyd authored
-
Brian Lloyd authored
-
Brian Lloyd authored
-
- 23 Aug, 2002 9 commits
-
-
Barry Warsaw authored
The picklelog branch attempts to improve performance and reduce the possibility of lock file exhaustion by optimistically writing pickle and metadata tables at the store() call instead of during the _finish() call. store() will be bounded in the number of objects it touches, but _finish() is unbounded, so we try to reduce the number of database pages the latter might actually touch. Other performance improvements are implemented based on hotshot profiling. The use of an extension module for Python 2.2 also speeds up a critical loop. This also implements the periodic checkpointing to improve recovery times when the database is not cleanly shutdown.
-
Barry Warsaw authored
-
Barry Warsaw authored
-
Barry Warsaw authored
-
Barry Warsaw authored
doing a critical operation in C. When fiddling the reference counting we often need to 1. unpack a 64bit string into a long 2. add a delta value to the long 3. pack the long into a 64bit string _helper.incr() does these three steps in C. This extension only works for Python 2.2, but Full.py has a Python replacement for use with Python 2.1.
-
Barry Warsaw authored
-
Barry Warsaw authored
write_object(): uses the `x' opcode, which is very similar to `o' except that the metadata is written optimistically during store() so it shouldn't be written during _finish().
-
Barry Warsaw authored
- Added BerkeleyConfig class for easier configuration of checkpointing policy and lock sizing. - Added _lockstats() and _docheckpoint() helpermethods.
-
Chris McDonough authored
-
- 22 Aug, 2002 4 commits
-
-
Sidnei da Silva authored
Checking why the tests are failing, i discovered a typo on the test. But unfortunately the tests are still failing. :(
-
Barry Warsaw authored
returnf() function will definitely get called. Otherwise, if we get an exception during the test, we'll deadlock because it's returnf() that releases the various test locks. loadinc(): Pass the file pointer in as well as the mbox so that the status printing will actually work. I'm not passing the file in /instead/ of the mbox, but I wasn't completely sure of the original intent of the code.
-
Fred Drake authored
Disabled tests that's probably broken during investigation.
-
Shane Hathaway authored
If self->meth is something other than a PyFunction, for example an ExtensionClass Method object, the blind cast breaks. The new code uses the string "(?)" if self->meth is not a function.
-
- 21 Aug, 2002 9 commits
-
-
Martijn Pieters authored
byte ranges because Acrobat Reader for Windows chokes when overlapping ranges have been merged.
-
Shane Hathaway authored
bug. Before the fix, ZopeSecurityPolicy saw the aq_base global and thought the module object was wrapped, leading to unexpected behavior.
-
Shane Hathaway authored
-
Shane Hathaway authored
in the error value. It may provide extra info.
-
Shane Hathaway authored
are not normally attributes of any object but acquisition wrappers, except in one important case: if container is a module and that module happens to import aq_base or aq_acquire from Acquisition, ZopeSecurityPolicy.validate() does unintended things. This made ModuleSecurityInfo declarations fail when using the Python policy. Now we no longer look at aq_base attributes, but rather the acquisition API, which is what cAccessControl does.
-
Chris McDonough authored
-
Shane Hathaway authored
- Show the most recent log entry first.
-
Chris McDonough authored
-
Chris McDonough authored
and lack of coverage in the code.
-
- 20 Aug, 2002 5 commits
-
-
Jim Fulton authored
-
Jim Fulton authored
- Documented FORCE_PRODUCT_LOAD - Changed FORCE_PRODUCT_LOAD so that if it is set, it determines whether products are installed regardless of whether ZEO_CACHE is set. This means that you can disable product installation by setting FORCE_PRODUCT_LOAD to an empty string even if you are not using a ZEO persistent cache. - Fixed the help system and Zope Tutorial product to honor FORCE_PRODUCT_LOAD.
-
Jim Fulton authored
testrunner output.
-
Chris McDonough authored
-
Chris McDonough authored
-
- 19 Aug, 2002 1 commit
-
-
Chris McDonough authored
-