summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2014-01-15 22:33:26 +0000
committerKim van der Riet <kpvdr@apache.org>2014-01-15 22:33:26 +0000
commite017a338ba50323d87c24147ea1b64d7bd880b97 (patch)
tree3c085be18d6dec71c5ec7ce7caabfe4b5d511732
parent368e40b6f2525eb907d2d4b2f3d25c7a90ed6b7d (diff)
downloadqpid-python-e017a338ba50323d87c24147ea1b64d7bd880b97.tar.gz
QPID-5484 [linearstore] Poor performance relative to legacystore. Partial fix: The use of /dev/random exhausts the kernel's supply of non-deterministic random data, and calls to read from it block until enough is available. It has been determined that /dev/urandom is good enough for this use-case (Journal serial numbers), and does not suffer from blocking.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558592 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/linearstore/ISSUES9
-rw-r--r--qpid/cpp/src/qpid/linearstore/journal/JournalFile.cpp2
2 files changed, 9 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/linearstore/ISSUES b/qpid/cpp/src/qpid/linearstore/ISSUES
index 8b5f8524dc..bcf3290857 100644
--- a/qpid/cpp/src/qpid/linearstore/ISSUES
+++ b/qpid/cpp/src/qpid/linearstore/ISSUES
@@ -40,12 +40,15 @@ Current/pending:
5464 - [linearstore] Incompletely created journal files accumulate in EFP
5479 1053701 [linearstore] Using recovered store results in "JERR_JNLF_FILEOFFSOVFL: Attempted to increase submitted offset past file size. (JournalFile::submittedDblkCount)" error message
5480 1053749 [linearstore] Recovery of store failure with "JERR_MAP_NOTFOUND: Key not found in map." error message
- - 1035843 Slow performance for producers
+ 5484 1035843 Slow performance for producers
- 1036026 [LinearStore] Qpid linear store unable to create durable queue - framing-error: Queue <q-name>: create() failed: jexception 0x0000
UNABLE TO REPRODUCE - but Frantizek has additional info
- 1039522 Qpid crashes while recovering from linear store around apid::linearstore::journal::JournalFile::getFqFileName() including enq_rec::decode() threw JERR_JREC_BAD_RECTAIL
+ * Possible dup of 1039525
+ * May be fixed by QPID-5483 - waiting for needinfo
- 1039525 Qpid crashes while recovering from linear store around apid::linearstore::journal::jexception::format including enq_rec::decode() threw JERR_JREC_BAD_REC_TAIL
* Possible dup of 1039522
+ * May be fixed by QPID-5483 - waiting for needinfo
Fixed/closed:
=============
@@ -73,6 +76,10 @@ NO-JIRA - Added missing Apache copyright/license text
svn r.1556892 2014-01-09: Proposed fix
5473 1051924 [linearstore] Recovery of journal in which last logical file contains truncated record causes crash
svn r.1557620 2014-01-12: Proposed fix
+ 5483 - [linearstore] Recovery of journal with partly written record fails with "JERR_JREC_BADRECTAIL: Invalid data record tail" error message
+ svn r.1558589 2014-01-15: Proposed fix
+ * May be linked to RHBZ 1039522 - waiting for needinfo
+ * May be linked to RHBZ 1039525 - waiting for needinfo
Future:
=======
diff --git a/qpid/cpp/src/qpid/linearstore/journal/JournalFile.cpp b/qpid/cpp/src/qpid/linearstore/journal/JournalFile.cpp
index 8f6a311a84..129a9145d0 100644
--- a/qpid/cpp/src/qpid/linearstore/journal/JournalFile.cpp
+++ b/qpid/cpp/src/qpid/linearstore/journal/JournalFile.cpp
@@ -279,7 +279,7 @@ const std::string JournalFile::getFileName() const {
//static
uint64_t JournalFile::getRandom64() {
- int randomData = ::open("/dev/random", O_RDONLY);
+ int randomData = ::open("/dev/urandom", O_RDONLY);
if (randomData < 0) {
throw jexception(); // TODO: Complete exception details
}