[Jens Vagelpohl j...@dataflake.org]
... just to check if the list is broken as Martin Aspeli seems to believe.
A _possible_ reason for believing that: ZODB-dev is configured to
auto-reject messages sent by non-subscribers. About once a month I
find a msg among the 100s (sometimes 1000s) of
[Nitro]
...
I wonder if _commit is really *that* slow
Six years ago I timed factor-of-100 speed differences due to using MS
_commit() on WinXP at the time:
https://mail.zope.org/pipermail/zodb-dev/2004-July/007720.html
or if there's another (faster) function which can be called...
No MS
[Jim Fulton]
I need to review the changes before the release. I'll probably reject the
repozo change without an automated test.
[Chris Withers]\
Are you serious? You'd rather have a broken tool than one that isn't
broken on the basis that the existing tests aren't part of the test
suite that
[Tres Seaver]
Does anybody have evidence or belief that the probabalistic part of
the '--quick' optoin (as of ZODB 3.2.8, if it matters) is likely to
guess wrong on a setup where incremental backups are run frequently?
Last time I did a repozo bug hunt (years ago), I wrote a stress test
that
[Nikhil [EMAIL PROTECTED]]
Testing of ZEO is hanging in Python2.5. When i traced i think it is
failing to connect and is attempting to reconnect continously in client.py.
Does this happen due to changes in socket module or due to in
threading module ?
FWIW, when I looked at this about a year
[Chris Spencer]
A couple questions. Does ZODB support classes using __slots__?
[Jim Fulton]
Much to my surprise, it seems to. I just tried it and it worked just
fine. :)
FYI, this is intentional :-), and was part of the changes to make ZODB
play nicely with Python's new-style classes. It
[Andreas Jung]
I encountered the following strange behavior with Zope 2.8.8.
I couldn't find a problem in the following. Are you having a
problem, or just asking a question?
The following code is used to integrate SQLAlchemy with
Zope. A registered utility subclassing ZopeBaseWrapper
[Alan Runyan]
+1 for removing versions. they have been considered bad practice for
over 3 years.
I believe 100% its ok to remove them.
Jim formally announce[d] the intention to deprecate versions in both
Zope and ZODB nearly 3 years ago, here:
[Tim Peters]
The ZEO client cache is stored in a fixed-size disk file. When a ZEO
client needs to create this file for the first time, it's trying to
ensure there's enough space on disk for it at the start, and reserve
that disk space then, rather than risk dying with a no space left on
device
[Paul Winkler]
Our experiments suggest that ext2, ext3,
and reiserfs optimize for sparse files so there is no such guarantee.
AFAICT from some quick googling and wikipediaing, the same is true
for NTFS, XFS, JFS, ZFS. I suspect we've accounted for the majority
of the production Zope
[Paul Winkler]
...
If I understand this stuff correctly, the code in question on a
filesystem that *doesn't* have the sparse file optimization would
equate to write N null bytes to this file as fast as possible.
True?
[Dieter Maurer]
Posix defines the semantics.
I have not looked it up, but
[Andreas Jung]
I have the following script to emulate a long running writing ZEO client
by writing 100MB to a page template:
import transaction
pt = app.foo
while 1:
data = '*'*1
T = transaction.begin()
pt.pt_edit(data, 'text/html')
T.commit()
print 'done'
This
[Chris Withers]
...
s = transaction.savepoint()
transaction.commit(1)
s.rollback()
Traceback (most recent call last):
File stdin, line 1, in ?
File
lib/python/transaction/_transaction.py, line 682, in rollback
raise interfaces.InvalidSavepointRollbackError
[Roché Compaan]
...
http://mail.zope.org/pipermail/zodb-dev/2004-July/007682.html
...
[Lennart Regebro]
I read this thread, and it seems to me that the ultimate solution
would be to have a setting for FSStorage, say fsync-behaviour with
the options of single, double, none or interval. We'd
[Christian Zagrodnick]
the DB.open method makes me wonder how it works (http://svn.zope.org/
ZODB/trunk/src/ZODB/DB.py?rev=69551view=auto)
It locks with self._a() and calls self._connectionMap which locks
too. I cannot imagine a way this could possibly work.
Look at __init__():
x =
...
|Jim Fulton]
Or consider object activation and deactivation. If a ghost is
shared among multiple threads, then __setstate__ could
be called from separate threads.
[Dieter Maurer]
But, why should this be a problem? They would install the same
state.
__setstate__ implementations are
...
[Chris Withers]
Yes, but using timestamps also means:
- we're dependent on the system clock being accurate for no good reason
[Jim Fulton]
I'm hoping that Jeremy or Tim will chime in, since we considered switching
to integers a while back.
Not much to say here. It's not true that
[Juan Pablo Giménez]
ok... but, if you delete Data.fs zope keep running, writing data into
Data.fs.tmp,
and don't log nothing about it. Sorry, but that's a bug...
Well, if it is, it's an operating system bug: you normally don't
delete files on Unix-like systems, you merely unlink them,
[John Belmonte]
Just reporting that I got this spurious error with Python 2.4,
mod_python 3.2.10, and ZODB 3.6. I don't see what I could be doing
wrong at the app level to cause it.
SystemError: object at 0x2aaab031dc00 with type
BTrees._OOBTree.OOBucket not in the cache despite that we
[Chris S]
I'm having a problem storing infinity. The following code reproduces
the problem on w2k:
Purely a Python issue. Nothing about the behavior of infinities, NaNs
or signed zeroes is defined in Python before (the not yet released)
2.5. In 2.5, marshal and pickle (but only with protocol
[David Binger]
That's interesting.
It appears that pickle protocol 2 chokes on inf.
[Tim Peters]
As above. BTW, why protocol 2 specifically? Protocols 1 and 2 treat
floats the same way.
[David]
I was thinking that the default protocol is 1, but I see
now that the default is 0.
Strange
[Chris S]
Is there a way to determine the nearest neighbors to a key in an
OOBTree? Something like:
from BTrees.OOBTree import OOBTree
tree = OOBTree(dict(a=1, b=2, c=3, d=4))
tree.nearestLowItem('b')
('a',1)
tree.nearestHighItem('b')
('c',3)
Efficient range searches are an important
[various fsrefs.py failures in Zope 2.9.3]
[Tres]
I can reproduce this on the Zope 2.9 branch, but not on the 2.8 branch.
I'll note that it can be reproduced easily with a standalone ZODB 3.6 too:
import ZODB
import ZODB.FileStorage
import transaction
from BTrees.OOBTree import OOBTree
st
[John S. Bellendir]
We are running Indico and using zodb. Users are receiving random errors like
the one below, any idea why this is happening?
I don't know what Indico is, but almost all the software in your
traceback is under a MaKaC subdirectory and isn't part of ZODB. The
ZODB message
[Dieter Maurer]
The newest pickle formats can also handle the class references
is bit more efficiently -- at least when a single transaction
modifies many objects of the same class.
[Chris Withers]
I know ZC was involved in the work to introduce these new pickle
formats, but are they actually
[Pascal Peregrina]
I would like to know if there is a way to get the list of affected oids
knowing a transcaction id.
Nothing in the storage API reveals this.
If not, any idea about what would be the simplest way to do that for a
FileStorage ZODB?
Search the output of fsdump.py:
[Tim]
No, I don't. The internal docs/comments are inconsistent on this
point. FileCache.settid() starts with
##
# Update our idea of the most recent tid.
[Chris]
Is this the most recently used or the most recently available?
(possible off-by-one error)
Neither, really. It's the
[Chris Withers]
I'm trying to fix this bug:
http://www.zope.org/Collectors/Zope/2062
And I've narrowed it down to the following lines in History.py:
...
If I comment out the base._p_changed=0 and base._p_deactivate() then
history copy starts working again.
...
Why was the scrubbing
[Sidnei da Silva]
It's a bad disk block situation. No blame on Zope. Getting a new
disk.
That's refreshing -- most people would claim that ZODB destroyed their
disk ;-) These are the times you're glad you made backups, eh?
http://zope.org/Wikis/ZODB/FileStorageBackup
[Christian Theune]
Hmm. Sorry, but could you point out where the API is defined? I might
not have looked hard enough. I only found internals to exploit. :(
[Jim Fulton]
I wish I could. I'm almost certain that Chris McDonough implemented
one at PyCon 2005 and that Stephan Richter made use of
[Martin Gfeller, attacks a ZEO hang on Windows]
...
Man, that sucks! Looks like a Python bug to me, probably specific to
Windows, and (as you discovered) introduced in Python 2.4, but
deliberately not backported to 2.3. I opened a Python tracker item
with a minimal hanging test case:
[Tim Peters]
That's an example: the post-MVCC ZEO cache is a single file, and
there are no cache flips; flips are unique to the pre-MVCC two-file
ZEO cache design.
[Paul Winkler]
Interesting. Is there a recommended way now to judge whether your
ZEO cache is big enough
[Paul Winkler]
Heh. Well, I had a site that under some usage patterns would
occasionally slow to a crawl with cache flips every few minutes. That
was with the old default 20 MB cache size. I think I left it at
500 MB or so and that site's been fine since. But the performance
demands were
[Chris Withers]
Anyone ever see this error before and have a clue what it means?
File lib/python/Zope2/Startup/__init__.py, line 47, in startup
starter.setConfiguration(cfg)
File lib/python/Zope2/App/startup.py, line 100, in startup
File
[Antonio Beamud Montero]
Well, now I can minimize the cache and get the next values (an unclosed
connection fixed):
[['BTrees.OOBTree.OOBTree', 3], ['Persistence.PersistentMapping', 6],
['request.Request', 14], ['status.Status', 3]]
But my server doesn't free any memory, now it uses 55Mb of
[Chris Withers]
Is it just me or does zeoup.py write a transaction to the end of Data.fs
containing a MinPO object?
Make sure a ZEO server is running.
usage: zeoup.py [options]
The test will connect to a ZEO server, load the root object, and attempt to
update the zeoup counter in the root.
[Chris Withers]
...
...oh well, if only the ZODB cache was RAM-usage-based ratehr than object
count based ;-)
[Tim Peters]
Ya, that's not feasible. More plausible would be to base ZODB cache targets
on aggregate pickle size; ZODB _could_ know that, and then it would also be
strongly
[Erik A. Dahl]
I'm trying to get a zeo server to do authentication using the built-in
digest stuff. I have poked around a bit and haven't found any
documentation on it. Is there any?
Sorry, not that I know of. Remnants of the original proposal seem to be
here, and you may be able to glean
[Chris Withers]
...
...oh well, if only the ZODB cache was RAM-usage-based ratehr than object
count based ;-)
Ya, that's not feasible. More plausible would be to base ZODB cache targets
on aggregate pickle size; ZODB _could_ know that, and then it would also be
strongly related to how a ZEO
[Chris Withers]
This is with whatever ZODB ships with Zope 2.8.5...
Do:
import ZODB
print ZODB.__version__
to find out.
I have a Stepper (zopectl run on steroids) job that deals with lots of
big objects.
Can you quantify this?
After processing each one, Stepper does a
[Mihai Ilinca]
...
In addition to what Dieter said (thanks, Dieter!),
...
Trough 'slave' I only do read operations at the moment.
You didn't say which version of ZODB you're using. If it's a version before
3.3, then a client that doesn't modify objects may not process invalidations
even
Note that neither Transience nor TemporaryStorage are part of ZODB --
they're part of Zope. That doesn't mean they're off-topic here, but it does
mean you're probably not gonna get anywhere without attracting Chris
McDonough's attention.
___
For more
[Florent Guillaume]
In storage.py there's a comment saying that only a few types of pickles
for the class descriptions are written, even if more are read. But
actually in DB.py there's this code that creates a new root if oid z64
doesn't exist:
root = PersistentMapping()
[replying to private email here, with permission]
[Egon Frerich]
maybe you are interested in this.
I installed Zope 3 (version 3.2) in python 2.4.2 site-packages (Windows
XP Home - but I assume this is not important).
Windows isn't relevant to the problem you hit, no.
Then I installed
Oops! I didn't mean to send that msg twice here. The other one was
trying to bcc the people whose subscriptions got disabled today, using a
non-Zope account. I expected that to get rejected by Mailman, but forgot
that I have multiple-account subscriptions to zodb-dev ...
[Sidnei da Silva]
Every now and then I face a corruption of the persistent zeo cache, but
this is the first time I get this variant.
What other variants do you see?
The cause is very likely to be a forced shutdown of the box this zope
instance was running on, but I thought it would be nice
[Tim Peters]
...
It doesn't call fsync() unless it's explicitly closed cleanly, but it's
unclear what good fsync() actually does across platforms when flush() is
called routinely and the power stays on.
LOL. Immediately upon sending that msg, there was a power outage here,
which left behind
[DJL]
I have a project that i want to export to nokia 770 that use zodb
is there any recommendation to minimize the memory usage of zodb package
Don't store any objects in the database, and don't open any storages or
connections ;-)
Of course those are silly extremes, but they do point to
[Andreas Jung]
...
Obviously ZEO (using TRACE) runs on Zope 3 without zLOG so specific
extension can be handled locally.
ZEO also runs on Zopes 2.8 and 2.9 without zLOG -- zLOG hasn't been
used in ZODB since 3.2 (ZODBs 3.3, 3.4, 3.5, 3.6, and current trunk
contain no references to zLOG).
If
[Andreas Jung]
ZODB defines these levels but I can not see any code in the ZODB package
that actually uses these levels.
Nevertheless, grep'ing the ZODB source for TRACE and BLATHER will find them.
TRACE is used only in modules under ZEO/zrpc/, and gives extremely verbose
output about
I'm pleased to announce the release of ZODB 3.6 final. This corresponds to
the ZODB included (or that will be included) in Zope 2.9 final and Zope 3.2
final. You can download a source tarball or Windows installer from:
http://zope.org/Products/ZODB3.6
Note that there are two Windows
[José Carlos Senciales]
How can i know if i have my Python configured with large file support ?
My version is:
Zope Version (Zope 2.8.4-final, python 2.3.5, win32)
Python Version 2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit
(Intel)] System
Platform win32
All flavors of Windows
[Tamas Hegedus]
You have released the ZODB/ZEO as a stand alone package. But there is no
stand alone searching possibility. Why? This just does not make any
sense.
It makes sense if you know why ZODB is released this way ;-) Primarily,
it's so that people running Zope can install ZEO servers
[Tamas Hegedus]
Please do not forget that I am not a real programmer but a consumer:
That's OK -- in return, please don't forget that you're posting to a ZODB
developer's list ;-).
0. I accept if the policy is making ZODB just for Zope.
That's the only solid reason Zope Corp has to _pay_ for
I'm still baffled by how you get into this state to begin with. Florent
explained why earlier, and I didn't see a reply to this part:
[Florent Guillaume]
Huh are you sure? That would mean you have thousands of threads. Or
hundreds or ZEO clients. Or hundreds of ZODB mountpoints.
By itself
FYI, I added code to clear the cache in _ConnectionPool at the time a closed
Connection is forgotten. This will be in ZODB 3.6 final, which in turn will
be in Zopes 2.9 and 3.2 final.
I don't have time for more here now, so if others want more it's up to them
;-)
...
P.S. Call me Pitcher, i
...
[Tim]
FYI, I added code to clear the cache in _ConnectionPool at the time a
closed Connection is forgotten. This will be in ZODB 3.6 final, which
in turn will be in Zopes 2.9 and 3.2 final.
[Pitcher]
Okay. Tank you. But it's good not always... You never said anything good
or bad of the
[Syver Enstad]
I have recently upgraded from ZODB 3.2 to 3.5.1. After doing this I
notice that ZEO throws exceptions on commiting a transaction for
certain types of Persistent classes. ...
[Tim Peters]
I was able to create a small self-contained test case from this
description, and opened
[Dieter Maurer]
They did not tell us about their application. But, Zope's database
adapters work like this. They use the ZODB cache (and its pool) as an RDB
connection pool. Thus, if the ZODB caches are not released, the RDB
connections won't.
I believe you, but I'm not sure what to make of
[Tim Peters]
...
I suggested before that forcing calls to gc.collect() would give more
evidence. If that doesn't help, then it's most likely that the
application is keeping Connections alive.
[David Rushby]
I'm not the OP, but I was able to reproduce the problem he was
encountering. Calls
[??? ? ?]
Hi. A little bit of history... We have zope as an application server for
heavy loaded tech process. We have high peaks of load several times a day
and my question is about how can we can avoid unused connections to
remain in memory after peak is passed? Before
[Florent Guillaume]
...
The self.all.remove(c) in _ConnectionPool attempts to destroy the
connection.
Nope, it's simply getting rid of a weak reference that no longer serves a
purpose, to avoid unbounded growth of the .all set in case of ill-behaved
application code, and to speed Python's
...
[Florent Guillaume]
The self.all.remove(c) in _ConnectionPool attempts to destroy the
connection. If something else has a reference to it once it's closed,
then that's a bug, and it shouldn't. It should only keep a weak
reference to it at most.
[EMAIL PROTECTED]
But it's nonsense!
Oops! I sent this to zope-dev instead of zodb-dev by mistake.
[EMAIL PROTECTED]
Not agree. Can you answer the question? Does self.all.remove(c) mean
that we WANT to destroy connection instance?
[Tim Peters]
It means that _ConnectionPool no longer has a reason to remember
anything about
[Syver Enstad]
I have recently upgraded from ZODB 3.2 to 3.5.1. After doing this I
notice that ZEO throws exceptions on commiting a transaction for certain
types of Persistent classes.
...
I was able to create a small self-contained test case from this description,
and opened a Collector
[Tim]
...
Or there are no strong reference to `obj`, but `obj` is part of cyclic
garbage so _continues to exist_ until a round of Python's cyclic garbage
collection runs.
[Dieter Maurer]
And this is *VERY* likely as any persistent object in the cache has a
(strong, I believe) reference to
[Florent Guillaume]
Ok I've dug deeper and now understand the problem. The root cause is in
the multi-databases support.
The problem is that the Zope startup only closes the main connection it
had on the root database. The first connection to the TemporaryStorage,
created and opened during
[Florent Guillaume]
I've been debugging session problems for two days, I feel it's time to
write down what I've observed and ask for other eyes to look at it (Chris
McDonough has been working on this too). This is all on Zope 2.9 trunk
BTW (ZODB 3.6.0b5 and Zope 2.9's tempstorage) with python
[Sidnei da Silva]
I have a object that subclasses from Shared.DC.ZRDB.TM and it's bombing
with a 'TypeError: Savepoints unsupported' with Zope 2.8.
Please find a full traceback and share it.
Should the Shared.DC.ZRDB.TM implement savepoints as a 'noop' maybe?
No -- lying would make matters
[Tim]
I don't know, but if I were you I'd try running for a while on entirely
different hardware.
[Chris]
This is on a cluster of machines, with the errors not coming from any one
machine as far as I can see...
Networking gear and cables are also hardware ;-)
10:05 - Couldn't load state
[Chris Spencer]
Instead of requiring all persistable objects to inherit a special class,
wouldn't it be possible to dynamically wrap a class's __setattr__ and/or
__setitem__ methods to determine when an object's been modified?
I'm not clear on what you're trying to accomplish, but any
[Sidnei da Silva]
I've seen the following tests fail today, after updating Zope 2.8 branch
for all variants of BTrees:
==
ERROR: testUpdateFromPersistentMapping
(BTrees.tests.testBTrees.IIBucketTest)
[Sidnei]
I've seen the following tests fail today, after updating Zope 2.8 branch
...
Python 2.4.2 (#2, Nov 20 2005, 17:20:59)
...
BTW, I think the Official Story is that Python 2.4+ is still not supported
for Zope 2.8. I ran all the stuff in my reply with 2.4.2 too. Doesn't
matter, though
[Sidnei da Silva]
But, why only the 2.8 tests would fail then?
Hey, it's your machine, you figure it out ;-) Note that test.py in 2.8 has
little in common with the test.py in 2.9 or Zope trunk, and they may very
well react in different ways to quirks in your environment.
I'll try a 'make
[Florent Guillaume]
Plagiarism! ;)
http://mail.zope.org/pipermail/zodb-dev/2005-December/009560.html
Fascinating! I didn't know plagiarism was French for open source ;-)
___
For more information about ZODB, see the ZODB Wiki:
[Dmitry Vasiliev]
Sure, but my reasonable assumption was that when you insert an exception
message in a doctest you reread it another one time and fix typos if any.
Relying on ideal behavior is rarely a reasonable assumption ;-)
What actually happens is that people write new doctests, run
[Chris McDonough]
Note that changing the transientobject conflict resolution algorithm
won't get rid of all write conflict errors, because the BTree-based
indexes in the transient object container will still conflict during a
bucket split and other situations that I can't exactly recall
FYI, I also added this info to Chris's other bug report, at
http://www.zope.org/Collectors/Zope/1971
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dieter Maurer
Sent: Thursday, December 15, 2005 11:52 AM
To: Chris Withers
Cc: zodb-dev@zope.org
FYI, I added this info to Chris's bug report, at
http://www.zope.org/Collectors/Zope/1970
Thanks!
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dieter Maurer
Sent: Thursday, December 15, 2005 11:02 AM
To: Tim Peters
Cc: 'Chris Withers'; zodb-dev
[Chris Withers]
We recently upgraded to Zope 2.8.4 and have been seeing some different
and special errors every so often (why does this always and only ever
happen to me? ;-)
I don't know, but if I were you I'd try running for a while on entirely
different hardware.
Nothing noticeably bad
[Timmy]
Jeremy, the code at the start of _setstate() looks fishy: any idea what
the intent was?:
# There is a harmless data race with self._invalidated. A
# dict update could go on in another thread, but we don't care
# because we have to check again after the load
[Dmitry Vasiliev]
Oops, my bad. I couldn't imagine that misspelled text could been used in
any doctests so I had omitted the testing phase because I was in some
hurry. :-( And unfortunately I was far from any computers for past few
days.
Thanks for following up -- I was afraid you had
[Jim Fulton]
...
Tim. we should set up a buildbot whachamajiggy (I have trouble keeping
the buildbot jargon straight) to run ZODB tests on checkin, so we can
catch these sorts of things sooner.
Happy to help, and it's certainly the right thing to do, but don't know
anything about setting up
[Tim]
... the overnight test runners and buildbot.zope.com used to at
least test some ZODB versions regularly
{Jim]
Yes, very specific versions, which doesn't help catch bugs on the trunk
or even on a branch.
Yes; I said that later myself. Note that the overnight test runners are
still
[Tim]
_p_oid = Attribute(
The object id.
...
Non-None object ids must be non-empty strings.
[Florent]
Ok then I guess this comment in Connection doesn't apply anymore:
# It sucks that we have to hold the lock to read _invalidated.
# Normally, _invalidated is written by
[Jens Vagelpohl]
Just as a heads-up because I don't know how much testing ever gets done
on OS X:
I do: none ;-) For ZODB specifically, since the Zope trunks were changed
to stop running ZODB tests, no version of ZODB is regularly tested on any
platform anymore; the overnight test runners and
[Florent Guillaume]
I know this has been raised several times in the past, but I'm not sure
of all the details...
You should believe whatever Jim tells you ;-)
What layer of ZODB, if any, has a restriction that OIDs be 8-byte
strings. Is it the persistence module? Or just FileStorage?
[Victor Safronovich]
...
Of course i may write time.sleep( SLEEP_CONSTANT ) before
app._p_jar.sync(), but is this a good solution?
I can't make time to understand your problem (sorry!), but I can make time
to tell you that a bare time.sleep() is almost never a good solution to
thread problems.
...
[Tim]
You should believe whatever Jim tells you ;-)
[Jim]
Hey, what's the wink for?
I was just flirting with Florent ;-)
...
I thought this was settled in:
http://mail.zope.org/pipermail/zodb-dev/2005-March/008593.html
which also mentions the requirement that oids must have len
[Florent Guillaume]
Oh I agree, but if my storage (think SQL) has internally other kinds of
identifiers, like autoincremented integer primary keys, and several
tables depending on object kind, I want to reuse its concepts and pack
them into an oid like 'footable_12345'.
I probably would not.
[Jeremy Hylton]
A minor point, but it seems like it would make more sense for the
storage to choose the id of the root object. The database doesn't
actually care what the root is, so long as the storage can return it.
You could add a ROOT_OID class attribute to a storage to distinguish
the
[Victor Safronovich]
Hello zodb-dev!
Is this a correct behaviour?
from BTrees.IIBTree import IIBTree
t = IIBTree(map(None,range(5),range(5)))
list(t.keys())
[0, 1, 2, 3, 4]
k = t.keys()
list(k)
[0, 1, 2, 3, 4]
del t[0]
list(k)
[]
Nothing is defined about what an iterator sees
[Shane Hathaway]
FWIW: Ape still uses variable length strings.
That's OK!
The OIDs shrank in size because they used to contain the object's
physical path, but that turned out to play bad tricks with copy/paste,
A cautionary tale about getting too fancy with oids ;-)
so now OIDs are usually
Sorry, I couldn't find a comprehensible question here after reasonable
effort to extract one. Clearly, Zope2's DateTime.DateTime.DateTime objects
are neither persistent nor do they define any mutating methods. Are those
relevant? If not, try to ask a question directly, without assuming everyone
[Chris Withers]
Yay! Where's the correct place to report these nowadays?
Same as always: ZODB bugs should be reported on a Zope Collector, with
topic Database.
It's fine to discuss them on zodb-dev, but when (as appears to be the case
with this one) nobody has an immediate answer or time to
[Jürgen Herrmann]
the question was wether DateTime instances (of the new implementation,
which is yet to be coded) should mixin Persistent.
OK. Since ZODB doesn't care whether you do, is there confusion about what
ZODB may or may not do in either case? That is, what's the ZODB issue here?
[Chris Withers]
Sorry, my question was that if DateTime's were persistent, would the
following code result in a complete pickle for 'a' being written on the
second transaction commit?
There is only one commit in the following, so I'll assume you intended a
second commit at the end:
[Gary Poster]
For some definition of a lot of thought. :-) The pickle for pytz.utc
is now relatively small (though still adds a non-trivial percentage
addition--30%ish?--to a naive datetime IIRC). That's as far as that bit
goes.
A naïve datetime has an extraordinarily small state, though,
...
...have we just committed a pickle containing all of 'a'?...
If `a` is persistent, yes.
If not?
Then get_transaction().commit() presumably doesn't do much of anything,
since no persistent object was changed. It's like asking what this does:
i = 2+3
get_transaction().commit()
[Gary Poster, on pickle extension codes]
Yes, I remembered this, and just refreshed my memory. This is the last
mention I see in the archives as to ZODB use of protocol 2 (i.e., it
doesn't, and prior to Py 2.3.4 it couldn't).
http://mail.zope.org/pipermail/zodb-dev/2004-December/008259.html
1 - 100 of 196 matches
Mail list logo