Commit Graph

929 Commits

Author SHA1 Message Date
0b6990402f make tables under innodb 2019-04-14 16:56:23 -07:00
Jason Madden
ba0da4b6a7
Back to development: 2.1.2 2019-01-07 13:17:35 -06:00
Jason Madden
e8c4984b4b
Preparing release 2.1.1 2019-01-07 10:38:28 -06:00
Jason Madden
9c6c06fa49
Merge pull request #207 from zodb/issue206
Avoid deleting attributes of DB driver modules.
2019-01-07 10:36:29 -06:00
Jason Madden
59caaa1ef6
Tweak appveyor config. [skip travis] 2019-01-07 09:45:46 -06:00
Jason Madden
f211a2b6e0
Attempt to fix Python 2.7 false test failures. 2019-01-07 08:38:49 -06:00
Jason Madden
f80e53aa2d
Avoid deleting attributes of DB driver modules.
Fixes #206.
2019-01-07 08:20:53 -06:00
Jason Madden
a821ec1147
Clean up the configuring-your-application document.
Move plone to the end instead of the beginning.

Document how to use a configuration string instead of a file.

Better links to ZConfig, repoze.zodbconn, and the ZODB.config functions.

[skip ci]
2018-04-10 10:39:11 -05:00
Jason Madden
5ab2840552
Back to development: 2.1.1 2018-02-07 14:35:57 -06:00
Jason Madden
dc21d22ca0
release scripts 2018-02-07 09:18:05 -06:00
Jason Madden
e5393b4e51
Preparing release 2.1.0 2018-02-07 08:56:59 -06:00
Jason Madden
dd8e2519ee
Merge pull request #196 from zodb/update-mysqlconnector
Fix builds: pypy + mysqlconnector doesn't work anymore.
2018-02-02 10:38:47 -06:00
Jason Madden
7015f597e3
Document that PyPy does not work with mysqlconnector and remove it from the matrix. 2018-02-02 09:29:42 -06:00
Jason Madden
c7319f7d10
Bump the tested version of MySQL Connector.
When we updated PyPy on Travis to 5.8.0, it started producing errors
"Use multi-True when executing multiple statements", even when we are
demonstrably only executing one statement. E.g.,
https://travis-ci.org/zodb/relstorage/jobs/335720512#L923

If this doesn't fix it, then I plan to take PyPy+MySQL Connector out
of the test matrix.
2018-02-02 08:56:08 -06:00
Jason Madden
bed12e8416
Fix pylint errors 2018-02-02 08:42:05 -06:00
Jason Madden
d2cdd3ad24
Modernize .travis.yml [skip appveyor] 2018-01-31 10:57:41 -06:00
Jason Madden
7c85aa1444 Merge pull request #190 from zodb/issue181
Update to Pylint 1.7.1
2017-06-22 11:37:51 -05:00
Jason Madden
d584d19ef0
Attempt to fix Python 3.6 build on Travis. 2017-06-22 10:40:50 -05:00
Jason Madden
db12477bc3
Update to Pylint 1.7
Fixes #181

Mostly a few changes in pragmas. There are also a few actual code
changes:

- remove reduntant `else return` after `if return`
- Change some `x = foo and bar or baz` into equivalent `bar if foo
  else baz` forms.
2017-06-22 10:27:27 -05:00
Jason Madden
687251a043
Add mention of needing CFFI to compile from source. Fixes #187.
[skip ci]
2017-06-02 13:57:36 -05:00
Jason Madden
861fe9fa53
Back to development: 2.1a3 2017-04-15 06:53:58 -05:00
Jason Madden
66e0f61d9c
Preparing release 2.1a2 2017-04-15 06:48:54 -05:00
Jason Madden
82575c8eed Merge pull request #182 from zodb/issue175
Use a better query to delete blob chunks for HF MySQL
2017-04-14 14:38:36 -05:00
Jason Madden
3860375815
Use a better query to delete blob chunks for HF MySQL
Fixes #175.

