SlideShare a Scribd company logo
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
www.filemaker-konferenz.com
Performance Questions, Test Results, and Recent Experience

HOnza Koudelka
FileMaker Performance Update 2019
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
HOnza Koudelka
• Co-founder and co-owner of 24U Software,

FBA Platinum Member

• Developing FileMaker solutions since 1991

• FileMaker 8, 10, 11, 12, 13, 14, 15, 16, 17, 18

Certified Developer

• Team of other certified developers

• Winner of the FileMaker DevCon 2015 Developer Cup

• FileMaker Mad Dog Award 2011 winner

• Mad Optimizer and Achiever of the Impossible…

• Vendor session speaker at FileMaker DevCon, spoke at Pause[x]London and
Pause[x]Berlin, and remotely at PauseOnError Portland

• FileMaker Konferenz 2016, 2017, and 2018 speaker
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Agenda
• Key Discoveries from Previous Years

• Automated Test Results

• Recent Experience & Under the Hood

• Benchmarking Techniques

• Optimization Techniques

• Questions & Answers
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Key Discoveries from Previous Years
• Large amounts of text

• Container vs text (danger of Base64)

• Server-side scripts considerations

• Spider vs Anchor/Buoy vs Selector-Connector

• Structure impact on Set Field performance

• Slow network impact

• Layout rendering

• Expensive objects

• Conditional formatting

• Relationship sorting

• Data API vs PHP API
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Why Performance Lab?
• Perceived speed defines what’s important
• Technical speed makes things possible
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Huge Amounts of Text Not Good
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Beware Base64
• Real experience from a customer

• Huge containers can be stored as text

• Doing so can have fatal impact on performance
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
PSOS is a FMS Client
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMSE shares resources with FMS
Indexed Unindexed
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Spider vs Anchor/Buoy vs Selector-Connector
nav_code
NAV_selecte
PREFS_org
account_nam
PREFS_user
gTaskCont
GLOBALS_to
context
TASKS
EVT_sessions_to_session_signup
g_Registrant_relationship_code
NRRTS_PREFS_registrant_code
fk_party_ID
NRRTS_people_registrant_link
AS_parent_organizations
AS_branch_organizations
AS_employees
g_nav_code_
g_current_a
NAV_navigat
AS_address_SHIP
AS_address_PUBLISH
AS_address_RENEW
ethics
DMERC_assignments
NRRTS_PREFS
pk_party_ID
NRRTS_parties_by_registrant_link
fk_party_ID
fk_tag_ID
PUB_tag_link_ad
g_marketing_relatio…
PUB_prefs_advertis…
pk_party_ID
PUB_advertiser_parties
AS_organizations
fk_party_ID
PUB_advertiser_orgs
fk_party_ID
QUICKFIND_people_DMERC_display
pk_tag_ID
QUICKFIND_relationship_tags_display
pk_party_ID
QUICKFIND_parties_ADVERTISERS_display
GLOBALS_to_parties
AS_parties_receive_ad_invoice
AS_SSNs
AS_CCARDS
PUB_publications
GLOBALS_to_people
globals
FORMS_globa
signatures_to_form_globals
DISP_email_primary
DISP_people_self_by_global
globals_to_people_name_filter
EVT_events EVT_fees
EVT_sessions_to_events
AS_parties_subordinates
FON_apps_complimentary
fon_parties_complimentary
AS_voice_subordinates
FON_ledger_to_enrollment
PUB_ledger_expense
PUB_ledger_all
PUB_ad_rates
PUB_ledger_income
TAGS
GLOBALS_to_event_session_signup
AS_people
PUB_comm_outgoing_PUSH
AS_address_PHYSICAL
FON_enrollment
fk_event_ID
fk_party_ID
pk_registration_ID
gUnique_key
EVT_attendance
AS_parties_parent
FON_comm_outgoing_PUSH
EVT_comm_outgoing_PUSH
EVT_session_signup_to_attendance
EVT_session_comm_outgoin…
CECs
NRRTS_Credentialing
NRRTS_crts_history
AS_parties_selfjoin
AS_address_ALL
AS_address_FILTERED
AS_address_MAIL
PUB_parties_invoice_recipient
PUB_parties_ad_representative
AS_email_ALL
AS_email_PUBLISH
AS_email_primary
AS_phones_ALL
AS_phones_office_voice
AS_phones_office_fax
AS_phones_home_fax
AS_phone_voice_publish
AS_phones_fax_publish
AS_phone_tollfree_publish
COMMUNICATIONS_outgoing
AS_comm_outgoing_PUSH
CODE128E
TAG_LINKS_to_parties
fk_party_ID
fk_tag_ID
NRRTS_tag_link_registrant
FON_apps
NRRTS_comm_outgoing_PUSH
CEC_to_nrrts_apps_by_lookback_date
GLOBALS_to_nrrts_apps_by_renew_date
CEC_to_nrrts_apps_by_RESNA_effectiv…
NRRTS_parties_DMERC
NRRTS_ledger_to_apps
NRRTS_apps_self
NRRTS_app_recommend
CEC_to_nrrts_apps_by_app_ID
NRRTS_affiliations_to_current_app
fk_registry_affiliation_ID
is_current
NRRTS_apps_CURRENT
signature_graphics
NRRTS_apps
fk_registry_affiliation_ID
reg_period_begin_date
reg_period_end_date
NRRTS_apps_by_date_range
fk_party_ID
pk_nrrts_registry_ID
constant
cCurrentDate
NRRTS_affiliations
fk_registry_affiliation_ID
is_complete
nrrts_apps_COMPLETE
AS_address_RESIDENCE
DMERC_people
fk_3rd_party_adv_inv…
fk_parent_party_ID
pk_party_ID
gLocation_display_key
gUnique_key
constant
creator
database_status
fk_3rd_party_adv_inv…
fk_parent_party_ID
location_valueListBuil…
member_code_OLD
modifier
AS_parties
globals_to_letter_templates_CROSS
DMERC_region_link
AS_address_OFFICE
PUB_advertising
letter_templates
fSignup_attend_ADDRESS_mail
pk_party_ID
constant
fPARTY
fAttend_ADDRESS_office
CODE128E
fAttend_PERSON
fAttend_PARTY
fAttend_EVENTS
EVT_sessions_to_events
EVT_fees
fSignup_attend_PARTY
fSignup_attend_EVENT
fSignup_attend_EMAIL
fSignup_attend_PERSON
fSignup_attend_PHONE_office
fSignup_attend_PHONE_fax
fSignup_ATTEND
fSignup_SESSIONS
fRegistry_ADDRESS_mail
fRegistry_NRRTSAPP fRegistry_nrrtsapp_PARTY_dmerc
fRegistry_PERSON
fNrrtsapp_EMAIL_primary
fk_DMERC_ID
fk_party_ID
fk_registry_affiliatio…
pk_app_ID
is_current
reg_period_begin_d…
reg_period_end_date
constant
cApp_deadline_date
cLookback_date
fNRRTSAPP
fk_party_ID
pk_nrrts_registry_ID
constant
fREGISTRY
fParty_PERSON
fParty_ORG
fParty_PHONE_office_voice
fParty_PHONE_voice_publish
fParty_PHONE_office_fax
fParty_PHONE_fax_publish
fParty_PHONE_home_fax
fParty_EMAIL_primary
fParty_EMAIL_publish
fParty_ADDRESS_publish
fParty_ADDRESS_renew
fParty_ADDRESS_mail
fParty_ADDRESS_ship
fComm_PARTY
fComm_PERSON
fComm_ADDRESS_mail
fComm_PHONE_office_fax
fComm_PHONE_home_fax
fFon_PARTY
fFon_SELF_primary_comp
fFon_SELF_comp
fFon_party_PHONE_voice_publish
fFon_party_EMAIL_publish
fFon_party_ADDRESS_mail
fFon_party_ADDRESS_publish
fFon_party_PHONE_fax_publish
fFon_PERSON
fFon_fon_primary_comp_PARTY
fFon_fon_comp_PARTY
fFon_fon_primary_comp_A
fFon_fon_primary_comp_PE
fNrrtsapp_PHONE_officeFax
fNrrtsapp_ADDRESS_mail
fNrrtsapp_ADDRESS_renew
fNrrtsapp_PERSON
fNrrtsapp_TAGLINK_dmerc fNnrrtsapp_PEOPLE_dmerc
fNrrtsapp_REGISTRY
fNrrtsapp_RECOMMEND
fRegistry_PARTY
fNrrtsapp_PARTY
fk_party_ID
pk_fon_affiliation_ID
fFON
fNrrtsapp_CEC_AppID
fNrrtsapp_CEC_renewalDate
fNrrtsapp_CEC_lookbackDate
Enclosure
fk_party_ID
fCOMM
fk_event_ID
fk_party_ID
pk_registration_ID
constant
fATTEND
fNrrtsapp_SELF
fk_registration_ID
fk_session_ID
fSIGNUP
fComm_NRRTSAPP
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Time to Perform Script on Server
Spider Anchor/Buoy Selector
Connector
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Layout rendering
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Layout rendering
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Layout rendering
• Repeating text field replaced button bar (86.8 % saved)

