Kiran Ayyagari [Sun, 17 May 2015 10:26:14 +0000 (10:26 +0000)]
verifying the number of pages created
Kiran Ayyagari [Sun, 17 May 2015 10:20:48 +0000 (10:20 +0000)]
corrected javadoc
Kiran Ayyagari [Thu, 14 May 2015 10:06:37 +0000 (10:06 +0000)]
o added a flag(for internal testing use only) to disable free page reclaimer
o added a test for verifying the internal state of the RM (work in progress)
Kiran Ayyagari [Wed, 13 May 2015 08:47:00 +0000 (08:47 +0000)]
o changed the reclaimer threshold to 70
o updated space reclaimer to clean the BTree of BTrees
o added a multi threaded test
Kiran Ayyagari [Tue, 12 May 2015 06:20:00 +0000 (06:20 +0000)]
o run reclaimer in a transaction
o added a test which demonstrates a failed page reclaiming operation when not run inside a transaction
o removed useless imports
o added a flag to skip running reclaimer when a reclaiming operation is in progress
Kiran Ayyagari [Mon, 11 May 2015 08:12:13 +0000 (08:12 +0000)]
debug statements
Kiran Ayyagari [Mon, 11 May 2015 08:11:31 +0000 (08:11 +0000)]
fixed tests to pass on windows by closing the recordmanager first before deleting the files
Kiran Ayyagari [Mon, 11 May 2015 08:10:47 +0000 (08:10 +0000)]
remmoved reference to non-existing variable
Kiran Ayyagari [Mon, 11 May 2015 08:08:49 +0000 (08:08 +0000)]
o reinstated the copiedPage BTree (reverted the changes made in revision 1613792)
o updated SpaceReclaimer
Kiran Ayyagari [Sun, 5 Apr 2015 15:40:14 +0000 (15:40 +0000)]
call next() on cursor to avoid infinite loop
Kiran Ayyagari [Thu, 2 Apr 2015 10:15:42 +0000 (10:15 +0000)]
o added a setter for reclaimer threshold
o added a test for reclaimer (in progress)
Kiran Ayyagari [Thu, 2 Apr 2015 07:51:58 +0000 (07:51 +0000)]
do not swallo exception
Emmanuel Lécharny [Sun, 22 Mar 2015 12:27:30 +0000 (12:27 +0000)]
[maven-release-plugin] prepare for next development iteration
Emmanuel Lécharny [Sun, 22 Mar 2015 12:27:02 +0000 (12:27 +0000)]
[maven-release-plugin] prepare release 1.0.0-M7
Emmanuel Lécharny [Sun, 22 Mar 2015 11:57:09 +0000 (11:57 +0000)]
Updated the dataStructure image
Emmanuel Lécharny [Sun, 22 Mar 2015 11:51:40 +0000 (11:51 +0000)]
Added a logger definition for TXNs
Emmanuel Lécharny [Sun, 22 Mar 2015 11:50:52 +0000 (11:50 +0000)]
Added an (ignored) test for transactions
Emmanuel Lécharny [Mon, 9 Mar 2015 06:30:49 +0000 (06:30 +0000)]
Speedup: we don't write the recordManager everytime a btree is modified, we do that when a full transaction is committed. Otherwise, we had this page written twice, once when the B-tree was updated, and another one when the BoB B-tree was updated.
Emmanuel Lécharny [Sun, 8 Mar 2015 17:24:55 +0000 (17:24 +0000)]
o Added a dedicated logger for the transaction : TXN_LOG
o Removed the lock from the AbstractTransactionManager
o Added a map to keep a track of the number of times a page is written
o Fixes in the way we handle transactions in the RM
o Added some explicit generics
Emmanuel Lécharny [Thu, 5 Mar 2015 10:33:03 +0000 (10:33 +0000)]
Added a boundary check in the RecordManager.readBytes() method. That will log an error message too.
Emmanuel Lécharny [Wed, 4 Mar 2015 00:54:41 +0000 (00:54 +0000)]
o Set the caseSize to DEFAULT_CACHE_SIZE if it's 0
o Suppressed some useless code in the browsefrom method
Emmanuel Lécharny [Sun, 1 Mar 2015 06:10:41 +0000 (06:10 +0000)]
The browse test with 500 random btrees now test the backward browse too.
Emmanuel Lécharny [Sun, 1 Mar 2015 04:49:36 +0000 (04:49 +0000)]
Refactored the PersistedLeaf browse(K) method. That should fix DIRSERVER-2047
Emmanuel Lécharny [Sat, 28 Feb 2015 15:58:05 +0000 (15:58 +0000)]
o Fixed the EmptyTupleCursor class
Emmanuel Lécharny [Fri, 27 Feb 2015 07:37:54 +0000 (07:37 +0000)]
Removed useless code, thanks to Lin Zhao !
Emmanuel Lécharny [Wed, 25 Feb 2015 15:19:55 +0000 (15:19 +0000)]
o A few optimization in the browse(K) method
o Fixed a NPE (DIRSERVER-20147) applying Lin's suggested patch
o Removed some spurious Sysout.println
Emmanuel Lécharny [Tue, 24 Feb 2015 13:43:59 +0000 (13:43 +0000)]
o Huge refactoring of the BulkLoad feature. We now are capable to bulk load elements with multiple values
o Removed useless sysout
o Added a setValues() method in Page
o The BtreHeaderOffset and BTreeInfoOffset default value is now NO_PAGE
o The subtrees are now created in one step, then written in a second step, to avoid creating pages that will be immediately reused
o raw keys are marked with the deserialied value as :<K> in the KeyHolder.toString() method
o Fixed a NPE in PersistedLeaf.toString() method
Emmanuel Lécharny [Fri, 20 Feb 2015 08:02:14 +0000 (08:02 +0000)]
Updated the Javadoc
Emmanuel Lécharny [Thu, 19 Feb 2015 09:46:27 +0000 (09:46 +0000)]
o Made the BulkLoader a class with static methods
o Externalized the LevelInfo class
Emmanuel Lécharny [Wed, 18 Feb 2015 14:47:18 +0000 (14:47 +0000)]
o Fixed the browse(K) method
o Partial fix for the sub-btree creation : it's not enough, we need to rewrite the PersistedValue.build() method, but at least, for values with less than 16 values, it works (we weren't writing the created pages to disk, and we still don't for nodes)
o Added some bulkLoader test, @Ignoring the one which failes
o
Emmanuel Lécharny [Wed, 18 Feb 2015 13:34:02 +0000 (13:34 +0000)]
Fixed the way we count elements in the bulk loader : when two tuples have the same key, they count for one single element.
Emmanuel Lécharny [Sat, 14 Feb 2015 09:16:57 +0000 (09:16 +0000)]
Use the parameter instead of calling a method
Emmanuel Lécharny [Fri, 13 Feb 2015 13:40:11 +0000 (13:40 +0000)]
o Fixed the hasNext() method which was returning false when teh cursor was on the end of a page
Emmanuel Lécharny [Fri, 13 Feb 2015 13:38:38 +0000 (13:38 +0000)]
o Fixed the browse(K,...) method, which was incorrectly positioning the cursor when the key was not found in the BTree, and when the closest higher key was on a next page.
o Added a test to check that the browse method works
Emmanuel Lécharny [Thu, 12 Feb 2015 10:07:15 +0000 (10:07 +0000)]
Fixed the test which was failing
Emmanuel Lécharny [Thu, 12 Feb 2015 08:59:25 +0000 (08:59 +0000)]
Fixed the test, which was not injecting all the values
Emmanuel Lécharny [Thu, 12 Feb 2015 01:30:14 +0000 (01:30 +0000)]
Adding a test that checks we can browse a btree with random keys. Currently, this test is failing, we have some issue in teh way we build the browser.
Emmanuel Lécharny [Wed, 11 Feb 2015 08:52:07 +0000 (08:52 +0000)]
Bumped up dependency versions
Stefan Seelmann [Sun, 14 Dec 2014 17:34:42 +0000 (17:34 +0000)]
Remove versions managed by parent. Remove slf4j-log4j and commons-io runtime dependency, only required for tests.
Stefan Seelmann [Tue, 2 Dec 2014 18:18:53 +0000 (18:18 +0000)]
Generate manifest by maven-bundle-plugin, switch back to packaging=bundle
Emmanuel Lécharny [Wed, 12 Nov 2014 10:43:24 +0000 (10:43 +0000)]
[maven-release-plugin] prepare for next development iteration
Emmanuel Lécharny [Wed, 12 Nov 2014 10:43:07 +0000 (10:43 +0000)]
[maven-release-plugin] prepare release 1.0.0-M6
Emmanuel Lécharny [Wed, 12 Nov 2014 10:14:33 +0000 (10:14 +0000)]
Added support for multiple-value bulkload.
Emmanuel Lécharny [Wed, 12 Nov 2014 10:04:25 +0000 (10:04 +0000)]
Added a logger to avoid writing info on the console
Emmanuel Lécharny [Tue, 11 Nov 2014 23:13:03 +0000 (23:13 +0000)]
Minor cleanup
Emmanuel Lécharny [Tue, 11 Nov 2014 23:12:42 +0000 (23:12 +0000)]
Using a TreeMap instead of a Set for the bulkloading of elements with multiple-values
Emmanuel Lécharny [Tue, 11 Nov 2014 23:12:02 +0000 (23:12 +0000)]
Delete the temporary file after the end of the test
Emmanuel Lécharny [Tue, 11 Nov 2014 23:11:29 +0000 (23:11 +0000)]
o Added a test for multi-values element (@Ignored)
Emmanuel Lécharny [Tue, 11 Nov 2014 23:07:15 +0000 (23:07 +0000)]
Updated the reference to the latest 'project' version (33)
Emmanuel Lécharny [Tue, 11 Nov 2014 22:57:07 +0000 (22:57 +0000)]
Removed the log4j dependency (MAVIBOT-36)
Emmanuel Lécharny [Tue, 11 Nov 2014 11:37:26 +0000 (11:37 +0000)]
o Bulkloader code cleanup
o Deleting the temprorary files when quiting the tests
Emmanuel Lécharny [Tue, 11 Nov 2014 01:56:50 +0000 (01:56 +0000)]
o Added some tests for the bulkLoader
o Ignored the InMemoryBtreeBuilder atm.
Emmanuel Lécharny [Tue, 11 Nov 2014 01:55:54 +0000 (01:55 +0000)]
o Fixed the getPage and getReference methods so that they don't throw NPE
o Huge refactoring of the InMemoryBtreeBuilder, which now takes a configuration instance
o Added a toString method to the KeyHolder class
o Added the BulkLoader class which can bulkload a complete BTree (persistent btree only atm)
Emmanuel Lécharny [Thu, 16 Oct 2014 17:36:58 +0000 (17:36 +0000)]
o Added a getValueComparator() method in Btree
o Renamed the getComparator() method to getKeyComparator()
o Fixed a failing test in PersistedBTreeBuilderTest
Emmanuel Lécharny [Thu, 25 Sep 2014 06:14:06 +0000 (06:14 +0000)]
Renamed a variable for clarity
Emmanuel Lécharny [Tue, 23 Sep 2014 04:58:16 +0000 (04:58 +0000)]
Added the setter for the envdir Filepath
Emmanuel Lécharny [Tue, 23 Sep 2014 04:48:26 +0000 (04:48 +0000)]
Added a TupleComparator which is used when we sort tuples.
Emmanuel Lécharny [Tue, 23 Sep 2014 04:46:58 +0000 (04:46 +0000)]
o The class now implements Comparable
o Added a Comparator for the keys
o Added the missing hasCode() and equals() methods
Emmanuel Lécharny [Tue, 23 Sep 2014 04:27:28 +0000 (04:27 +0000)]
Fixed for MAVIBOT-42 : we now create a new instance for each resulting tuple instead of using a class instance
Emmanuel Lécharny [Tue, 23 Sep 2014 04:21:25 +0000 (04:21 +0000)]
Added some missing Javadoc
Kiran Ayyagari [Wed, 6 Aug 2014 12:02:19 +0000 (12:02 +0000)]
fixed the free() method, this was not freeing the associated PageIOs
Kiran Ayyagari [Wed, 6 Aug 2014 12:01:19 +0000 (12:01 +0000)]
made the classes serializable
Kiran Ayyagari [Sun, 3 Aug 2014 18:25:41 +0000 (18:25 +0000)]
o added support for replacing value of an existing key
o fixed an issue in InMemoryBTree when a key already exists
o fixed an NPE in findLeftMost() findRightMost() of PersistedLeaf of a persisted sub-BTree
o made RevisionName serializable
o added and updated tests
Kiran Ayyagari [Sun, 27 Jul 2014 13:41:02 +0000 (13:41 +0000)]
o added a class for reclaiming space by freeing up the copied pages
o the copied pages are now stored in a concurrent hashmap instead of a BTree
o the copied page map is processed after reaching a certain write commit count
o updated a test and removed another unused test
Kiran Ayyagari [Sun, 27 Jul 2014 13:37:15 +0000 (13:37 +0000)]
a new data structure to hold revision number and offsets of the copied pages of that revision
Emmanuel Lécharny [Mon, 14 Jul 2014 08:23:16 +0000 (08:23 +0000)]
Fixed the bad CPB offset (due to a wrong LongArray deserialization)
Kiran Ayyagari [Fri, 11 Jul 2014 12:35:52 +0000 (12:35 +0000)]
o made CPB field and checkOffset() method package protected
o added a test that demonstrates bad offset values present in CPB after reloading RM
Kiran Ayyagari [Wed, 9 Jul 2014 14:47:27 +0000 (14:47 +0000)]
set nbUsers to zero in the clone
Emmanuel Lécharny [Sun, 29 Jun 2014 15:06:40 +0000 (15:06 +0000)]
[maven-release-plugin] prepare for next development iteration
Emmanuel Lécharny [Sun, 29 Jun 2014 15:06:06 +0000 (15:06 +0000)]
[maven-release-plugin] prepare release 1.0.0-M5
Emmanuel Lécharny [Sun, 29 Jun 2014 14:54:12 +0000 (14:54 +0000)]
Replave the tags/1.0.0-M5 in the scm part by trunk
Emmanuel Lécharny [Sun, 29 Jun 2014 14:52:02 +0000 (14:52 +0000)]
[maven-release-plugin] rollback the release of 1.0.0-M5
Emmanuel Lécharny [Sun, 29 Jun 2014 11:59:46 +0000 (11:59 +0000)]
[maven-release-plugin] prepare release 1.0.0-M5
Emmanuel Lécharny [Sun, 29 Jun 2014 11:57:16 +0000 (11:57 +0000)]
[maven-release-plugin] rollback the release of 1.0.0-M5
Emmanuel Lécharny [Sun, 29 Jun 2014 11:48:54 +0000 (11:48 +0000)]
[maven-release-plugin] prepare release 1.0.0-M5
Emmanuel Lécharny [Sun, 29 Jun 2014 07:46:24 +0000 (07:46 +0000)]
Pointed to project 32, moved the properties to the parent pom
Emmanuel Lécharny [Sun, 29 Jun 2014 07:45:37 +0000 (07:45 +0000)]
Fixed some compilation errors
Emmanuel Lécharny [Sat, 28 Jun 2014 05:17:28 +0000 (05:17 +0000)]
Rollbacked again... WTF vi mavibot/pom.xml! I still cannot create a tag using the mvn release:prepare command...
Emmanuel Lécharny [Sat, 28 Jun 2014 05:01:47 +0000 (05:01 +0000)]
[maven-release-plugin] prepare release 1.0.0-M5
Emmanuel Lécharny [Sat, 28 Jun 2014 04:38:15 +0000 (04:38 +0000)]
Reverted again... Cannot create the tag on SVN :/
Emmanuel Lécharny [Sat, 28 Jun 2014 04:29:51 +0000 (04:29 +0000)]
[maven-release-plugin] prepare release 1.0.0-M5
Emmanuel Lécharny [Sat, 28 Jun 2014 04:23:26 +0000 (04:23 +0000)]
Reverted again... Cannot create the tag on SVN :/
Emmanuel Lécharny [Sat, 28 Jun 2014 04:08:49 +0000 (04:08 +0000)]
[maven-release-plugin] prepare release 1.0.0-M5
Emmanuel Lécharny [Sat, 28 Jun 2014 04:07:12 +0000 (04:07 +0000)]
rollbacked the release prepare, as we have had a error 500
Emmanuel Lécharny [Sat, 28 Jun 2014 04:01:03 +0000 (04:01 +0000)]
[maven-release-plugin] prepare release 1.0.0-M5
Emmanuel Lécharny [Fri, 27 Jun 2014 10:14:34 +0000 (10:14 +0000)]
Added some commented test for free page management
Emmanuel Lécharny [Fri, 27 Jun 2014 09:33:48 +0000 (09:33 +0000)]
o Added a constant for ROLLBACKs
o Added a check after the RM initialization
o Removed a check that is done too early
o Fixed a BufferUnderflow error : we were trying to read too much data in a pageIO while logging the content of a page
Emmanuel Lécharny [Fri, 27 Jun 2014 09:27:09 +0000 (09:27 +0000)]
Don't check the firstfree page if it's -1.
Kiran Ayyagari [Thu, 19 Jun 2014 15:04:31 +0000 (15:04 +0000)]
removed dependency on ehCache
Kiran Ayyagari [Thu, 19 Jun 2014 14:59:23 +0000 (14:59 +0000)]
o replaced ehcache's Cache with LRUMap
o updated PersistedPageHolder constructor to NOT to hold a reference to the Page (this will be reloaded or will be fetched from cache
this fix helps in avoiding OOM issues during bulkload)
Kiran Ayyagari [Thu, 19 Jun 2014 14:54:40 +0000 (14:54 +0000)]
bumped up the slf4j version
Kiran Ayyagari [Thu, 19 Jun 2014 14:44:25 +0000 (14:44 +0000)]
added a method to set the value array to null (this is mainly used by the bulk loader to avoid OOM error)
Kiran Ayyagari [Fri, 13 Jun 2014 17:26:33 +0000 (17:26 +0000)]
o removed the 'static' qualifier of the header buffer variables
o renamed loggers
Kiran Ayyagari [Thu, 29 May 2014 12:21:49 +0000 (12:21 +0000)]
added support to create sub-btree manually rather than using a series of insert operations
Kiran Ayyagari [Wed, 28 May 2014 09:22:24 +0000 (09:22 +0000)]
o avoid copying pages and incrementing revision when the key and value already exist (MAVIBOT-39)
o do not create value holders in sub-btrees (MAVIBOT-38)
o updated serialization code in RecordManager to handle the changes made to sub-btrees
o added a new cursor to browse keys of sub-btree
o added test for KeyCursor
Emmanuel Lécharny [Mon, 19 May 2014 07:26:31 +0000 (07:26 +0000)]
o Use the newBtreHeaders Map only when processing an update, instead of using the current's one. This allow all the modifications to be waiting for the encapsulating transaction to be committed.
o Fixed the TxnLevel counter manipulation : we weren't correctly decrementing it when we got some exception
o Close the recordManager in tests
Emmanuel Lécharny [Sat, 17 May 2014 13:31:23 +0000 (13:31 +0000)]
Merged the with-txns branch into teh trunk
Emmanuel Lécharny [Sat, 17 May 2014 13:24:03 +0000 (13:24 +0000)]
merged trunk changes into the branch
Emmanuel Lécharny [Sat, 17 May 2014 12:32:17 +0000 (12:32 +0000)]
Set the BOB and CPB btrees' cache default size to 1000. That solves the OOM error we get when we inject a lot of elements, as the Cache was unlimited.
Emmanuel Lécharny [Sat, 17 May 2014 08:33:21 +0000 (08:33 +0000)]
Added some check to forbid operations on a BTree without a transactionManager