Also pins pylint because 1.7.0 has a number of (good!) new warnings.
2017-04-14 10:16:52 -05:00
Jason Madden
b3a9c18462 Merge pull request #180 from zodb/zodb522-blobs
Test compatibility with ZODB 5.2.2+
2017-04-11 17:45:10 -05:00
Jason Madden
622459d2e9
Test compatibility with ZODB 5.2.2+
Because it did break a test, as mentioned in
https://github.com/zopefoundation/ZODB/pull/156
2017-04-11 17:05:01 -05:00
Jason Madden
842c732aa9 Merge pull request #179 from zodb/issue178
Implement get_object_count exactly.
2017-04-11 13:43:27 -05:00
Jason Madden
2babc54c43
Implement get_object_count exactly.
Fixes #178.

Note this changes the constructor signature for the *Stats classes to
take the keep_history flag.
2017-04-11 12:20:42 -05:00
Jason Madden
ac4b8b5421 Merge pull request #177 from zodb/issue169
Test on ZODB 4.4
2017-04-11 10:30:08 -05:00
Jason Madden
3b65f778e6
Test on ZODB 4.4
Fixes #169.

We need this version for IMultiCommitStorage and the registerDB fix in
ConflictResolvingStorage. Since these versions run on Python 2.7.8,
there's no motivation for trying to go back farther.
2017-04-11 09:27:46 -05:00
Jason Madden
68c8cf1cb4 Merge pull request #174 from zodb/issue173
Workaround TypeError in MySQLOIDAllocator
2017-03-20 09:28:54 -05:00
Jason Madden
6792f7777d
Comment on possibly related errors in MySQLLocker. 2017-03-20 09:18:46 -05:00
Jason Madden
64a7515de9
Workaround TypeError in MySQLOIDAllocator
The caller should generally retry.

Fixes #173.
2017-03-20 08:55:04 -05:00
Jason Madden
02e1369159
Document cx_Oracle version constraints. Fixes #172. [skip ci] 2017-03-10 13:18:57 -06:00
Jason Madden
dca01ab917
pylint/pylibmc spurious errors on new version 2017-03-08 12:15:32 -06:00
Jason Madden
4d3b8124a5
Oracle: Fix two queries that were broken in 2.1a1. 2017-03-08 12:03:48 -06:00
Jason Madden
a1f3b236c4 Merge pull request #168 from zodb/issue166
Wrap lines at 100. Fixes #166.
2017-02-09 17:56:39 -06:00
Jason Madden
dbe9a1c017 Merge pull request #167 from zodb/afterCompletion
Implemented the storage ``afterCompletion`` method, which allows
2017-02-09 17:55:34 -06:00
Jim Fulton
f57ad7eaa4 Added interface declaration and explanation for why afterCompletion only rolls back the load connection. 2017-02-09 11:43:30 -05:00
Jason Madden
b1ea762bf4
Wrap lines at 100. Fixes #166. 2017-02-09 09:59:38 -06:00
Jim Fulton
a38e0ea359 use issue role 2017-02-09 10:40:54 -05:00
Jim Fulton
50a916e685 Implemented the storage `afterCompletion` method, which allows
RelStorage storages to be notified of transaction endings for
transactions that don't call the two-phase commit API.  This allows
resources to be used more efficiently because it prevents RDBMS
transactions from being held open.

Fixes: https://github.com/zodb/relstorage/issues/147

(At least for ZODB 5.2.)
2017-02-08 14:46:26 -05:00
Jason Madden
3e4009f2e6
record command [skip ci] 2017-02-01 15:51:58 -06:00
Jason Madden
48df4f440c
Performance docs for 2.1a1 vs 2.0 [skip ci] 2017-02-01 15:37:54 -06:00
Jason Madden
8bafa21119
Back to development: 2.1a2 2017-02-01 04:16:53 -06:00
Jason Madden
387f110894
Preparing release 2.1a1 2017-02-01 04:05:22 -06:00
Jason Madden
42d8554c75 Merge pull request #162 from zodb/mysql-myisasm
Use InnoDB temp tables
2017-02-01 04:02:45 -06:00
Jason Madden
ac9c52f237
Use InnoDB temp tables
And truncate them.

