Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: pkg/analysis_server/lib/src/index/page_node_manager.dart

Issue 321953002: FilePageManager - disk based PageManager. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Improved tests. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/index/page_node_manager.dart
diff --git a/pkg/analysis_server/lib/src/index/page_node_manager.dart b/pkg/analysis_server/lib/src/index/page_node_manager.dart
index cce376e0c790d75acc133c512a07b74b276de2e4..6001224dbfd104217018f79020136a553cfb2cdc 100644
--- a/pkg/analysis_server/lib/src/index/page_node_manager.dart
+++ b/pkg/analysis_server/lib/src/index/page_node_manager.dart
@@ -169,6 +169,22 @@ class PageNodeManager<K, V> implements NodeManager<K, V, int> {
PageNodeManager(this.pageManager, this.keyCodec, this.valueCodec);
@override
+ int get maxIndexKeys {
+ int keySize = keyCodec.sizeInBytes;
+ int childSize = 4;
+ int dataSize = pageManager.pageSizeInBytes - INDEX_OFFSET_DATA;
+ return (dataSize - childSize) ~/ (keySize + childSize);
+ }
+
+ @override
+ int get maxLeafKeys {
+ int keySize = keyCodec.sizeInBytes;
+ int valueSize = valueCodec.sizeInBytes;
+ int dataSize = pageManager.pageSizeInBytes - INDEX_OFFSET_DATA;
+ return dataSize ~/ (keySize + valueSize);
+ }
+
+ @override
int createIndex() {
int id = pageManager.alloc();
indexPages.add(id);
« no previous file with comments | « pkg/analysis_server/lib/src/index/file_page_manager.dart ('k') | pkg/analysis_server/test/index/b_plus_tree_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698