Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Interessanter Einblick in iCloud: Grundlage von CloudKit nun als Open-Source-Projekt verfügbar

Im Jahr 2011 stellte Steve Jobs den Nachfolger des gescheiterten MobileMe vor – ein Satz blieb bei der letzten Präsentation von Jobs im Gedächtnis: "It just works". iCloud sollte schnell und einfach Daten zwischen Macs und iOS-Geräten synchron halten und dabei für den Nutzer fast unbemerkt im Hintergrund arbeiten. Zwar war die erste iCloud-Umsetzung im Vergleich zu MobileMe ein deutlicher Schritt nach vorne – "It just works" war aber besonders bei der Umsetzung der Dateisynchronisation nicht zutreffend. Im ersten Jahr klagten Nutzer über verloren gegangene Dateien, außerordentlich langsamer Upload und Download von Dateien und vielen Verbindungsproblemen.


iCloud 2.0: CloudKit
2014 stellte Apple auf der Worldwide Developers Conference CloudKit vor – eine neue, von Apple bereitgestellte Datenbanktechnologie, welche Apple auch für Dritthersteller in den meisten Fällen ohne Mehrkosten bereitstellte. Die erste Implementierung der Dateisynchronisierung von iCloud beerdigte Apple im Oktober 2014 und migrierte diese zu CloudKit – iCloud Drive war geboren und die Umsetzung erwies sich als erheblich stabiler und schneller als die 2011 erschienene Lösung. Apple nutzt CloudKit für diverse weitere eigene iCloud-Dienste: Die iCloud Photo Library wie auch Nachrichten, Erinnerungen und Notizen synchronisieren über CloudKit.

Erste CloudKit-Implementierung mit Apache Cassandra
Für die erste CloudKit-Umsetzung verwendete Apple Apache Cassandra – dies führte aber zu einigen Skalierungsproblemen: So können nur einzelne Datensätze gleichzeitig innerhalb eines logischen Aufteilungsbereiches modifiziert werden, was in der Praxis zu Geschwindigkeitsproblemen führte. Außerdem musste Apple die Zahl der Datensätze beschränken, wenn mehrere Nutzer sich einen Aufteilungsbereich teilen wollten – ein praktisches Beispiel hierfür sind geteilte Notizen über iCloud.

Probleme in der Praxis
Synium, Betreiber von MacTechNews, setzt in den Apps MacStammbaum und MobileFamilyTree ebenfalls CloudKit zum Synchronisieren und Teilen von Stammbäumen ein. Durch die Limitierungen der CloudKit-Grundlage Cassandra war Apple gezwungen, die Anzahl von Datensätzen in Aufteilungsbereichen auf 5.000 zu beschränken, wenn mehrere Nutzer darauf Zugriff haben. Dadurch ist es derzeitig nicht möglich, mit anderen Nutzern an Stammbäumen zu arbeiten, die über mehr als 5.000 Personen verfügen.

Auch Apple stößt bei eigenen Diensten schnell an dieses Limit: So ist es zum Beispiel nicht möglich, einen Foto-Stream mit mehr als 5.000 Bildern mit anderen Nutzern zu teilen.

FoundationDB als Lösung
2015 kaufte Apple das Unternehmen FoundationDB, welches im Jahr 2009 gegründet wurde. Laut einem von Apple und FoundationDB publizierten Dokument ist Apple derzeit im Prozess, Cassandra durch FoundationDB zu ersetzen und CloudKit auf die neue Technologie umzustellen. FoundationDB soll laut Apple die Nadelöhre von Cassandra beheben – schon im April 2018 veröffentlichte Apple FoundationDB als Open-Source-Projekt.

Weitere Komponente von CloudKit als Open-Source-Projekt verfügbar
Apple hat nun den FoundationDB Record Layer auf GitHub als Open-Source-Projekt veröffentlicht – hierbei handelt es sich um ein Java-basierendes API, welches Apple zur Steuerung und Verwaltung der FoundationDB-Datenbanken selbst einsetzt.

Der Record Layer ist dafür verantwortlich, Datenbank-Schemas und Datenbank-Indexe zu verwalten und komplexere Anfragen an die FoundationDB-Datenbank weiterzuleiten. Apple gibt an, dass FoundationDB und der FoundationDB Record Layer bei Apple für die Verwaltung von Milliarden Datenbanken von hunderten Millionen Kunden eingesetzt wird.

Limitierungen noch nicht beseitigt
Derzeit ist noch nicht klar, ob Apple schon die gesamte CloudKit-Infrastruktur migriert hat. Im Oktober 2016 reichte Synium bei Apple ein Feature-Request bezüglich der Limitierungen beim Teilen von Datenbanken auf 5.000 Einträge ein – dieser wurde vor wenigen Tagen als Abgeschlossen markiert. Ein Test ergab allerdings, dass derzeit die Limitierung auf 5.000 Einträge noch besteht – entweder wird Apple dies in einer neuen CloudKit-Version zur WWDC 2019 aufheben oder nach und nach Nutzer auf die neue, auf FoundationDB basierende Lösung umstellen.

Kommentare

Cliff the DAU
Cliff the DAU15.01.19 11:54
"It just works" trifft auch heute zu. Mehr muss es auch nicht. Aber Geschwindigkeit ist nicht die Stärke. Da haben andere das Näschen vorne
„Es gibt keine Nationalstaaten mehr. Es gibt nur noch die Menschheit und ihre Kolonien im Weltraum.“
0
dan@mac
dan@mac15.01.19 15:42
Danke für die Hintergrundinfos!
+3
macymesser15.01.19 20:03
Wie funktioniert die Synchronisierung von Dateien, die an 2 oder mehr Computern gleichzeitig bearbeitet werden? Gibt es Warnungen oder wird die betreffende Datei einfach überschrieben? Wäre dankbar für einen Hintergrundartikel.
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.