• TextColor replaced conditional formatting

• Optimized condition calculation
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Slow network impact
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
24U Collector Optimization
10.9	x	faster	on	LAN	
2.4	x	faster	on	3G
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Notifications are sent…
• from server to client as part of reply to next client’s request

• whenever a change is committed

• to every client having the file open (even hidden)

• about every record (unless entire table is changed)

• in about 32K chunks

• without actual record data

• another reason for using transactions
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Data API vs PHP API
• PHP API is based on Tomcat

• Data API is based on Node.js

• Data API is supposed to be faster and more stable

• PHP API is deprecated and disabled by default

• Data API requires HTTPS only, PHP API allows HTTP
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Data API vs PHP API
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Data API vs PHP API
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
WPE after trying to fetch 300k records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
• Posted in FileMaker Community

• Blank layout

• Isolated table occurrence

• No records in any table

• Open locally in FileMaker Pro Advanced

• Creating 100 records in a loop takes…
30	seconds
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
• 1037	relationships	
• 1004	in	this	TOG	
• 690	around	this	TO	
• 7	hops	longest	path
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
1037
1116 1194
7516
9701
Total	number	
of	relationships
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
• large number of relationships all depend on the contents of one field

• FileMaker looks for all the possible combinations of relationships that can
be invalidated because that field changes

• That information is not in the join graph but in the field dependencies stored
as part of the field definitions.

• Roughly 27,000 possible joins that could be affected

• Higher level view code looks at all affected TOs and checks to see if any base
tables of those TOs are currently in any window and if there are any portals

• => Potential for optimization in future versions
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FileMaker 17 & 18 Test Results
?	
=
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Automated tests performed
• Export & Import Records as tab delimited text

• Creating records with a lot of text
• Sort Records by indexed/unindexed field
• Perform Find
• indexed vs unindexed field
• small vs large result found set
• number vs text
• unique vs common values
• Replace Field Contents vs Looped Set Field
• Summary fields vs Aggregate functions vs ExecuteSQL

• Delete All Records, Truncate Table, Delete All Found Records (leaving one record)

• 5, 10, and 15 concurrent sessions
• File open/close and record creation speed with massive spider graph (© VincentL)
45 594

new tests
(219	918	total)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Test Equipment
• Mac Pro (early 2008)

• 2 x 2,8 GHz Intel Xeon

• 16 GB RAM

• Mechanical 7200RPM SATA drives

• Separate drive for data

• macOS 10.13 High Sierra
• FileMaker Server versions 17 and 18

• FileMaker Pro Advanced 17 and 18
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
New: FileMaker Cloud
• FileMaker Cloud for AWS 1.18

• 5-user license

• The minimum offered t2.medium instance

• Default settings

• Hosted in Frankfurt

• FileMaker Cloud 2

• FBA trial 5-user license

• Cloud Compute: Medium

• Hosted in USA
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
What was NOT tested
• Multiple users (concurrent sessions simulated by multiple server-side scripts)

• Working with container fields

• Exact amounts of data transferred between client and server

• FileMaker Go

• FileMaker WebDirect

• XML / PHP / ODBC / JDBC connections

• Two-machine deployment

• Disabled SSL

• Server-side schedules, including backup schedules

• Different cache sizes and other configuration differences
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File: Continued
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File: Continued
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File: Continued
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File: Continued
• Huge impact on locally opened file or over network

• Minimum impact on faceless server-side processing

• Number of dependencies has higher impact than
number of relationships
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
Using	9	x	string	start	match
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
Using	9	x	string	start	match
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA connecting to server
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA connecting to server
Best	result
Worst	result
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA connecting to server
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Concurrent Sessions/Users
Simulated

by PSOS
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Test Set
• Export 10 000 records as TDT

• Import 10 000 records from TDT

• Various sorts

• Calculating totals

• Various finds

• Deleting all records

• Everything in 5 iterations

• Multiple PSOS sessions concurrently

• Each session accessing only its own records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Sessions Interference
Exports Imports Other Deletes
Exports Imports Other Deletes
Exports Imports Other Deletes
Exports Imports Other Deletes
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Importing 10 000 records 5 times
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Importing 10 000 records 5 times
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Importing 10 000 records 5 times
36	minutes
6	minutes
16	minutes 16	minutes
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Importing 10 000 records 5 times
27	hours
4	hours