For most things this seems to speed up writes by around 10% or more due
to the way the temp tables are allocated.

Tested on both 5.5 and 5.7.

I think the dropping was an attempt to make the tables statement-level
replication compatible, but since they weren't transactianal I don't
think that worked. They were also variable sized so I don't think there
were any speed benefits. It also didn't implicitly end the transaction,
but that's not a concern where this is called.

Here's a complete set of benchmarks against 5.7, comparing zodbshootout
with -c2 and -c6, -n 1000 and '-n 100 -s 256 --test-reps 200'. This
compares 2.0.0 with current master and this change, in that order.

** c=2,s=256 **                2.0.0   master   InnoDB
"Transaction",               mysql_hf
"Add 100 Objects",               8883     9199    10157
"Update 100 Objects",            9380     9169    10318

** c=6,s=256 **                 2.0.0    master   InnoDB
"Transaction",               mysql_hf
"Add 100 Objects",               ----     14913   15524
"Update 100 Objects",            ----     14914   15077

** c=6,s=128 **                 2.0.0    master   InnoDB
"Transaction",                mysql_hf
"Add 1000 Objects",              29815    31704    38506
"Update 1000 Objects",           28978    29030    29137

In all cases, InnoDB temp tables outperform, in some cases
substantially.

An earlier set of benchmarks taken against 5.5 (but prior to a rebase on
master, so not easily replicated). The absolute value difference in
numbers versus above is that these were taken with Py 3.4 while above
was py 2.7.

zodbshootout -c 2 shootout.conf -n 100 --test-reps 200 -r 1 -s 256

Before

** concurrency=2 **
"Transaction",               mysql_hf
"Add 100 Objects",               6493
"Update 100 Objects",            9636
"Read 100 Warm Objects",         9797
"Read 100 Cold Objects",         9336
"Read 100 Hot Objects",         37407
"Read 100 Steamin' Objects",   921761

** concurrency=6 **
"Transaction",               mysql_hf
"Add 100 Objects",              10574
"Update 100 Objects",           15492
"Read 100 Warm Objects",        19290
"Read 100 Cold Objects",        17051
"Read 100 Hot Objects",         72304
"Read 100 Steamin' Objects",  1590488

After

** concurrency=2 **
"Transaction",               mysql_hf
"Add 100 Objects",               7079
"Update 100 Objects",            9782
"Read 100 Warm Objects",         8726
"Read 100 Cold Objects",         9834
"Read 100 Hot Objects",         40004
"Read 100 Steamin' Objects",   937232

c=6
** concurrency=6 **
"Transaction",               mysql_hf
"Add 100 Objects",              10612
"Update 100 Objects",           15789
"Read 100 Warm Objects",        17501
"Read 100 Cold Objects",        16556
"Read 100 Hot Objects",         71868
"Read 100 Steamin' Objects",  1549534

zodbshootout -c 2 shootout.conf -n 100 --test-reps 200 -r 1 -s 96

** concurrency=2 **
"Transaction",               mysql_hf
"Add 100 Objects",              15547
"Update 100 Objects",           14337
"Read 100 Warm Objects",        12357
"Read 100 Cold Objects",        13686
"Read 100 Hot Objects",         54559
"Read 100 Steamin' Objects",   945789

"Transaction",               mysql_hf
"Add 100 Objects",              16968
"Update 100 Objects",           16184
"Read 100 Warm Objects",        13430
"Read 100 Cold Objects",        13557
"Read 100 Hot Objects",         54625
"Read 100 Steamin' Objects",   966802
2017-01-30 14:52:35 -06:00
Jason Madden
45f3489b75 Merge pull request #160 from zodb/monkey-zodb-139
Backport fix from ZODB #139
2017-01-30 10:00:21 -06:00
Jason Madden
c0951952d7
Reference #160 in change note. [skip ci] 2017-01-30 09:32:07 -06:00