You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kp...@apache.org on 2014/08/25 22:25:09 UTC

svn commit: r1620426 - in /qpid/trunk/qpid/cpp/src/qpid/linearstore: ./ journal/

Author: kpvdr
Date: Mon Aug 25 20:25:09 2014
New Revision: 1620426

URL: http://svn.apache.org/r1620426
Log:
QPID-6043: Add a configuration option to overwrite files returned to the EFP

Modified:
    qpid/trunk/qpid/cpp/src/qpid/linearstore/ISSUES
    qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.cpp
    qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.h
    qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp
    qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.h
    qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.cpp
    qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.h
    qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.cpp
    qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.h

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/ISSUES
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/ISSUES?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/ISSUES (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/ISSUES Mon Aug 25 20:25:09 2014
@@ -48,8 +48,7 @@ Current/pending:
    -    1088944  [Linearstore] store does not return all files to EFP after purging big queue
    -    1078937  [linearstore] Installation and tests for new store analysis tool qpid-qls-analyze
                    svn r.1596633 2014-05-21: Modified to run from installed location
-#  5948 1121660  [linearstore] Broker restart failure with durable topic using non-durable exchange
-*  -    1066256  [LinearStore] changing efp size after using store broke the new durable nodes creation
+*  6043 1066256  [LinearStore] changing efp size after using store broke the new durable nodes creation
 *  -    1089652  [RFE]: Configuration option for linear store to delete the used journal files instead of recycling them.
 
 
@@ -127,7 +126,7 @@ NO-JIRA -        Added missing Apache co
                    * jexception 0x0103 wmgr::get_events() threw JERR__AIO: AIO error. (AIO write operation failed: Invalid argument (-22) [pg=0 size=8192 offset=4096 fh=22])
    5767 1098118  [linearstore] broker segfaults when recovering journal file with damaged header
                    svn r.1596509 2014-05-21 Proposed solution (committed by pmoravec)
-                   svn r.1599243 2014-06-02 Further fix
+                   svn r.1599243 2014-06-02 Solution to additional case of file header corruption
    5924 1124906  [linearstore] Qpidd Will Not Start with Large Number of Queues
                    svn r.1614665 2014-07-30 Proposed solution
    5948 1121660  [AMQP 1.0] Broker restart failure with durable topic using non-durable exchange
@@ -141,35 +140,36 @@ In order to port the linearstore changes
 
 no.   svn r  Q-JIRA     RHBZ       Date Alt Committer
 --- ------- ------- -------- ---------- -------------
- 1. 1545563    5357  1052518 2013-11-26
- 2. 1547601    5358  1052727 2013-12-03
- 3. 1547641    5387  1036071 2013-12-03
- 4. 1547921    5388  1035802 2013-12-04
- 5. 1551304 NO-JIRA        - 2013-12-16 (aconway)
- 6. 1551361    5425  1052445 2013-12-16
- 7. 1552772    5442  1039949 2013-12-20
- 8. 1553148    5444  1052775 2013-12-23
+ 1. 1545563    5357  1052518 2013-11-26 0.22-mrg
+ 2. 1547601    5358  1052727 2013-12-03 0.22-mrg
+ 3. 1547641    5387  1036071 2013-12-03 0.22-mrg
+ 4. 1547921    5388  1035802 2013-12-04 0.22-mrg
+ 5. 1551304 NO-JIRA        - 2013-12-16 0.22-mrg (aconway)
+ 6. 1551361    5425  1052445 2013-12-16 0.22-mrg
+ 7. 1552772    5442  1039949 2013-12-20 0.22-mrg
+ 8. 1553148    5444  1052775 2013-12-23 0.22-mrg
  9. 1556888    5362        - 2014-01-09
-10. 1556892    5460  1051097 2014-01-09
-11. 1557620    5473  1051924 2014-01-12
-12. 1558589    5483        - 2014-01-15
-13. 1558592    5484  1035843 2014-01-15
-14. 1558913    5487  1054448 2014-01-16
+10. 1556892    5460  1051097 2014-01-09 0.22-mrg
+11. 1557620    5473  1051924 2014-01-12 0.22-mrg
+12. 1558589    5483        - 2014-01-15 0.22-mrg
+13. 1558592    5484  1035843 2014-01-15 0.22-mrg
+14. 1558913    5487  1054448 2014-01-16 0.22-mrg
 15. 1560530    5362        - 2014-01-22
 16. 1561848    5362        - 2014-01-27
 17. 1564808    5362        - 2014-02-05
-18. 1564877    5480  1053749 2014-02-05
+18. 1564877    5480  1053749 2014-02-05 0.22-mrg
 19. 1564893    5361        - 2014-02-05
 20. 1564935    5361        - 2014-02-05
-21. 1574513    5603  1063700 2014-03-05
-22. 1575009    5607  1064181 2014-03-06
-23. 1578899    5362        - 2014-03-18
-24. 1582730    5651        - 2014-03-28 (pmoravec)
+21. 1574513    5603  1063700 2014-03-05 0.22-mrg
+22. 1575009    5607  1064181 2014-03-06 0.22-mrg
+23. 1578899    5362        - 2014-03-18 parts in 0.22-mrg
+24. 1582730    5651        - 2014-03-28 0.22-mrg (pmoravec)
 25. 1583778    5362        - 2014-04-01
 26. 1584379    5661        - 2014-04-03
-27. 1594215    5750  1078142 2014-05-13
-28. 1596509    5767  1098118 2014-05-21 (pmoravec)
-29. 1596633  NO-JIRA 1078937 2014-05-21
+27. 1594215    5750  1078142 2014-05-13 0.22-mrg
+28. 1596509    5767  1098118 2014-05-21 0.22-mrg (pmoravec)
+29. 1596633 NO-JIRA 1078937 2014-05-21 (includes tools install update)
+30. 1599243    5767  1098118 2014-06-02 0.22-mrg
 30. 1599243    5767  1098118 2014-06-02
 31. 1614665    5924  1124906 2014-07-30
 

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.cpp?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.cpp Mon Aug 25 20:25:09 2014
@@ -54,7 +54,7 @@ qpid::sys::Mutex TxnCtxt::globalSerialis
 MessageStoreImpl::MessageStoreImpl(qpid::broker::Broker* broker_, const char* envpath_) :
                                    defaultEfpPartitionNumber(0),
                                    defaultEfpFileSize_kib(0),
-                                   truncateFlag(false),
+                                   overwriteBeforeReturnFlag(false),
                                    wCachePgSizeSblks(0),
                                    wCacheNumPages(0),
                                    tplWCachePgSizeSblks(0),
@@ -174,7 +174,8 @@ bool MessageStoreImpl::init(const qpid::
     uint32_t tplJrnlWrCachePageSizeKib = chkJrnlWrPageCacheSize(opts->tplWCachePageSizeKib, "tpl-wcache-page-size");
 
     // Pass option values to init()
-    return init(opts->storeDir, efpPartition, efpFilePoolSize_kib, opts->truncateFlag, jrnlWrCachePageSizeKib, tplJrnlWrCachePageSizeKib);
+    return init(opts->storeDir, efpPartition, efpFilePoolSize_kib, opts->truncateFlag, jrnlWrCachePageSizeKib,
+                tplJrnlWrCachePageSizeKib, opts->overwriteBeforeReturnFlag);
 }
 
 // These params, taken from options, are assumed to be correct and verified
@@ -183,11 +184,13 @@ bool MessageStoreImpl::init(const std::s
                            qpid::linearstore::journal::efpDataSize_kib_t efpFileSize_kib_,
                            const bool truncateFlag_,
                            uint32_t wCachePageSizeKib_,
-                           uint32_t tplWCachePageSizeKib_)
+                           uint32_t tplWCachePageSizeKib_,
+                           const bool overwriteBeforeReturnFlag_)
 {
     if (isInit) return true;
 
     // Set geometry members (converting to correct units where req'd)
+    overwriteBeforeReturnFlag = overwriteBeforeReturnFlag_;
     defaultEfpPartitionNumber = efpPartition_;
     defaultEfpFileSize_kib = efpFileSize_kib_;
     wCachePgSizeSblks = wCachePageSizeKib_ / QLS_SBLK_SIZE_KIB; // convert from KiB to number sblks
@@ -210,6 +213,7 @@ bool MessageStoreImpl::init(const std::s
     QLS_LOG(info,   "> TPL number of write cache pages: " << tplWCacheNumPages);
     QLS_LOG(info,   "> EFP partition: " << defaultEfpPartitionNumber);
     QLS_LOG(info,   "> EFP file size pool: " << defaultEfpFileSize_kib << " (KiB)");
+    QLS_LOG(info,   "> Overwrite before return to EFP: " << (overwriteBeforeReturnFlag?"True":"False"));
 
     return isInit;
 }
@@ -291,6 +295,7 @@ void MessageStoreImpl::init()
     efpMgr.reset(new qpid::linearstore::journal::EmptyFilePoolManager(getStoreTopLevelDir(),
                                                           defaultEfpPartitionNumber,
                                                           defaultEfpFileSize_kib,
+                                                          overwriteBeforeReturnFlag,
                                                           jrnlLog));
     efpMgr->findEfpPartitions();
 }