46	minutes
7	hours

46	minutes9	hours
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Replace in 10 000 records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Replace in 10 000 records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Looped Set Field in 10 000 records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Looped Set Field in 10 000 records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Find 90 % of records by unindexed field
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Find 90 % of records by unindexed field
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Delete 10 000 records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Delete 10 000 records
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Complete Test Set (575 tests)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Complete Test Set (575 tests)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FileMaker Cloud Compute Limits
This	warning	means	you’re	consuming	CPU	credits	and	your	
FileMaker	Cloud	instance	may	become	very	slow	soon.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Bonus Slides (Not Presented at FMK)
After I presented my session at FMK I had a chance to get more info from Claris
in relationship to the FileMaker Cloud performance. I also performed another
series of 34394 tests on both FileMaker Cloud 1 and FileMaker Cloud 2.

This extra information is so important that I have decided to add it here in the
form of a few extra slides for your benefit.

I have also amended the slide with links to external resources, so make sure to
check them out.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
CPU Credits Explained
• Your cloud instance earns defined CPU credits every millisecond

• t2.medium earns 24 credits per hour

• Your cloud instance consumes credits depending on how much processing power it uses

• Every kind/size of instance has defined a baseline performance

• Baseline performance means the amount of CPU usage that consumes exactly the
same amount of credits that are earned

• t2.medium has 2 vCPUs and baseline performance of 20 % per vCPU

• When you’re utilizing less than baseline performance, you’re accruing credits

• When you’re utilizing more than baseline perofrmance, you’re spending credits

• You cannot accrue more than X credits

• t2.medium has the limit set to 576

• You accrue the maximum if you leave it idle for 24 hours

• When you have no credits left, your performance gets limited to baseline via throttling
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
CPU Credits Testing FM Cloud 1.18
This	is	how	my	tests	utilized	AWS	CPU	credits	on	FM	Cloud	1.18.	
I	had	enough	accumulated	CPU	credits,	
so	my	whole	test	finished	before	consuming	them	all.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
CPU Credits Testing FM Cloud 2.18
On	FM	Cloud	2.18	however

my	tests	were	affected	
by	consuming	all	CPU	credits
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
So I added this after each test…
…and	executed	another	series	of	tests.	
But	this	time,	instead	of	having	all	tests	run	from	within	one	main	server-side	script,	I	am	now	
running	N	simultaneous	scripts	for	one	test	and	don’t	start	the	next	test	until	all	are	done.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Standard Test Time in Seconds (FM Cloud 2)1x	PSOS
1h40m 9h20m 4h
5x	PSOS
10x	PSOS
The	chart	shows	time	in	seconds	consumed	by	the	“standard	test”,	reflecting	the	CPU	power	
actually	available	to	the	current	script	session.	This	seems	like	I	have	consumed	all	CPU	credits	
after	the	tests	were	running	for	about	11	hours.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Same test running on FM Cloud 1.18
This	time	my	tests	consumed	the	CPU	credits	even	on	FM	Cloud	1.18
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Standard Test Time in Seconds (FM Cloud 1)1x	PSOS
1h45m 1h30m 10h45m
5x	PSOS
10x	PSOS
Just	like	with	FM	Cloud	2,	5	concurrent	scripts	seem	to	share	the	CPU,	so	standard	test	time	is	
longer	than	with	1	script,	but	after	consuming	all	CPU	credits	it	increases	dramatically.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Recent Experience & Under the Hood
• Cache Allocation Setting

• Printing with Merge Fields

• SSD Performance Trap

• Master Record Lists & Found Sets

• Startup Restoration & Page Level Locking
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Cache Allocation Setting
• Customer from Pensylvania turned to us to help them with a performance issue

• Their FileMaker Server was becoming so slow that they could not use it

• Restart always resolved it but only for a day or two

• Serving around 100 users, 48 out of 56 GB was used for FMS cache

• Decreasing the cache setting to 8 GB stabilized the server at max performance
2	GB	
Windows
56	GB	Total	RAM
1	GB	
Apps
48	GB	
FMS	Cache
5	GB	
left	for	
FMS
Only	50	MB	per	user!
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Cache Allocation Setting
• Customer from Pensylvania turned to us to help them with a performance issue

• Their FileMaker Server was becoming so slow that they could not use it

• Restart always resolved it but only for a day or two

• Serving around 100 users, 56 out of 64 GB was used for FMS cache

• Decreasing the cache setting to 8 GB stabilized the server at max performance
2	GB	
Windows
56	GB	Total	RAM
1	GB	
Apps
8	GB	
FMS	Cache
45	GB	
left	for	
FMS
450	MB	per	user	:-)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Cache Allocation Setting
• Customer from Pensylvania turned to us to help them with a performance issue

• Their FileMaker Server was becoming so slow that they could not use it

• Restart always resolved it but only for a day or two

• Serving around 100 users, 56 out of 64 GB was used for FMS cache

• Decreasing the cache setting to 8 GB stabilized the server at max performance
2	GB	
Windows
56	GB	Total	RAM
1	GB	
Apps
8	GB	
FMS	Cache
45	GB	
left	for	
FMS
450	MB	per	user	:-)
fmsadmin set serverconfig
cachesize=8192
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Printing with Merge Fields
• Same customer wanted to improve printing speed

• Report layout was taking up to 3 minutes to print

• Nothing obvious to optimize in the script
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Printing with Merge Fields
• Same customer wanted to improve printing speed

• Report layout was taking up to 3 minutes to print

• Nothing obvious to optimize in the script
	01	min	52.319366	sec
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Printing with Merge Fields
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Printing with Merge Fields
3.446686	sec
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
SSD Performance Trap
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
SSD Performance Trap
0
125
250
375
500
130 120 110 100 90 80 70 60 50 40 30 20 10 20 30 40 50 60 70 80 90 100 110 120 130
Write speed depending on empty space on iSystem (iWork had 95 GB free all the time)
Writepseed(MB/s)
Space available on iSystem (GB)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record Lists & Found Sets
• Record lists represented as bitmaps

• Not one bitmap for all records - sparse list of tagged bitmaps

• Each bitmap is tagged with its starting row key

• No bitmap if records are too sparse

• One record takes at least 1 bit and at most 8 bytes

• You would have to create over 512 trillion records to reach the max

• 4 bytes average under 4 million records

• Creating and deleting records can have impact on performance

• Significant only when there are many sparse records

