mirror of
https://git.yoctoproject.org/poky
synced 2026-04-29 09:32:11 +02:00
bitbake: hashserv: Add unihash-exists API
Adds API to check if the server is aware of the existence of a given unihash. This can be used as an optimization for sstate where a client can query the hash equivalence server to check if a unihash exists before querying the sstate cache. If the hash server isn't aware of the existence of a unihash, then there is very likely not a matching sstate object, so this should be able to significantly cut down on the number of negative hits on the sstate cache. (Bitbake rev: cfe0ac071cfb998e4a1dd263f8860b140843361a) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
be909636c6
commit
3bd2c69e70
@@ -48,6 +48,7 @@ class UnihashesV3(Base):
|
||||
__table_args__ = (
|
||||
UniqueConstraint("method", "taskhash"),
|
||||
Index("taskhash_lookup_v4", "method", "taskhash"),
|
||||
Index("unihash_lookup_v1", "unihash"),
|
||||
)
|
||||
|
||||
|
||||
@@ -279,6 +280,16 @@ class Database(object):
|
||||
)
|
||||
return map_row(result.first())
|
||||
|
||||
async def unihash_exists(self, unihash):
|
||||
async with self.db.begin():
|
||||
result = await self._execute(
|
||||
select(UnihashesV3)
|
||||
.where(UnihashesV3.unihash == unihash)
|
||||
.limit(1)
|
||||
)
|
||||
|
||||
return result.first() is not None
|
||||
|
||||
async def get_outhash(self, method, outhash):
|
||||
async with self.db.begin():
|
||||
result = await self._execute(
|
||||
|
||||
Reference in New Issue
Block a user