@@ -1522,7 +1527,8 @@ MessageStoreImpl::StoreOptions::StoreOpt
                                              wCachePageSizeKib(defWCachePageSizeKib),
                                              tplWCachePageSizeKib(defTplWCachePageSizeKib),
                                              efpPartition(defEfpPartition),
-                                             efpFileSizeKib(defEfpFileSizeKib)
+                                             efpFileSizeKib(defEfpFileSizeKib),
+                                             overwriteBeforeReturnFlag(defOverwriteBeforeReturnFlag)
 {
     addOptions()
         ("store-dir", qpid::optValue(storeDir, "DIR"),
@@ -1543,6 +1549,11 @@ MessageStoreImpl::StoreOptions::StoreOpt
                 "Empty File Pool partition to use for finding empty journal files")
         ("efp-file-size", qpid::optValue(efpFileSizeKib, "N"),
                 "Empty File Pool file size in KiB to use for journal files. Must be a multiple of 4 KiB.")
+        ("overwrite-before-return", qpid::optValue(overwriteBeforeReturnFlag, "yes|no"),
+                "If yes|true|1, will overwrite each store file with zeros before returning "
+                "it to the Empty File Pool. When not in use (the default), then old message data remains "
+                "in the file, but is overwritten on next use. This option should only be used where security "
+                "considerations justify it as it makes the store somewhat slower.")
         ;
 }
 

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.h?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/MessageStoreImpl.h Mon Aug 25 20:25:09 2014
@@ -82,6 +82,7 @@ class MessageStoreImpl : public qpid::br
         uint32_t tplWCachePageSizeKib;
         uint16_t efpPartition;
         uint64_t efpFileSizeKib;