• Deleting all records from a table should recover initial performance
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Starting	Record	ID Records	Bitmap
1 11111111111111111111111111111111
2	bytes 32	bits	=	4	bytes
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
6	bytes	total
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
2 4 5 7 9 10 11 12 14 15 16
Starting	Record	ID Records	Bitmap
2 1011010111101111110110111011
2	bytes 28	bits	=	4	bytes
17 18 19 21 22 24 25 26 28 29
6	bytes	total
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
2 14 15 16
Starting	Record	ID Records	Bitmap
2 1
17 1110110111011
4	bytes 1	+	13	bits	=	3	bytes
17 18 19 21 22 24 25 26 28 29
7	bytes	total
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
2 14
Starting	Record	ID Records	Bitmap
2 1
17 1110110111011
4	bytes 1	+	13	bits	=	1	+	2	bytes	=	3	bytes
19 21 22 24 25 26 28 29
7	bytes	total
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Startup Restoration & Page Level Locking
• New features of FileMaker Server 18

• FileMaker DevCon 2019 session:

Under the Hood Exploring FileMaker Server 18’s Performance Features [SHA06]

Mainly from the 43rd minute

• Enabled or disabled together

• Positive impact - User requests not waiting in queue

• When accessing different pages

• Negative impact - Change commits taking longer - there’s more to do

• Dedicated SSD for restoration log recommended

• Serious issues reported as of 18v2

• Temp file corruption

• Persistent lock on client disconnect

• Restoration not happening after killing fmserverd
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Benchmarking Techniques
• Scripts

• 24U FM Bench

• Get ( CurrentTimeUTCMilliseconds )

• Calculations

• 24U FM Bench

• Toolbox_GetTimestamp (microseconds)

• Layouts & other

• Unstored calculations + OnTimer script trigger

• Binary Splitting

• Top Call Stats

• Network Link Conditioner

• NetworkMonitor Tool
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Top Optimization Techniques
• Remove it if you don’t need it

• Script layouts

• Virtual List

• Perform Script On Server (or server-side queue)
• Pre-calculated summaries

• Simpler relationship graph

• Calculated text color instead of conditional formatting

• Card window instead of popover

• Avoid too many button bars

• Sort portal instead of relationship

• New table with fewer fields

• Conditional Set Field

• Transactions (Look for Todd Geist’s articles and videos)
• Local File Editing (“Being Optimist in Pesimistic World” by Vince Menanno)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
More resources
• FileMaker Community > Search for Performance

• FileMaker DevCon Session Recordings, especially Under The Hood sessions (youtube.com/claris)

