changeset 20265:93ddddf9b70c

svc/seed: initialize db files on tmpfs manifest-import is really slow on persistent storage, because sqliteOsSync gets called a lot (maybe for every sqlite operation?)
author Lauri Tirkkonen <lotheac@iki.fi>
date Wed, 09 Jan 2019 18:21:27 +0200
parents 27b901ae31c4
children dbc881e1b3d4
files usr/src/cmd/svc/seed/Makefile
diffstat 1 files changed, 20 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/svc/seed/Makefile	Tue Jan 08 17:25:03 2019 +0200
+++ b/usr/src/cmd/svc/seed/Makefile	Wed Jan 09 18:21:27 2019 +0200
@@ -126,36 +126,30 @@
 	@cd ../milestone; pwd; $(MAKE) $(MFLAGS) console-login.xml
 
 common.db: $(COMMON_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
-	$(RM) -f common.db common.db-journal
-	for m in $(COMMON_DESCRIPTIONS); do \
-		echo $$m; \
-		SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
-		SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/common.db \
-		SVCCFG_CONFIGD_PATH=$(CONFIGD) \
-		$(SVCCFG) import $$m; \
-	done
+	$(RM) -f common.db
+	mf=$$(mktemp /tmp/$@.XXXXXXXXXX);\
+	SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
+	SVCCFG_REPOSITORY=$$mf SVCCFG_CONFIGD_PATH=$(CONFIGD) \
+	$(SVCCFG) import $(COMMON_DESCRIPTIONS); \
+	mv $$mf $@
 
 global.db: common.db $(GLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
-	$(RM) -f global.db global.db-journal
-	$(CP) common.db global.db
-	for m in $(GLOBAL_ZONE_DESCRIPTIONS); do \
-		echo $$m; \
-		SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
-		SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/global.db \
-		SVCCFG_CONFIGD_PATH=$(CONFIGD) \
-		$(SVCCFG) import $$m; \
-	done
+	$(RM) -f global.db
+	mf=$$(mktemp /tmp/$@.XXXXXXXXXX);\
+	$(CP) common.db $$mf; \
+	SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
+	SVCCFG_REPOSITORY=$$mf SVCCFG_CONFIGD_PATH=$(CONFIGD) \
+	$(SVCCFG) import $(GLOBAL_ZONE_DESCRIPTIONS); \
+	mv $$mf $@
 
 nonglobal.db: common.db $(NONGLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
-	$(RM) -f nonglobal.db nonglobal.db-journal
-	$(CP) common.db nonglobal.db
-	for m in $(NONGLOBAL_ZONE_DESCRIPTIONS); do \
-		echo $$m; \
-		SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
-		SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/nonglobal.db \
-		SVCCFG_CONFIGD_PATH=$(CONFIGD) \
-		$(SVCCFG) import $$m; \
-	done
+	$(RM) -f nonglobal.db
+	mf=$$(mktemp /tmp/$@.XXXXXXXXXX);\
+	$(CP) common.db $$mf; \
+	SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
+	SVCCFG_REPOSITORY=$$mf SVCCFG_CONFIGD_PATH=$(CONFIGD) \
+	$(SVCCFG) import $(NONGLOBAL_ZONE_DESCRIPTIONS); \
+	mv $$mf $@
 
 install: install_global install_nonglobal