+        bool overwriteBeforeReturnFlag;
     };
 
   protected:
@@ -101,6 +102,7 @@ class MessageStoreImpl : public qpid::br
     static const uint32_t defTplWCachePageSizeKib = defWCachePageSizeKib / 8;
     static const uint16_t defEfpPartition = 1;
     static const uint64_t defEfpFileSizeKib = 512 * QLS_SBLK_SIZE_KIB;
+    static const bool defOverwriteBeforeReturnFlag = false;
     static const std::string storeTopLevelDir;
 
     static qpid::sys::Duration defJournalGetEventsTimeout;
@@ -129,7 +131,7 @@ class MessageStoreImpl : public qpid::br
     std::string storeDir;
     qpid::linearstore::journal::efpPartitionNumber_t defaultEfpPartitionNumber;
     qpid::linearstore::journal::efpDataSize_kib_t defaultEfpFileSize_kib;
-    bool      truncateFlag;
+    bool     overwriteBeforeReturnFlag;
     uint32_t wCachePgSizeSblks;
     uint16_t wCacheNumPages;
     uint32_t tplWCachePgSizeSblks;
@@ -252,7 +254,8 @@ class MessageStoreImpl : public qpid::br
               qpid::linearstore::journal::efpDataSize_kib_t efpFileSizeKib = defEfpFileSizeKib,
               const bool truncateFlag = false,
               uint32_t wCachePageSize = defWCachePageSizeKib,
-              uint32_t tplWCachePageSize = defTplWCachePageSizeKib);
+              uint32_t tplWCachePageSize = defTplWCachePageSizeKib,
+              const bool overwriteBeforeReturnFlag_ = false);
 
     void truncateInit();
 

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp Mon Aug 25 20:25:09 2014
@@ -132,6 +132,9 @@ void EmptyFilePool::returnEmptyFile(cons
         }
     }
     resetEmptyFileHeader(emptyFileName);
+    if (partitionPtr_->getOverwriteBeforeReturnFlag()) {
+        overwriteFileContents(emptyFileName);
+    }
     pushEmptyFile(emptyFileName);
 }
 
@@ -171,28 +174,35 @@ efpDataSize_kib_t EmptyFilePool::dataSiz
 // --- protected functions ---
 
 void EmptyFilePool::createEmptyFile() {
+    std::string efpfn = getEfpFileName();
+    if (overwriteFileContents(efpfn)) {
+        pushEmptyFile(efpfn);
+    }
+}
+
+std::string EmptyFilePool::getEfpFileName() {
+    qpid::types::Uuid uuid(true);
+    std::ostringstream oss;
+    oss << efpDirectory_ << "/" << uuid << QLS_JRNL_FILE_EXTENSION;
+    return oss.str();
+}
+
+bool EmptyFilePool::overwriteFileContents(const std::string& fqFileName) {
     ::file_hdr_t fh;
     ::file_hdr_create(&fh, QLS_FILE_MAGIC, QLS_JRNL_VERSION, QLS_JRNL_FHDR_RES_SIZE_SBLKS, partitionPtr_->getPartitionNumber(), efpDataSize_kib_);
-    std::string efpfn = getEfpFileName();
-    std::ofstream ofs(efpfn.c_str(), std::ofstream::out | std::ofstream::binary);
+    std::ofstream ofs(fqFileName.c_str(), std::ofstream::out | std::ofstream::binary);
     if (ofs.good()) {
         ofs.write((char*)&fh, sizeof(::file_hdr_t));
         uint64_t rem = ((efpDataSize_kib_ + (QLS_JRNL_FHDR_RES_SIZE_SBLKS * QLS_SBLK_SIZE_KIB)) * 1024) - sizeof(::file_hdr_t);
         while (rem--)
             ofs.put('\0');
         ofs.close();
-        pushEmptyFile(efpfn);
+        return true;
 //std::cout << "WARNING: EFP " << efpDirectory << " is empty - created new journal file " << efpfn.substr(efpfn.rfind('/') + 1) << " on the fly" << std::endl; // DEBUG
     } else {
 //std::cerr << "ERROR: Unable to open file \"" << efpfn << "\"" << std::endl; // DEBUG
     }
-}
-
-std::string EmptyFilePool::getEfpFileName() {
-    qpid::types::Uuid uuid(true);
-    std::ostringstream oss;
-    oss << efpDirectory_ << "/" << uuid << QLS_JRNL_FILE_EXTENSION;
-    return oss.str();
+    return false;
 }
 
 std::string EmptyFilePool::popEmptyFile() {

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.h?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.h Mon Aug 25 20:25:09 2014
@@ -83,6 +83,7 @@ protected:
     void createEmptyFile();
     std::string getEfpFileName();
     std::string popEmptyFile();
+    bool overwriteFileContents(const std::string& fqFileName);
     void pushEmptyFile(const std::string fqFileName);
     void resetEmptyFileHeader(const std::string& fqFileName);
     bool validateEmptyFile(const std::string& emptyFileName) const;

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.cpp?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.cpp Mon Aug 25 20:25:09 2014
@@ -36,10 +36,12 @@ namespace journal {
 EmptyFilePoolManager::EmptyFilePoolManager(const std::string& qlsStorePath,
                                            const efpPartitionNumber_t defaultPartitionNumber,
                                            const efpDataSize_kib_t defaultEfpDataSize_kib,
+                                           const bool overwriteBeforeReturnFlag,
                                            JournalLog& journalLogRef) :
                 qlsStorePath_(qlsStorePath),
                 defaultPartitionNumber_(defaultPartitionNumber),
                 defaultEfpDataSize_kib_(defaultEfpDataSize_kib),
+                overwriteBeforeReturnFlag_(overwriteBeforeReturnFlag),
                 journalLogRef_(journalLogRef)
 {}
 
@@ -63,7 +65,7 @@ void EmptyFilePoolManager::findEfpPartit
                 std::string fullDirPath(qlsStorePath_ + "/" + (*i));
                 EmptyFilePoolPartition* efppp = 0;
                 try {
-                    efppp = new EmptyFilePoolPartition(pn, fullDirPath, journalLogRef_);
+                    efppp = new EmptyFilePoolPartition(pn, fullDirPath, overwriteBeforeReturnFlag_, journalLogRef_);
                     {
                         slock l(partitionMapMutex_);
                         partitionMap_[pn] = efppp;

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.h?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.h Mon Aug 25 20:25:09 2014
@@ -45,6 +45,7 @@ protected:
     const std::string qlsStorePath_;
     const efpPartitionNumber_t defaultPartitionNumber_;
     const efpDataSize_kib_t defaultEfpDataSize_kib_;
+    const bool overwriteBeforeReturnFlag_;
     JournalLog& journalLogRef_;
     partitionMap_t partitionMap_;
     smutex partitionMapMutex_;
@@ -53,6 +54,7 @@ public:
     EmptyFilePoolManager(const std::string& qlsStorePath_,
                          const efpPartitionNumber_t defaultPartitionNumber,
                          const efpDataSize_kib_t defaultEfpDataSize_kib,
+                         const bool overwriteBeforeReturnFlag,
                          JournalLog& journalLogRef_);
     virtual ~EmptyFilePoolManager();
 

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.cpp?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.cpp Mon Aug 25 20:25:09 2014
@@ -37,9 +37,11 @@ const std::string EmptyFilePoolPartition
 
 EmptyFilePoolPartition::EmptyFilePoolPartition(const efpPartitionNumber_t partitionNum,
                                                const std::string& partitionDir,
+                                               const bool overwriteBeforeReturnFlag,
                                                JournalLog& journalLogRef) :
                 partitionNum_(partitionNum),
                 partitionDir_(partitionDir),
+                overwriteBeforeReturnFlag_(overwriteBeforeReturnFlag),
                 journalLogRef_(journalLogRef)
 {
     validatePartitionDir();
@@ -111,6 +113,10 @@ void EmptyFilePoolPartition::getEmptyFil
     }
 }
 
+bool EmptyFilePoolPartition::getOverwriteBeforeReturnFlag() const {
+    return overwriteBeforeReturnFlag_;
+}
+
 std::string EmptyFilePoolPartition::getPartitionDirectory() const {
     return partitionDir_;
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.h?rev=1620426&r1=1620425&r2=1620426&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolPartition.h Mon Aug 25 20:25:09 2014
@@ -46,6 +46,7 @@ protected:
 
     const efpPartitionNumber_t partitionNum_;
     const std::string partitionDir_;
+    const bool overwriteBeforeReturnFlag_;
     JournalLog& journalLogRef_;
     efpMap_t efpMap_;
     smutex efpMapMutex_;
@@ -53,6 +54,7 @@ protected:
 public:
     EmptyFilePoolPartition(const efpPartitionNumber_t partitionNum,
                            const std::string& partitionDir,
+                           const bool overwriteBeforeReturnFlag,
                            JournalLog& journalLogRef);
     virtual ~EmptyFilePoolPartition();
 
@@ -60,6 +62,7 @@ public:
     EmptyFilePool* getEmptyFilePool(const efpDataSize_kib_t efpDataSize_kib);
     void getEmptyFilePools(std::vector<EmptyFilePool*>& efpList);
     void getEmptyFilePoolSizes_kib(std::vector<efpDataSize_kib_t>& efpDataSizesList) const;
+    bool getOverwriteBeforeReturnFlag() const;
     std::string getPartitionDirectory() const;
     efpPartitionNumber_t getPartitionNumber() const;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org