• Skeleton Key: “Improving FileMaker Custom App Performance” (https://youtu.be/D7LmguEcStY)

• FileMaker Transactions by Todd Geist (ModularFileMaker.org)

• “Decreasing FileMaker Network Traffic” by Vince Menanno (FileMakerProGurus.com)

• FileMaker Optimizers LinkedIn Group (FMOptimizers.com)

• 24U FM Bench (FMBench.com)

• Big-O Cheat Sheet (bigocheatsheet.com)

• A Gentle Introduction to Algorithm Complexity Analysis (discrete.gr/complexity/)

• Enabling HTTPS Without Sacrificing Your Web Performance by Billy Hoffmann

(https://zoompf.com/blog/2014/12/optimizing-tls-handshake/)

• AWS CPU Credits and Baseline Performance for Burstable Performance Instances

(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html)

• Ask for consultation at honza@24uSoftware.com or 24usw.com/consult
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Feedback
24usw.com/pfup
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages

More Related Content

What's hot

CXL Consortium Update: Advancing Coherent Connectivity
CXL Consortium Update: Advancing Coherent ConnectivityCXL Consortium Update: Advancing Coherent Connectivity
CXL Consortium Update: Advancing Coherent Connectivity
Memory Fabric Forum
 
Software design
Software designSoftware design
Software design
Zulqarnaintayyab
 
PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」
PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」
PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」
PC Cluster Consortium
 
Broadcom PCIe & CXL Switches OCP Final.pptx
Broadcom PCIe & CXL Switches OCP Final.pptxBroadcom PCIe & CXL Switches OCP Final.pptx
Broadcom PCIe & CXL Switches OCP Final.pptx
Memory Fabric Forum
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
dspokale25
 
CAD STANDARDS
CAD STANDARDSCAD STANDARDS
CAD STANDARDS
Balamurugan Subburaj
 
Cim ppt
Cim pptCim ppt
Cim ppt
hiten patel
 

What's hot (7)

CXL Consortium Update: Advancing Coherent Connectivity
CXL Consortium Update: Advancing Coherent ConnectivityCXL Consortium Update: Advancing Coherent Connectivity
CXL Consortium Update: Advancing Coherent Connectivity
 
Software design
Software designSoftware design
Software design
 
PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」
PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」
PCCC22:日本AMD株式会社 テーマ1「第4世代AMD EPYC™ プロセッサー (Genoa) の概要」
 
Broadcom PCIe & CXL Switches OCP Final.pptx
Broadcom PCIe & CXL Switches OCP Final.pptxBroadcom PCIe & CXL Switches OCP Final.pptx
Broadcom PCIe & CXL Switches OCP Final.pptx
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
 
CAD STANDARDS
CAD STANDARDSCAD STANDARDS
CAD STANDARDS
 
Cim ppt
Cim pptCim ppt
Cim ppt
 

Similar to FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka

FMK2018- FileMaker 17 Performance lab HOnza Koudelka
FMK2018- FileMaker 17 Performance lab HOnza KoudelkaFMK2018- FileMaker 17 Performance lab HOnza Koudelka
FMK2018- FileMaker 17 Performance lab HOnza Koudelka
Verein FM Konferenz
 
FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...
FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...
FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...
Verein FM Konferenz
 
FMK2016 - Honza Koudelka - FileMaker 15 Performance Test Results
FMK2016 - Honza Koudelka - FileMaker 15 Performance Test ResultsFMK2016 - Honza Koudelka - FileMaker 15 Performance Test Results
FMK2016 - Honza Koudelka - FileMaker 15 Performance Test Results
Verein FM Konferenz
 
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
WSO2
 
FOSSology & GSOC Journey
FOSSology & GSOC JourneyFOSSology & GSOC Journey
FOSSology & GSOC Journey
Gaurav Mishra
 
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2
 
WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...
WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...
WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...
Yenlo
 
Adobe's RIA Technologies (non technical)
Adobe's RIA Technologies (non technical)Adobe's RIA Technologies (non technical)
Adobe's RIA Technologies (non technical)
Cyril Hanquez
 
Comparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionalityComparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionality
Fedir RYKHTIK
 
End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...
End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...
End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...
Theofilos Kakantousis
 
Publishing API documentation -- Workshop
Publishing API documentation -- WorkshopPublishing API documentation -- Workshop
Publishing API documentation -- Workshop
Tom Johnson
 
MuleSoftMeetup-B2BIntegrations_using_MuleSoft
MuleSoftMeetup-B2BIntegrations_using_MuleSoftMuleSoftMeetup-B2BIntegrations_using_MuleSoft
MuleSoftMeetup-B2BIntegrations_using_MuleSoft
MulesoftMunichMeetup
 
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDESAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
Markus Van Kempen
 
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
DB Services
 
Launch Event FrameMaker 10 Overview
Launch Event FrameMaker 10 OverviewLaunch Event FrameMaker 10 Overview
Launch Event FrameMaker 10 Overview
tmaldous
 
How to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMakerHow to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMaker
Globalization Partners International
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platform
Daniela Zuppini
 
Why you should migrate to GraphQL in 2019
Why you should migrate to GraphQL in 2019Why you should migrate to GraphQL in 2019
Why you should migrate to GraphQL in 2019
Mirumee Software
 
OpenChain Tooling Work Group Meeting #2 - Agenda Slides
OpenChain Tooling Work Group Meeting #2 - Agenda SlidesOpenChain Tooling Work Group Meeting #2 - Agenda Slides
OpenChain Tooling Work Group Meeting #2 - Agenda Slides
Shane Coughlan
 
Ai pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooksAi pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooks
Luciano Resende
 

Similar to FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka (20)

FMK2018- FileMaker 17 Performance lab HOnza Koudelka
FMK2018- FileMaker 17 Performance lab HOnza KoudelkaFMK2018- FileMaker 17 Performance lab HOnza Koudelka
FMK2018- FileMaker 17 Performance lab HOnza Koudelka
 
FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...
FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...
FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults ...
 
FMK2016 - Honza Koudelka - FileMaker 15 Performance Test Results
FMK2016 - Honza Koudelka - FileMaker 15 Performance Test ResultsFMK2016 - Honza Koudelka - FileMaker 15 Performance Test Results
FMK2016 - Honza Koudelka - FileMaker 15 Performance Test Results
 
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
 
FOSSology & GSOC Journey
FOSSology & GSOC JourneyFOSSology & GSOC Journey
FOSSology & GSOC Journey
 
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
 
WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...
WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...
WSO2 - Yenlo Integration Summit Stuttgart 15 May 2019 - Role of Integration i...
 
Adobe's RIA Technologies (non technical)
Adobe's RIA Technologies (non technical)Adobe's RIA Technologies (non technical)
Adobe's RIA Technologies (non technical)
 
Comparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionalityComparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionality
 
End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...
End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...
End to-end ml pipelines with beam, flink, tensor flow, and hopsworks (beam su...
 
Publishing API documentation -- Workshop
Publishing API documentation -- WorkshopPublishing API documentation -- Workshop
Publishing API documentation -- Workshop
 
MuleSoftMeetup-B2BIntegrations_using_MuleSoft
MuleSoftMeetup-B2BIntegrations_using_MuleSoftMuleSoftMeetup-B2BIntegrations_using_MuleSoft
MuleSoftMeetup-B2BIntegrations_using_MuleSoft
 
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDESAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
 
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
 
Launch Event FrameMaker 10 Overview
Launch Event FrameMaker 10 OverviewLaunch Event FrameMaker 10 Overview
Launch Event FrameMaker 10 Overview
 
How to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMakerHow to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMaker
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platform
 
Why you should migrate to GraphQL in 2019
Why you should migrate to GraphQL in 2019Why you should migrate to GraphQL in 2019
Why you should migrate to GraphQL in 2019
 
OpenChain Tooling Work Group Meeting #2 - Agenda Slides
OpenChain Tooling Work Group Meeting #2 - Agenda SlidesOpenChain Tooling Work Group Meeting #2 - Agenda Slides
OpenChain Tooling Work Group Meeting #2 - Agenda Slides
 
Ai pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooksAi pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooks
 

More from Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
Verein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
Verein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
Verein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
Verein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
Verein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
Verein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
Verein FM Konferenz
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
Verein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
Verein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
Verein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
Verein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
Verein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
Verein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
Verein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
Verein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
Verein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
Verein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Verein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
Verein FM Konferenz
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
Verein FM Konferenz
 

More from Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
 

Recently uploaded

What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
GeorgeMilliken2
 
Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5
sayalidalavi006
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
paigestewart1632
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
TechSoup
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
heathfieldcps1
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Life upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for studentLife upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for student
NgcHiNguyn25
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 

Recently uploaded (20)

What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
 
Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Life upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for studentLife upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for student
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 

FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka

  • 1. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 www.filemaker-konferenz.com Performance Questions, Test Results, and Recent Experience HOnza Koudelka FileMaker Performance Update 2019
  • 2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka HOnza Koudelka • Co-founder and co-owner of 24U Software,
 FBA Platinum Member • Developing FileMaker solutions since 1991 • FileMaker 8, 10, 11, 12, 13, 14, 15, 16, 17, 18
 Certified Developer • Team of other certified developers • Winner of the FileMaker DevCon 2015 Developer Cup • FileMaker Mad Dog Award 2011 winner • Mad Optimizer and Achiever of the Impossible… • Vendor session speaker at FileMaker DevCon, spoke at Pause[x]London and Pause[x]Berlin, and remotely at PauseOnError Portland • FileMaker Konferenz 2016, 2017, and 2018 speaker
  • 3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Agenda • Key Discoveries from Previous Years • Automated Test Results • Recent Experience & Under the Hood • Benchmarking Techniques • Optimization Techniques • Questions & Answers
  • 4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Key Discoveries from Previous Years • Large amounts of text • Container vs text (danger of Base64) • Server-side scripts considerations • Spider vs Anchor/Buoy vs Selector-Connector • Structure impact on Set Field performance • Slow network impact • Layout rendering • Expensive objects • Conditional formatting • Relationship sorting • Data API vs PHP API
  • 5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Why Performance Lab? • Perceived speed defines what’s important • Technical speed makes things possible
  • 6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Huge Amounts of Text Not Good
  • 7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Beware Base64 • Real experience from a customer • Huge containers can be stored as text • Doing so can have fatal impact on performance
  • 8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka PSOS is a FMS Client
  • 9. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMSE shares resources with FMS Indexed Unindexed
  • 10. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Spider vs Anchor/Buoy vs Selector-Connector nav_code NAV_selecte PREFS_org account_nam PREFS_user gTaskCont GLOBALS_to context TASKS EVT_sessions_to_session_signup g_Registrant_relationship_code NRRTS_PREFS_registrant_code fk_party_ID NRRTS_people_registrant_link AS_parent_organizations AS_branch_organizations AS_employees g_nav_code_ g_current_a NAV_navigat AS_address_SHIP AS_address_PUBLISH AS_address_RENEW ethics DMERC_assignments NRRTS_PREFS pk_party_ID NRRTS_parties_by_registrant_link fk_party_ID fk_tag_ID PUB_tag_link_ad g_marketing_relatio… PUB_prefs_advertis… pk_party_ID PUB_advertiser_parties AS_organizations fk_party_ID PUB_advertiser_orgs fk_party_ID QUICKFIND_people_DMERC_display pk_tag_ID QUICKFIND_relationship_tags_display pk_party_ID QUICKFIND_parties_ADVERTISERS_display GLOBALS_to_parties AS_parties_receive_ad_invoice AS_SSNs AS_CCARDS PUB_publications GLOBALS_to_people globals FORMS_globa signatures_to_form_globals DISP_email_primary DISP_people_self_by_global globals_to_people_name_filter EVT_events EVT_fees EVT_sessions_to_events AS_parties_subordinates FON_apps_complimentary fon_parties_complimentary AS_voice_subordinates FON_ledger_to_enrollment PUB_ledger_expense PUB_ledger_all PUB_ad_rates PUB_ledger_income TAGS GLOBALS_to_event_session_signup AS_people PUB_comm_outgoing_PUSH AS_address_PHYSICAL FON_enrollment fk_event_ID fk_party_ID pk_registration_ID gUnique_key EVT_attendance AS_parties_parent FON_comm_outgoing_PUSH EVT_comm_outgoing_PUSH EVT_session_signup_to_attendance EVT_session_comm_outgoin… CECs NRRTS_Credentialing NRRTS_crts_history AS_parties_selfjoin AS_address_ALL AS_address_FILTERED AS_address_MAIL PUB_parties_invoice_recipient PUB_parties_ad_representative AS_email_ALL AS_email_PUBLISH AS_email_primary AS_phones_ALL AS_phones_office_voice AS_phones_office_fax AS_phones_home_fax AS_phone_voice_publish AS_phones_fax_publish AS_phone_tollfree_publish COMMUNICATIONS_outgoing AS_comm_outgoing_PUSH CODE128E TAG_LINKS_to_parties fk_party_ID fk_tag_ID NRRTS_tag_link_registrant FON_apps NRRTS_comm_outgoing_PUSH CEC_to_nrrts_apps_by_lookback_date GLOBALS_to_nrrts_apps_by_renew_date CEC_to_nrrts_apps_by_RESNA_effectiv… NRRTS_parties_DMERC NRRTS_ledger_to_apps NRRTS_apps_self NRRTS_app_recommend CEC_to_nrrts_apps_by_app_ID NRRTS_affiliations_to_current_app fk_registry_affiliation_ID is_current NRRTS_apps_CURRENT signature_graphics NRRTS_apps fk_registry_affiliation_ID reg_period_begin_date reg_period_end_date NRRTS_apps_by_date_range fk_party_ID pk_nrrts_registry_ID constant cCurrentDate NRRTS_affiliations fk_registry_affiliation_ID is_complete nrrts_apps_COMPLETE AS_address_RESIDENCE DMERC_people fk_3rd_party_adv_inv… fk_parent_party_ID pk_party_ID gLocation_display_key gUnique_key constant creator database_status fk_3rd_party_adv_inv… fk_parent_party_ID location_valueListBuil… member_code_OLD modifier AS_parties globals_to_letter_templates_CROSS DMERC_region_link AS_address_OFFICE PUB_advertising letter_templates fSignup_attend_ADDRESS_mail pk_party_ID constant fPARTY fAttend_ADDRESS_office CODE128E fAttend_PERSON fAttend_PARTY fAttend_EVENTS EVT_sessions_to_events EVT_fees fSignup_attend_PARTY fSignup_attend_EVENT fSignup_attend_EMAIL fSignup_attend_PERSON fSignup_attend_PHONE_office fSignup_attend_PHONE_fax fSignup_ATTEND fSignup_SESSIONS fRegistry_ADDRESS_mail fRegistry_NRRTSAPP fRegistry_nrrtsapp_PARTY_dmerc fRegistry_PERSON fNrrtsapp_EMAIL_primary fk_DMERC_ID fk_party_ID fk_registry_affiliatio… pk_app_ID is_current reg_period_begin_d… reg_period_end_date constant cApp_deadline_date cLookback_date fNRRTSAPP fk_party_ID pk_nrrts_registry_ID constant fREGISTRY fParty_PERSON fParty_ORG fParty_PHONE_office_voice fParty_PHONE_voice_publish fParty_PHONE_office_fax fParty_PHONE_fax_publish fParty_PHONE_home_fax fParty_EMAIL_primary fParty_EMAIL_publish fParty_ADDRESS_publish fParty_ADDRESS_renew fParty_ADDRESS_mail fParty_ADDRESS_ship fComm_PARTY fComm_PERSON fComm_ADDRESS_mail fComm_PHONE_office_fax fComm_PHONE_home_fax fFon_PARTY fFon_SELF_primary_comp fFon_SELF_comp fFon_party_PHONE_voice_publish fFon_party_EMAIL_publish fFon_party_ADDRESS_mail fFon_party_ADDRESS_publish fFon_party_PHONE_fax_publish fFon_PERSON fFon_fon_primary_comp_PARTY fFon_fon_comp_PARTY fFon_fon_primary_comp_A fFon_fon_primary_comp_PE fNrrtsapp_PHONE_officeFax fNrrtsapp_ADDRESS_mail fNrrtsapp_ADDRESS_renew fNrrtsapp_PERSON fNrrtsapp_TAGLINK_dmerc fNnrrtsapp_PEOPLE_dmerc fNrrtsapp_REGISTRY fNrrtsapp_RECOMMEND fRegistry_PARTY fNrrtsapp_PARTY fk_party_ID pk_fon_affiliation_ID fFON fNrrtsapp_CEC_AppID fNrrtsapp_CEC_renewalDate fNrrtsapp_CEC_lookbackDate Enclosure fk_party_ID fCOMM fk_event_ID fk_party_ID pk_registration_ID constant fATTEND fNrrtsapp_SELF fk_registration_ID fk_session_ID fSIGNUP fComm_NRRTSAPP
  • 11. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Time to Perform Script on Server Spider Anchor/Buoy Selector Connector
  • 12. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Layout rendering
  • 13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Layout rendering
  • 14. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Layout rendering • Repeating text field replaced button bar (86.8 % saved) • TextColor replaced conditional formatting • Optimized condition calculation
  • 15. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Slow network impact
  • 16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka 24U Collector Optimization 10.9 x faster on LAN 2.4 x faster on 3G
  • 17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Notifications are sent… • from server to client as part of reply to next client’s request • whenever a change is committed • to every client having the file open (even hidden) • about every record (unless entire table is changed) • in about 32K chunks • without actual record data • another reason for using transactions
  • 18. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Data API vs PHP API • PHP API is based on Tomcat • Data API is based on Node.js • Data API is supposed to be faster and more stable • PHP API is deprecated and disabled by default • Data API requires HTTPS only, PHP API allows HTTP
  • 19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Data API vs PHP API
  • 20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Data API vs PHP API
  • 21. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka WPE after trying to fetch 300k records
  • 22. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File • Posted in FileMaker Community • Blank layout • Isolated table occurrence • No records in any table • Open locally in FileMaker Pro Advanced • Creating 100 records in a loop takes… 30 seconds
  • 23. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File • 1037 relationships • 1004 in this TOG • 690 around this TO • 7 hops longest path
  • 24. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File
  • 25. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File
  • 26. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File 1037 1116 1194 7516 9701 Total number of relationships
  • 27. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File • large number of relationships all depend on the contents of one field • FileMaker looks for all the possible combinations of relationships that can be invalidated because that field changes • That information is not in the join graph but in the field dependencies stored as part of the field definitions. • Roughly 27,000 possible joins that could be affected • Higher level view code looks at all affected TOs and checks to see if any base tables of those TOs are currently in any window and if there are any portals • => Potential for optimization in future versions
  • 28. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FileMaker 17 & 18 Test Results ? =
  • 29. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Automated tests performed • Export & Import Records as tab delimited text • Creating records with a lot of text • Sort Records by indexed/unindexed field • Perform Find • indexed vs unindexed field • small vs large result found set • number vs text • unique vs common values • Replace Field Contents vs Looped Set Field • Summary fields vs Aggregate functions vs ExecuteSQL • Delete All Records, Truncate Table, Delete All Found Records (leaving one record) • 5, 10, and 15 concurrent sessions • File open/close and record creation speed with massive spider graph (© VincentL) 45 594 new tests (219 918 total)
  • 30. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Test Equipment • Mac Pro (early 2008) • 2 x 2,8 GHz Intel Xeon • 16 GB RAM • Mechanical 7200RPM SATA drives • Separate drive for data • macOS 10.13 High Sierra • FileMaker Server versions 17 and 18 • FileMaker Pro Advanced 17 and 18
  • 31. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka New: FileMaker Cloud • FileMaker Cloud for AWS 1.18 • 5-user license • The minimum offered t2.medium instance • Default settings • Hosted in Frankfurt • FileMaker Cloud 2 • FBA trial 5-user license • Cloud Compute: Medium • Hosted in USA
  • 32. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka What was NOT tested • Multiple users (concurrent sessions simulated by multiple server-side scripts) • Working with container fields • Exact amounts of data transferred between client and server • FileMaker Go • FileMaker WebDirect • XML / PHP / ODBC / JDBC connections • Two-machine deployment • Disabled SSL • Server-side schedules, including backup schedules • Different cache sizes and other configuration differences
  • 33. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued
  • 34. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued
  • 35. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued
  • 36. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued • Huge impact on locally opened file or over network • Minimum impact on faceless server-side processing • Number of dependencies has higher impact than number of relationships
  • 37. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  • 38. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  • 39. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  • 40. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  • 41. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database Using 9 x string start match
  • 42. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database Using 9 x string start match
  • 43. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA connecting to server
  • 44. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA connecting to server Best result Worst result
  • 45. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA connecting to server
  • 46. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Concurrent Sessions/Users Simulated
 by PSOS
  • 47. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Test Set • Export 10 000 records as TDT • Import 10 000 records from TDT • Various sorts • Calculating totals • Various finds • Deleting all records • Everything in 5 iterations • Multiple PSOS sessions concurrently • Each session accessing only its own records
  • 48. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Sessions Interference Exports Imports Other Deletes Exports Imports Other Deletes Exports Imports Other Deletes Exports Imports Other Deletes
  • 49. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  • 50. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  • 51. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  • 52. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  • 53. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times
  • 54. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times
  • 55. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times 36 minutes 6 minutes 16 minutes 16 minutes
  • 56. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times 27 hours 4 hours
 46 minutes 7 hours
 46 minutes9 hours
  • 57. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Replace in 10 000 records
  • 58. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Replace in 10 000 records
  • 59. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Looped Set Field in 10 000 records
  • 60. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Looped Set Field in 10 000 records
  • 61. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Find 90 % of records by unindexed field
  • 62. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Find 90 % of records by unindexed field
  • 63. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Delete 10 000 records
  • 64. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Delete 10 000 records
  • 65. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Complete Test Set (575 tests)
  • 66. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Complete Test Set (575 tests)
  • 67. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FileMaker Cloud Compute Limits This warning means you’re consuming CPU credits and your FileMaker Cloud instance may become very slow soon.
  • 68. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Bonus Slides (Not Presented at FMK) After I presented my session at FMK I had a chance to get more info from Claris in relationship to the FileMaker Cloud performance. I also performed another series of 34394 tests on both FileMaker Cloud 1 and FileMaker Cloud 2. This extra information is so important that I have decided to add it here in the form of a few extra slides for your benefit. I have also amended the slide with links to external resources, so make sure to check them out.
  • 69. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka CPU Credits Explained • Your cloud instance earns defined CPU credits every millisecond • t2.medium earns 24 credits per hour • Your cloud instance consumes credits depending on how much processing power it uses • Every kind/size of instance has defined a baseline performance • Baseline performance means the amount of CPU usage that consumes exactly the same amount of credits that are earned • t2.medium has 2 vCPUs and baseline performance of 20 % per vCPU • When you’re utilizing less than baseline performance, you’re accruing credits • When you’re utilizing more than baseline perofrmance, you’re spending credits • You cannot accrue more than X credits • t2.medium has the limit set to 576 • You accrue the maximum if you leave it idle for 24 hours • When you have no credits left, your performance gets limited to baseline via throttling
  • 70. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka CPU Credits Testing FM Cloud 1.18 This is how my tests utilized AWS CPU credits on FM Cloud 1.18. I had enough accumulated CPU credits, so my whole test finished before consuming them all.
  • 71. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka CPU Credits Testing FM Cloud 2.18 On FM Cloud 2.18 however
 my tests were affected by consuming all CPU credits
  • 72. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka So I added this after each test… …and executed another series of tests. But this time, instead of having all tests run from within one main server-side script, I am now running N simultaneous scripts for one test and don’t start the next test until all are done.
  • 73. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Standard Test Time in Seconds (FM Cloud 2)1x PSOS 1h40m 9h20m 4h 5x PSOS 10x PSOS The chart shows time in seconds consumed by the “standard test”, reflecting the CPU power actually available to the current script session. This seems like I have consumed all CPU credits after the tests were running for about 11 hours.
  • 74. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Same test running on FM Cloud 1.18 This time my tests consumed the CPU credits even on FM Cloud 1.18
  • 75. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Standard Test Time in Seconds (FM Cloud 1)1x PSOS 1h45m 1h30m 10h45m 5x PSOS 10x PSOS Just like with FM Cloud 2, 5 concurrent scripts seem to share the CPU, so standard test time is longer than with 1 script, but after consuming all CPU credits it increases dramatically.
  • 76. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Recent Experience & Under the Hood • Cache Allocation Setting • Printing with Merge Fields • SSD Performance Trap • Master Record Lists & Found Sets • Startup Restoration & Page Level Locking
  • 77. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Cache Allocation Setting • Customer from Pensylvania turned to us to help them with a performance issue • Their FileMaker Server was becoming so slow that they could not use it • Restart always resolved it but only for a day or two • Serving around 100 users, 48 out of 56 GB was used for FMS cache • Decreasing the cache setting to 8 GB stabilized the server at max performance 2 GB Windows 56 GB Total RAM 1 GB Apps 48 GB FMS Cache 5 GB left for FMS Only 50 MB per user!
  • 78. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Cache Allocation Setting • Customer from Pensylvania turned to us to help them with a performance issue • Their FileMaker Server was becoming so slow that they could not use it • Restart always resolved it but only for a day or two • Serving around 100 users, 56 out of 64 GB was used for FMS cache • Decreasing the cache setting to 8 GB stabilized the server at max performance 2 GB Windows 56 GB Total RAM 1 GB Apps 8 GB FMS Cache 45 GB left for FMS 450 MB per user :-)
  • 79. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Cache Allocation Setting • Customer from Pensylvania turned to us to help them with a performance issue • Their FileMaker Server was becoming so slow that they could not use it • Restart always resolved it but only for a day or two • Serving around 100 users, 56 out of 64 GB was used for FMS cache • Decreasing the cache setting to 8 GB stabilized the server at max performance 2 GB Windows 56 GB Total RAM 1 GB Apps 8 GB FMS Cache 45 GB left for FMS 450 MB per user :-) fmsadmin set serverconfig cachesize=8192
  • 80. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields • Same customer wanted to improve printing speed • Report layout was taking up to 3 minutes to print • Nothing obvious to optimize in the script
  • 81. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields • Same customer wanted to improve printing speed • Report layout was taking up to 3 minutes to print • Nothing obvious to optimize in the script 01 min 52.319366 sec
  • 82. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields
  • 83. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields 3.446686 sec
  • 84. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka SSD Performance Trap
  • 85. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka SSD Performance Trap 0 125 250 375 500 130 120 110 100 90 80 70 60 50 40 30 20 10 20 30 40 50 60 70 80 90 100 110 120 130 Write speed depending on empty space on iSystem (iWork had 95 GB free all the time) Writepseed(MB/s) Space available on iSystem (GB)
  • 86. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record Lists & Found Sets • Record lists represented as bitmaps • Not one bitmap for all records - sparse list of tagged bitmaps • Each bitmap is tagged with its starting row key • No bitmap if records are too sparse • One record takes at least 1 bit and at most 8 bytes • You would have to create over 512 trillion records to reach the max • 4 bytes average under 4 million records • Creating and deleting records can have impact on performance • Significant only when there are many sparse records • Deleting all records from a table should recover initial performance
  • 87. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Starting Record ID Records Bitmap 1 11111111111111111111111111111111 2 bytes 32 bits = 4 bytes 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 6 bytes total
  • 88. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 2 4 5 7 9 10 11 12 14 15 16 Starting Record ID Records Bitmap 2 1011010111101111110110111011 2 bytes 28 bits = 4 bytes 17 18 19 21 22 24 25 26 28 29 6 bytes total
  • 89. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 2 14 15 16 Starting Record ID Records Bitmap 2 1 17 1110110111011 4 bytes 1 + 13 bits = 3 bytes 17 18 19 21 22 24 25 26 28 29 7 bytes total
  • 90. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 2 14 Starting Record ID Records Bitmap 2 1 17 1110110111011 4 bytes 1 + 13 bits = 1 + 2 bytes = 3 bytes 19 21 22 24 25 26 28 29 7 bytes total
  • 91. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Startup Restoration & Page Level Locking • New features of FileMaker Server 18 • FileMaker DevCon 2019 session:
 Under the Hood Exploring FileMaker Server 18’s Performance Features [SHA06]
 Mainly from the 43rd minute • Enabled or disabled together • Positive impact - User requests not waiting in queue • When accessing different pages • Negative impact - Change commits taking longer - there’s more to do • Dedicated SSD for restoration log recommended • Serious issues reported as of 18v2 • Temp file corruption • Persistent lock on client disconnect • Restoration not happening after killing fmserverd
  • 92. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 93. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 94. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 95. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 96. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 97. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 98. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 99. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 100. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 101. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 102. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  • 103. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Benchmarking Techniques • Scripts • 24U FM Bench • Get ( CurrentTimeUTCMilliseconds ) • Calculations • 24U FM Bench • Toolbox_GetTimestamp (microseconds) • Layouts & other • Unstored calculations + OnTimer script trigger • Binary Splitting • Top Call Stats • Network Link Conditioner • NetworkMonitor Tool
  • 104. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Top Optimization Techniques • Remove it if you don’t need it • Script layouts • Virtual List • Perform Script On Server (or server-side queue) • Pre-calculated summaries • Simpler relationship graph • Calculated text color instead of conditional formatting • Card window instead of popover • Avoid too many button bars • Sort portal instead of relationship • New table with fewer fields • Conditional Set Field • Transactions (Look for Todd Geist’s articles and videos) • Local File Editing (“Being Optimist in Pesimistic World” by Vince Menanno)
  • 105. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka More resources • FileMaker Community > Search for Performance • FileMaker DevCon Session Recordings, especially Under The Hood sessions (youtube.com/claris) • Skeleton Key: “Improving FileMaker Custom App Performance” (https://youtu.be/D7LmguEcStY) • FileMaker Transactions by Todd Geist (ModularFileMaker.org) • “Decreasing FileMaker Network Traffic” by Vince Menanno (FileMakerProGurus.com) • FileMaker Optimizers LinkedIn Group (FMOptimizers.com) • 24U FM Bench (FMBench.com) • Big-O Cheat Sheet (bigocheatsheet.com) • A Gentle Introduction to Algorithm Complexity Analysis (discrete.gr/complexity/) • Enabling HTTPS Without Sacrificing Your Web Performance by Billy Hoffmann
 (https://zoompf.com/blog/2014/12/optimizing-tls-handshake/) • AWS CPU Credits and Baseline Performance for Burstable Performance Instances
 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html) • Ask for consultation at honza@24uSoftware.com or 24usw.com/consult
  • 106. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Feedback 24usw.com/pfup
  • 107. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages