-/*
+/* $Id: isamd-p.h,v 1.7 1999-09-20 15:48:06 heikki Exp $
* Copyright (c) 1995-1996, Index Data.
* See the file LICENSE for details.
* Heikki Levanto
int no_next;
int no_prev;
+ int no_op_nodiff; /* existing blocks opened for reading without diffs */
+ int no_op_intdiff; /* - with internal diffs */
+ int no_op_extdiff; /* with separate diff blocks */
+ int no_fbuilds; /* number of first-time builds */
+ int no_appds; /* number of appends */
+ int no_merges; /* number of merges done */
+ int no_remerges; /* number of times more than one merge needed */
+
char *alloc_buf; /* free-list handling (?) */
int alloc_entries_num;
int alloc_entries_max;
struct ISAMD_PP_s {
char *buf; /* buffer for read/write operations */
ISAMD_BLOCK_SIZE offset; /* position for next read/write */
- ISAMD_BLOCK_SIZE size; /* size of actual pointer data */
+ ISAMD_BLOCK_SIZE size; /* size of actual data */
int cat; /* category of this block */
int pos; /* block number of this block */
int next; /* number of the next block */
- int diffs; /* either block or offset (in head) of start of diffs */
+ int diffs; /* not used in the modern isam-d, but kept for stats compatibility */
+ /* never stored on disk, though */
ISAMD is;
- void *decodeClientData;
+ void *decodeClientData; /* delta-encoder's own data */
ISAMD_DIFF diffinfo;
- char *diffbuf; /* buffer for the diff block, only when reading */
+ char *diffbuf; /* buffer for the diff block */
int numKeys;
};
/* == 8 */
#define ISAMD_BLOCK_OFFSET_1 (sizeof(int) + \
sizeof(ISAMD_BLOCK_SIZE) + \
- sizeof(int) + \
sizeof(ISAMD_BLOCK_SIZE))
-/* == 16 */
+/* == 12 (was 16) */
+// sizeof(int) +
int isamd_alloc_block (ISAMD is, int cat);
/*
* $Log: isamd-p.h,v $
- * Revision 1.4 1999-07-21 14:24:50 heikki
+ * Revision 1.7 1999-09-20 15:48:06 heikki
+ * Small changes
+ *
+ * Revision 1.6 1999/08/25 18:09:23 heikki
+ * Starting to optimize
+ *
+ * Revision 1.5 1999/08/20 12:25:58 heikki
+ * Statistics in isamd
+ *
+ * Revision 1.4 1999/07/21 14:24:50 heikki
* isamd write and read functions ok, except when diff block full.
* (merge not yet done)
*