Branch: refs/heads/master
Home: https://github.com/conformal/btcdb
Commit: 2eea55ae1dd09fa39fd8e13957291791d5d88bae
https://github.com/conformal/btcdb/commit/2eea55ae1dd09fa39fd8e13957291791d5d88bae
Author: Dave Collins <[email protected]>
Date: 2014-01-19 (Sun, 19 Jan 2014)
Changed paths:
M db.go
M interface_test.go
M ldb/block.go
R ldb/dbcache.go
M ldb/insertremove_test.go
M ldb/leveldb.go
M ldb/operational_test.go
M memdb/memdb.go
M memdb/memdb_test.go
Log Message:
-----------
Prune the btcddb.Db interface.
This commit prunes several unused functions from the Db interface and the
underlying implementations. For the most part these are holdovers from
the original sqlite implementation. It also removes the types associated
with those functions since they are no longer needed. The following
functions and types have been removed:
- InvalidateCache
- InvalidateBlockCache
- InvalidateTxCache
- SetDBInsertMode
- InsertMode type and associated constants
- NewIterateBlocks
- BlockIterator interface
The reasons for removing these are broken out below.
- Neither of two current implementations implement these functions nor
does any of the fully functional code using the interface invoke them.
- After contemplating and testing caching of blocks and transactions at
this layer, it doesn't seem to provide any real benefit unless very
specific assumptions about the use case are made. Making those
assumptions can make other use cases worse. For example, assuming a
large cache is harmful to memory-constrained use cases. Leaving it up
to the caller to choose when to cache block and transactions allows much
greater flexibility.
- The DB insert mode was an artifact of the original sqlite implementation
and probably should have only been exposed specifically on the
implementation as opposed through generic interface. If a specific
implementation wishes to provide functionality such as special modes,
that should be done through type assertions.